最近做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文件过程
网友评论