Предоставление потока в ffmpeg
Я знаю, что могу преобразовать массив изображений, хранящихся на моем жестком диске (если они пронумерованы правильно), используя следующие аргументы:
-f image2 -r 10 -i h:\\streamin\\%05d.jpg -crf 23 -y -r 10 -f ogg -
Есть ли в ffmpeg положение для изменения этого бита:
h:\\streamin\\%05d.jpg
Для потока изображений, хранящихся в виде потока памяти вообще?
то есть: stdin = "поток памяти изображений"
1 ответ
Если ваши входные изображения все JPEG, один за другим, но у вас нет шаблона для чтения, вам нужно mjpeg
демультиплексор:
ffmpeg -f mjpeg -i - -r 10 -c:v libtheora -q:v 7 -f ogg -
Это предполагает, что все, что вы передадите в ffmpeg - это то, что ffmpeg выведет как mjpeg
, Если это не сработает (извините, не можете попробовать в данный момент), вы также можете попробовать:
ffmpeg -f rawvideo -c:v mjpeg -i - …
Важный: ogg
в качестве выходного формата, без дополнительных параметров, подразумевается libtheora в качестве кодировщика, который не имеет -crf
вариант. libtheora использует -q:v
с диапазоном 0–10, где 10 - высшее качество. 7 должно быть хорошим значением. Если вы не используете -q:v
оно снизится до 200 кбит / с, что приведет к плохому качеству.