Ошибка 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/ строит / ).

dvlsg
источник

Ответы:

4

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

szatmary
источник
1
Имеет смысл. Является ли WebM подходящим форматом для трубопроводов? Моя настоящая конечная цель - потоковая передача в Chromecast, и разработчик заявляет, что единственными совместимыми потоковыми протоколами на данный момент являются MP4 и WebM. (Вот документация Chromecast, на которую я
ссылаюсь