-1

我正在尝试使用 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 所需的格式。

4

1 回答 1

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 的文档和示例表明它应该处理它。

于 2016-09-12T21:47:56.807 回答