【问题标题】:How to create a m4v video using ffmpeg?如何使用 ffmpeg 创建 m4v 视频?
【发布时间】:2016-09-12 20:37:02
【问题描述】:

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

【问题讨论】:

  • 不知道为什么我被否决了。有人可以告诉我我的问题有什么问题,而不是仅仅投反对票吗?
  • 我认为错误消息说明了一切 - 您试图将 mp3 放入 m4v 容器中,恕我直言,它只需要 AAC。所以要么使用 AAC 音频源,要么尝试切换到 mp4。
  • 它可能被否决了,因为它离题了:Stack Overflow 专门用于编程问题。一般ffmpeg cli 使用问题是Super User 的主题

标签: video ffmpeg jplayer m4v


【解决方案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

所以这个错误是正确的,因为你试图在m4v 中放入一个 MP3 音频流。我建议尝试mp4 版本 - jPlayer 的文档和示例表明它应该处理它。

【讨论】:

  • 在 jPlayer 文档中我看到了这个要求:“基本视频格式:m4v”。我尝试执行 .jPlayer("setMedia", {m4v: "xyz.cloudfront.net/video/Be%2BPresentorange640x360.mp4"}) 并且在 Chrome 浏览器中有效,但在 Safari 浏览器中我收到错误消息:“无法加载媒体 URL。”如果我提供 .m4v 编码的视频,Safari 就可以工作。不知道为什么它不能与 Safari 一起使用。如果您需要真实的网址来测试自己,请告诉我。
  • 他们的文档声明 m4v 键是一个 1String :定义 mp4 视频格式 (MP4: H.264/AAC) 的 URL。话虽如此,既然您已经尝试过并发现它失败了——也许苹果确实需要一些 DRM 东西或其他东西。据我所知,由于 Safari 试图强制所有人使用 HLS,因此对 mp4 文件可能有多种限制。我知道其中之一是 Safari 不处理碎片 mp4,但我不认为这是因为你必须传递明确的标志来指示碎片 mp4 的生成。
  • @HelpMeStackOverflowMyOnlyHope 您实际上可以制作一个带有单个片段的 m3u 播放列表,该片段是在 mpeg2 容器中编码的相同文件,并将其设置为 Safari 上的 m3u8v 播放列表(打开用户代理)。跨度>
猜你喜欢
  • 2012-01-16
  • 2016-08-09
  • 2012-02-20
  • 2013-02-23
  • 2012-08-21
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
相关资源
最近更新 更多