一、问题描述
MP4使用H.264编码通常具有良好的兼容性,因为H.264是一种广泛支持的视频编码标准。它可以在许多设备和平台上播放,包括电脑、移动设备和流媒体设备。
使用caniuse查询H.264兼容性,看似确实具有良好的兼容性:
然而,今天的前端小伙伴报告IOS上遇到MP4无法播放,而Android上能正常播放。
二、问题调查
考虑一下方面(相关信息可参阅Why and How to Solve MP4 not Playing on iPhone Error?):
- MP4 中的编解码器不兼容。MP4 是一种容器格式,可以包含各种视频和音频编解码器。如果 MP4 文件使用 iPhone 不支持的编码格式,iPhone 将无法播放该 MP4 文件。
- MP4 文件已损坏。在 MP4 视频录制、传输或下载过程中,文件可能会损坏或损坏。在这种情况下,MP4 文件将无法在 iPhone 以及其他媒体播放器上播放。
- MP4 视频分辨率、FPS 或比特率太高。有时,您可以在 iPhone 上播放 MP4,但播放时出现断断续续的情况。这是因为您的 MP4 视频为 4K/8K 分辨率,并且具有高 FPS 或比特率。
4.您使用的是旧iPhone。iPhone 7 之前的旧版 iPhone 手机无法播放使用 HEVC 编码的 MP4。- 本机视频或电视应用程序不支持 MP4。iPhone 上的本机视频或电视应用程序不支持 MP4 播放。在这种情况下,建议您下载第三方媒体播放器。
确定文件没问题,可以排除MP4文件损坏,那么可以排除以下几点:
1.MP4文件的编码
确认文件编码格式是否为H.264(目前H.265有比较大的兼容问题),那么如何确定文件的编码格式呢?
(1)mp4box.js查看MIME
测试网址:https://gpac.github.io/mp4box.js/test/filereader.html