video - FFMPEG 视频转换为 MP4 可以在除 iOS Safari/Chrome 之外的任何地方使用

标签 video ffmpeg mp4

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

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

最佳答案

  • 您的 ffmpeg是古老的。 Downloadcompile一个新版本。
  • 删除 -strict experimental (这只需要真正的旧版本)。
  • 添加 -movflags +faststart因此它可以更快地开始播放。
  • 添加 -vf format=yuv420p兼容的像素格式。
  • 输出 AAC 音频 (-c:a aac) 而不是 MP3 (-c:a libmp3lame)。
  • 如果仍然失败,可能是由于设备不支持高配置。添加 -profile:v main .如果您的设备支持高配置文件,则无需添加此项。

  • 例子:
    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了解更多信息。
  • 关于video - FFMPEG 视频转换为 MP4 可以在除 iOS Safari/Chrome 之外的任何地方使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54335106/

    相关文章:

    c++ - 用 C 编写的 ffmpeg 程序,无法在 macOS Catalina 10.15.7 中打开我的相机

    video - 如何使用 ffmpeg 将文本添加到多个视频

    video - 如何在编码期间暂停和恢复ffmpeg?

    opencv - 多线程 - openCV (imshow) - QMetaMethod 错误

    ubuntu - ffmpeg - Ubuntu - 将 mkv 转换为 mp4 和 hard sub

    ffmpeg - 如何配置 sox 以在 mp4 上工作?

    facebook - Youtube 视频未嵌入 Facebook - 错误检测 URL

    iOS - 如何透明播放视频?

    video - 通过 id 随机访问视频帧

    ffmpeg 每帧请求的位太多