首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FFMPEG视频转换到MP4除了在iOS Safari/Chrome之外,在任何地方都可以工作。

FFMPEG视频转换到MP4除了在iOS Safari/Chrome之外,在任何地方都可以工作。
EN

Stack Overflow用户
提问于 2019-01-23 20:26:02
回答 2查看 6.3K关注 0票数 2

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

代码语言:javascript
复制
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中没有任何问题地播放这个视频bbb.mp4,它也是一个mp4

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

我在转换过程中遗漏了什么?

从PuTTy:https://pastebin.com/VLSPL0nC登录

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-23 21:29:23

  1. 你的ffmpeg是古老的。下载编译是新版本。
  2. 删除-strict experimental (这是真正老版本所需要的)。
  3. 添加-movflags +faststart,这样它就可以更快地开始播放。
  4. 为兼容的像素格式添加-vf format=yuv420p
  5. 输出AAC音频(-c:a aac)而不是MP3 (-c:a libmp3lame)。
  6. 如果它仍然失败,这可能是由于设备不支持高配置文件。添加-profile:v main。如果您的设备支持高配置文件,则不需要添加此选项。

示例:

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2022-10-07 18:55:33

除了@llogan提供的参数外,我发现降低视频的帧率是在IOS浏览器中播放的关键。在添加fps=30作为视频过滤器之后,我取得了成功。

注意:如果有多个视频过滤器,比如format=yuv420p,那么过滤器需要用引号包围,用逗号分隔,如下所示:

-vf "format=yuv420p, fps=30"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54335106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档