ogregor
@ogregor
арендатор vpn сервера debian

Как перекодировать webm в flv c помощью ffmpeg?

Здравствуйте, стоит задача по транскодированию входящего видеопотока в формате webm в транслируемый на nginx rtmp модуль flv поток. Есть такая заготовка но вываливаются ошибки. Исходный код

Решение реализуется на node js но транскодирование выполняется в отдельном потоке с вызовом консольного приложения ffmpeg

var ops=[
			'-vcodec', 'webm','-i','-',
			'-c:v', 'libx264', '-preset', 'veryfast', '-tune', 'zerolatency',
			'-an',
			'-bufsize', '1000',
			'-f', 'flv', rtmp://myrtmpserver.com/live
		];

ffmpeg_process=spawn('ffmpeg', ops);


Проблема в том, что при выполнении данной операции возникает следующая ошибка:

FFMPEG:[buffer @ 0x1f875a0] Unable to parse option value "-1" as pixel format


При определении параметров потока размер пикселя действительно оказывается недоступным:

Stream #0:1(eng): Video: vp8, none, 640x480, SAR 1:1 DAR 4:3, 16.67 tbr, 1k tbn,


Если провести пробу потока вручную:

var ops = [ '-i','-']
 ffmpeg_process=spawn('ffprobe', ops);


Дамп
Stream #0:1(eng): Video: h264 (Constrained Baseline), yuv420p, 640x480, SAR 1:1 DAR 4:3, 30.30 fps, 16.67 tbr, 1k tbn, 60 tbc (default)


Полный дамп

FFMPEG:[matroska,webm @ 0x1f2b560] Could not find codec parameters for stream 1 (Video: vp8, none, 640x480): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from 'pipe:':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    Stream #0:1(eng): Video: vp8, none, 640x480, SAR 1:1 DAR 4:3, 16.67 tbr, 1k tbn, 
FFMPEG:1k tbc (default)

FFMPEG:[buffer @ 0x1f875a0] Unable to parse option value "-1" as pixel format
    Last message repeated 1 times
[buffer @ 0x1f875a0] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:1 @ 0x1f8d7a0] Error applying options to the filter.

FFMPEG:Error opening filters!
  • Вопрос задан
  • 279 просмотров
Решения вопроса 1
ogregor
@ogregor Автор вопроса
арендатор vpn сервера debian
var ops=[
			'-i', '-',
			'-c:v', 'libx264', '-preset', 'fast', '-strict', '-2', //'-tune', 'zerolatency'
			'-c:a', 'aac', '-b:a', '128k',
			'-f', 'flv', socket._rtmpDestination
        ];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы