FFMPEG 视频到 MP4 的转换适用于除 iOS Safari/Chrome 之外的任何地方

Lin*_*ode 5 video mp4 ffmpeg

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

ffmpeg -i video.webm -vcodec h264 -acodec aac -strict experimental video.mp4
Run Code Online (Sandbox Code Playgroud)

在 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

llo*_*gan 9

  1. 你的ffmpeg很古老。下载编译新版本。
  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
Run Code Online (Sandbox Code Playgroud)
  • 请参阅目标设备的规格来确定合适的-profile:v(和可能的-level)。

  • 请参阅FFmpeg Wiki:H.264了解更多信息。