FFMPEG 视频转换为 MP4 在任何地方都有效,除了 iOS Safari/Chrome

FFMPEG video conversion to MP4 works everywhere except in iOS Safari/Chrome

我使用以下代码使用 FFMPEG 库将 .webm 视频转换为 .mp4

ffmpeg -i video.webm -vcodec h264 -acodec aac -strict experimental video.mp4

在 Windows (Chrome/Firefox), Mac (Safari/Chrome), Android (Chrome) 但在通过 iOS (Safari/Chrome) 观看时不起作用。

起初我以为这可能是mp4的问题?但是后来我在我的 iOS Safari 中毫无问题地播放了这个视频 https://www.w3schools.com/html/mov_bbb.mp4 这也是一个 mp4.

所以这告诉我转换有些地方不太正确。

我在转换中遗漏了什么?

来自 PuTTy 的日志:https://pastebin.com/VLSPL0nC

  1. 你的ffmpeg很古老。 Download or compile 一个新版本。
  2. 删除 -strict experimental(只有真正的旧版本才需要)。
  3. 添加 -movflags +faststart 以便可以更快地开始播放。
  4. 为兼容的像素格式添加 -vf format=yuv420p
  5. 输出 AAC 音频 (-c:a aac) 而不是 MP3 (-c:a libmp3lame)。
  6. 如果还是失败,可能是设备不支持High profile。添加-profile:v main。如果您的设备支持 High profile,则不需要添加此项。

示例:

ffmpeg -i input -c:v libx264 -profile:v main -vf format=yuv420p -c:a aac -movflags +faststart output.mp4
  • 请参考目标设备的规格以确定合适的 -profile:v(可能还有 -level)。

  • 有关详细信息,请参阅 FFmpeg Wiki: H.264