Как создать видео в формате m4v с помощью ffmpeg?
Я пытаюсь создать видео m4v с помощью следующей команды, используя ffmpeg:
ffmpeg -loop 1 -i orange640x360.png -i Be+Present.mp3 -tune stillimage -shortest -c:v libx264 -c:a copy ./Be+Presentorange640x360.m4v
Это ошибка, которую я получаю:
[ipod @ 0x7fbbc9801600] Не удалось найти тег для кодека mp3 в потоке #1, кодек в настоящее время не поддерживается в контейнере
Не удалось записать заголовок для выходного файла #0 (неверные параметры кодека?): Неверный аргумент
Если я делаю ту же команду для создания видео mp4, она работает правильно, как таковая:
ffmpeg -loop 1 -i orange640x360.png -i Be+Present.mp3 -tune stillimage -shortest -c:v libx264 -c:a copy ./Be+Presentorange640x360.mp4
.m4v - необходимый формат для jPlayer, который я сейчас использую.
1 ответ
Так как я не был уверен, что искал это и да - FFmpeg считает m4v
файлы должны быть контейнером видеопотока без звука. Из rawenc.c на github:
#if CONFIG_M4V_MUXER
AVOutputFormat ff_m4v_muxer = {
.name = "m4v",
.long_name = NULL_IF_CONFIG_SMALL("raw MPEG-4 video"),
.extensions = "m4v",
.audio_codec = AV_CODEC_ID_NONE,
.video_codec = AV_CODEC_ID_MPEG4,
.write_header = force_one_stream,
.write_packet = ff_raw_write_packet,
.flags = AVFMT_NOTIMESTAMPS,
};
#endif
Так что ошибка уместна, так как вы пытаетесь поместить аудиопоток MP3 внутрь m4v
, Я бы предложил попробовать mp4
Версия - документы и примеры jPlayer указывают, что он должен справиться с этим.