我试图使用以下命令使用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中找到编解码器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所需的格式。
因为我不确定我查了一下,是的- FFmpeg认为m4v
文件是一个没有任何音频的原始视频流容器。
#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的例子表明它应该处理它。