Предоставление потока в ffmpeg

0

Я знаю, что могу преобразовать массив изображений, хранящихся на моем жестком диске (если они пронумерованы правильно), используя следующие аргументы:

-f image2 -r 10 -i h:\\streamin\\%05d.jpg -crf 23  -y -r 10 -f ogg -

Есть ли в ffmpeg положение для изменения этого бита:

h:\\streamin\\%05d.jpg

Для потока изображений, хранящихся в виде потока памяти вообще?

то есть: stdin = «поток памяти изображений»

Andrew Simpson
источник

Ответы:

3

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

slhck
источник
Очень хороший ответ Из интереса можно указать вывод для веб-страницы, например: -f ogg myurl / acceptbinarydata.aspx ? - Спасибо
Andrew Simpson
1
В теории да. ffmpeg имеет http протокол где вы можете вывести на HTTP, но я совершенно честен, я не знаю, как это настроить. Обычно вы используете потоковую передачу по протоколу UDP в локальной сети, поэтому вы можете использовать udp://hostname:port отправлять туда данные UDP. Если вы еще этого не сделали, вы также можете попробовать задать вопрос в списке рассылки ffmpeg.
slhck
Спасибо - все работает. Если бы я мог дать вам 2 зеленых галочки, я бы!
Andrew Simpson
Благодарю. Пока я в движении - и, пожалуйста, не тратите на это время - но возможно ли получить поток ogg на стороне сервера и извлечь из него изображения, или поток ogg должен быть закрыт первым?
Andrew Simpson
1
Вам потребуется выделенный потоковый контейнер, такой как транспортные потоки MPEG. Они могут быть проанализированы на лету. Файлы Ogg предназначены для чтения как полный файл.
slhck