Ошибка FFMPEG -22 при передаче данных в стандартный вывод


1

Я пытаюсь использовать FFMPEG для перекодирования avi-файлов в mp4 и передачи данных в stdout с помощью следующей команды (технически через NodeJS, но я получаю ту же ошибку при выполнении следующей команды непосредственно в командной строке):

ffmpeg -i myavi.avi -vcodec libx264 -acodec libvo_aacenc -f mp4 pipe:1

Эта ошибка произойдет:

Could not write header for output file #0 (incorrect codec parameters ?): Error number -22 occurred.

Когда я выполняю следующую команду, все работает как положено:

ffmpeg -i myavi.avi -vcodec libx264 -acodec libvo_aacenc -f mp4 newmp4.mp4

Обратите внимание, что я использую (или пытаюсь) FFMPEG для Windows - есть идеи относительно того, что здесь происходит?

Редактировать: Последнее замечание, версия FFMPEG, которую я использую, - N-63439-g96470ca, построенная 25 мая 2014 г. (самая последняя версия FFMPEG, доступная для статических файлов Windows на http://ffmpeg.zeranoe.com/ строит / ).

Ответы:


4

Контейнеру mp4 требуется возможность поиска в файле. Труба - это поток, и его невозможно найти внутри. Попробуйте использовать потоковый контейнер, например, ts или flv.


1
Имеет смысл. Является ли WebM подходящим форматом для трубопроводов? Моя настоящая конечная цель - потоковая передача в Chromecast, и разработчик заявляет, что единственными совместимыми потоковыми протоколами на данный момент являются MP4 и WebM. (Вот документация Chromecast, на которую я
ссылаюсь
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.