我正在尝试使用ffmpeg:
使用以下命令创建m4v视频ffmpeg -loop 1 -i orange640x360.png -i Be+Present.mp3 -tune stillimage -shortest -c:v libx264 -c:a copy ./Be+Presentorange640x360.m4v
这是我得到的错误:
[ipod @ 0x7fbbc9801600]无法在流#1中找到codec mp3的标签, 容器中目前不支持编解码器
无法为输出文件#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所需的格式。
答案 0 :(得分:1)
由于我不确定我查了一下,是的 - FFmpeg认为m4v
文件是一个没有任何音频的原始视频流容器。来自github上的rawenc.c:
#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的示例表明它应该处理它。