您现在的位置是:首页 > 文章详情

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

日期:2018-08-07点击:362

https://blog.csdn.net/u012992171/article/details/50673305

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

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

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


img_aa700ca07140695864a04ffcb9b712a1.png
image

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

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

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

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

img_8fefcca579d420bf2d79ee88895fd7c1.png
image

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

img_1240d717dbd1225759e63c9c7de05bcf.png
image

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

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

在这边文章的帮助下,我让Android的同事将其录制视频时的音频编码设置为AAC之后,再重新拍摄并上传一个视频之后就能正常播放了。

原文链接:https://yq.aliyun.com/articles/655179
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章