如何使用ffmpeg创建m4v视频



我试图使用以下命令使用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的例子表明它应该处理它。

最新更新