iOS开发攻城狮的集散地iOS开发笔记

iOS 视频播放不了-AVPlayer、IJKPlayer等对比

2017-08-18  本文已影响1171人  程序员进阶

最近做iOS开发的时候,用的一个ZFPlayer(基于AVPlayer)突然有的视频不能播放,但是Android可以播放。

后端开发也不能解决,就开始了换播放器的思路。

接下来就开始讲述我的踩坑之旅:

1.首先尝试用B站的ijkplayer(Android用的就是这个),在各种踩坑(主要是动态库的集成)后,集成后(其实让视频能播放),发现那些播放暂停UI和横竖屏貌似不好使。

2.看到ZFPlayer里面有 Test Version 可以用,结果他也是集成的IJK,完美解决。

完成线上bug后,开始研究竟什么原因:

写的有些天马行空,有时间慢慢整理,不懂请自行Google并且脑补

渐进式下载和实时流媒体

常见的流媒体协议: HLS(苹果基于HTTP开发的流媒体协议),RTMP(Adobe的私有协议),MMS(微软).


1 HLS的流媒体通过AVPlayer(h265不支持)/AVPlayerViewController和MPMviePlayerController/MPMoviePlayerViewController来实现.

2 RTMP的流媒体要用第三方框架实现如FFMpeg,IJKPlayer和VLC等

3常用的流媒体框架:百度/阿里/腾讯/网易/斗鱼直播伴侣/七牛云等

参考链接

http://blog.csdn.net/zhonggaorong/article/details/52174981

https://tieba.baidu.com/p/5171120382

阿里云视频存储使用时可以根据不同的推流端或播放端能,使用如下组合:

l推流进行H.265编码,并使用扩展的RTMP协议,上传H.265直播流,云端转成不同码率的H.265和H.264,并输出HLS,标准RTMP,扩展RTMP,标准HTTPFLV,扩展HTTPFLV,供不同解码能能力和网络带宽的终端观看。

l推流使用H.264编码,云端将H.264转码成不同码率的H.264和H.265码流,输出HLS,标准RTMP,扩展RTMP,标准HTTPFLV,扩展HTTPFLV,供不同解码能力和网络带宽的终端观看。

1同样的画质和同样的码率,H.265比H2.64占用的存储空间要少理论50%。

2如果存储空间一样大,那么意味着,在一样的码率下H.265会比H2.64画质要高一些理论值是30%~40%

据说H.265能节省一半带宽,但需要机器更强的运算能力。有兴趣看一下erightsoft公司的super Media Converter Encoder软件,可以转换视频文件到H.265

1、PCM形成原理以及过程

2、AAC编码原理

3、iOS音频硬编码

4、FFmpeg将H264以及AAC合成MP4文件过程

上一篇下一篇

猜你喜欢

热点阅读