iOS 手机无法播放视频问题排查与解决方案记录
2025年12月5日 17:42
iOS 手机无法播放视频问题排查与解决方案记录
最近遇到一个视频在 iOS 移动端无法播放 的问题,这里记录一下排查过程与最终解决方案,希望能帮到有类似困扰的同学。
问题现象
- PC(浏览器)模拟移动端可正常播放
- 安卓手机打开正常
- ❌ iOS 真机无法播放
排查过程
通过对比:
- 可正常播放的视频
- 无法播放的问题视频
使用 MediaInfo 分析媒体信息后,找到问题根源。
媒体信息在线分析工具:
👉 mediaarea.net/MediaInfoOn…
(下方为对比截图)
![]()
![]()
最终找到的原因
![]()
![]()
iOS 对视频编码的兼容性要求更严格,问题视频使用了 隔行扫描(Interlaced) 。
而 iOS Safari / WebView 对 interlaced 视频支持较差甚至不支持。
✔ 正常视频:Progressive(逐行扫描)
❌ 问题视频:Interlaced(隔行扫描)
🎯 核心原因:iOS 不兼容 Interlaced 扫描格式的视频。
解决方案:转为 Progressive(逐行扫描)
使用 FFmpeg 将 Scan type 转为 Progressive,并确保编码参数为 iOS 友好格式。
FFmpeg 转换命令
ffmpeg -i "有问题的视频地址" \
-vf "yadif=1:-1:0,format=yuv420p" \
-c:v libx264 -profile:v main -level 4.0 \
-movflags +faststart \
-c:a aac -b:a 128k \
"输出地址"
参数说明
| 参数 | 作用 |
|---|---|
yadif |
去隔行,转成 progressive |
format=yuv420p |
iOS 最佳兼容色彩格式 |
libx264 + profile main
|
兼容性最好的视频编码设置 |
-movflags +faststart |
优化 MP4 流式加载,提升移动端体验 |
aac |
iOS 完全兼容的音频编码 |
总结
iOS 视频播放问题常见原因之一就是编码兼容性问题,特别是 Scan type 不正确。