Предоставление потока в 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 кбит / с, что приведет к плохому качеству.

Другие вопросы по тегам