Android拍摄的视频无法在IOS播放

公司最近的项目需要上线一个视频功能,在临近尾声的时候出现了一个比较坑爹的BUG,那就是开发Android的同事拍摄的视频上传到服务器之后,我这边用手机无法播放,而我自己拍摄的视频上传后是可以直接播放的。 我用浏览器访问了Android同事拍摄的视频的互联网
公司最近的项目需要上线一个视频功能,在临近尾声的时候出现了一个比较坑爹的BUG,那就是开发Android的同事拍摄的视频上传到服务器之后,我这边用手机无法播放,而我自己拍摄的视频上传后是可以直接播放的。


我用浏览器访问了Android同事拍摄的视频的互联网路径,在浏览器上是可以正常播放的,下载到本地,在Mac上用QuickTime也是正常播放,在此可以排除是文件损坏导致的问题。


我这边调试工程得到的错误信息如下:


是一个_itemFailedToPlayToEnd的KVO记录log,Google了这个错误,包括stackoverflow上给出的原因基本上都是视频URL有问题,不存在这个文件导致的,由于我已经检查过服务器上的文件,是可以正常访问并可以播放的,所以显然这个解决不了我的BUG。


在设置大量的MPMoviePlayerController的属性,问题依旧之后,我决定采用AVFoundation来自定义播放器来尝试播放这个视频,看看是不是由于IOS默认播放器对格式支持不全导致的。折腾了几个小时后,用AVFoundation写了个简单的视频播放器,将URL填了进去,发现仍然无法正常播放。


这时候我开始思考是不是视频本身的问题,我讲Android拍摄的视频文件,一个MP4文件通过QQ发送到我的iPhone之后,用QQ打开之后发现QQ直接卡住了,也是不能正常播放,这时候我已经确定一定是这个MP4文件和我这边拍摄的MP4肯定存在着格式上的不同。


于是我找到了一个MP4Info这款工具来分析两个MP4文件的不同,分析结果如下:
正常播放的MP4文件分析结果截图:


Android同事拍摄的问题MP4文件分析截图:


通过比较分析结果,发现无法播放的那个MP4文件的音频格式为SAMR,而我自己这边可以正常播放的音频格式为MP4A,我以这两个单词为关键字搜索了一下,找到了这篇文章


解决IOS无法播放3gp视频, 出现无法编码问题


在这边文章的帮助下,我让Android的同事将其录制视频时的音频编码设置为AAC之后,再重新拍摄并上传一个视频之后就能正常播放了。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值