Здравствуйте, стоит задача по транскодированию входящего видеопотока в формате 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!