~查询过程中参考了很多同事的博客。很多知识点比较分散,而且还有很多Demo、第三方SDK、无法使用的下载等等,我在这里总结一下,供大家参考。
知识点:
以下知识点还包括您在查询文档的过程中可能经常遇到的术语。
M3U8:可以适应多种比特率。客户端会根据网络带宽选择适合自身码率的文件进行播放,保证视频流的流畅。
1.传输协议:
HLS:HTTP Live Streaming是Apple提出的基于HTTP的流媒体网络传输协议。服务器要求低,因为涉及到切片,延迟会比较大,需要了解TS流。
RTSP:摄像头特点
RTMP:看一下与流媒体服务器交互的过程。 RTMP协议默认端口为1935,使用TCP协议。并且你需要了解FLV的打包格式
RTP、RTCP等
2、视频推送和视频拉取的工作流程分析
视频流端:将采集到的音视频数据通过流媒体协议发送至流媒体服务器。
2.1 采集音视频数据
在iOS平台采集音视频数据,需要使用AVFoundation.Framework框架从captureSession会话的回调中获取音视频数据。
2.2 音视频数据硬编码、软编码
软编码利用CPU资源来压缩音频和视频数据,而硬编码则相反。
对于软编码,FFmpeg库现在广泛与编码库结合使用。采用FFmpeg+X624对视频数据YUV/RGB进行编码,输出H264数据。
FFmpeg+fdk_aac对音频数据PCM进行编码,输出AAC数据。
2.3 根据选择的流媒体协议对音视频数据进行打包,将音视频打包成数据包
2.4 与服务器交互发送包数据
根据选择的流媒体协议,发送相应指令连接服务器。成功连接到服务器后,就可以发送数据包了。
3、拉动流量
拉流是从流媒体服务器获取音视频数据
3.1 解析协议
播放器端根据URL解析所使用的流媒体协议(RTMP、HLS)
3.2 解封装
解封装是demux的过程,将音视频数据从容器格式(FLV、TS)中分离出来
3.3 解码
解码就是将获取的数据解压缩,恢复成原始数据。解码就是将H264转换成YUV,AAC转换成PCM。
解码可以采用软解码或硬解码。
软解码使用CPU资源来解压缩数据,使用FFmpeg解码。
硬解码,对于iOS平台,可以使用VideoToolbox.Framework(该框架只能在iOS 8.0及以上系统上使用)
硬解码视频数据
3.4 渲染数据
OpenGL用于渲染YUV数据并呈现视频图像。将PCM 发送到设备的硬件资源以播放和生成声音。
iOS播放流式音频使用Audio Queue方法,即使用AudioToolbox.Framework框架
以上是一些简单的知识点,总结了一些,现在推荐一些DEMO和SDK供大家参考。
先说第三方SDK:
1. 融云, http://www.rongcloud.cn/live
下载使用方便,调用方便,集成速度快,但价格有点贵,需要付费。界面与市面上大多数直播应用类似,有竖屏、聊天室、送礼物等功能,但与公司不符。要求,通过
2.暴风云直播,http://www.baofengcloud.com/apisdk/sdk/live/iossdk.html
不太好用,你可以试试
3.网易云直播,http://dev.netease.im/docs?doc=devfunc_LiveStreaming
好像是要付费的。价格不便宜。大多数公司可能不会使用它。功能很强大,但不能满足需求。经过
4.腾讯直播,https://www.qcloud.com/solution/video.html
收取同样的费用。简单看了一下,功能很强大,但是还是不能满足需求。
SDK还剩下很多,吴依依介绍了一下。欲了解更多信息,请复制以下网址查看。有专家总结得很好。
http://www.ccidnet.com/2016/0606/10143020.shtml
Demo:
虽然市面上的SDK有很多,但是目前还没有一个专门满足需求的,所以只能参考高手写的Demo。
下面是各个demo,已经测试过,可以使用。但请注意,这不是现场直播。您可以参考参考原则找到您需要的内容并替换网址进行测试。
1.http://code.cocoachina.com/view/129748
2.http://code.cocoachina.com/view/128253
两者都是基于AVplayer编写的
3.http://code.cocoachina.com/view/128343
基于MediaPlayer编写
还有很多,就不举例了。上面的三个demo都是非常轻量级的,在它们的基础上稍微修改一下就可以使用。
好坏我就不评论了,大家可以自己体会。
另外,如果要做功能非常复杂的直播,最好使用SDK
常用直播源:
凤凰中文,http://zv.3gv.ifeng.com/zhongwen800k.m3u8
香港卫视,http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8
如果想要其他网站:直播源码目录
如果想了解更多的m3u8的资料:
http://blog.csdn.net/langeldep/article/details/8603045
iOS直播类App开发流程分解:
http://blog.sina.com.cn/s/blog_aa7beba30102w8ws.html
【终极iOS使用指南:全面解析与技巧分享】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
iPhone手机一直是我心头好!
有13位网友表示赞同!
iOS系统流畅得不得了,简直秒杀安卓。
有9位网友表示赞同!
苹果家的APP更新速度特别快,功能越来越完善啦。
有7位网友表示赞同!
我最喜欢iOS自带的那些小工具,很方便实用。
有11位网友表示赞同!
用iPhone拍照效果真的很不错,能拍出高质量的照片。
有20位网友表示赞同!
iOS语音助手Siri也越来越智能了,可以理解很多指令。
有10位网友表示赞同!
我感觉苹果的生态系统构建得很好,各个设备之间衔接完美。
有11位网友表示赞同!
ios新系统功能看起来很期待!
有20位网友表示赞同!
打算升级新款iPhone入手,iOS体验才是真香啊!
有16位网友表示赞同!
安卓也越来越好了,但还是比较喜欢苹果的iOS风格。
有10位网友表示赞同!
朋友用iPhone一直推荐我切换到iOS系统试试看。
有18位网友表示赞同!
学习编程想先熟悉iOS环境,将来开发APP会更好用。
有13位网友表示赞同!
听说iOS系统的安全性比安卓更强一些,很安心用手机。
有9位网友表示赞同!
苹果的App Store审核比较严格,下载的APP相对靠谱一些。
有12位网友表示赞同!
ios的设计简洁明了,界面看起来感觉很高大上!
有17位网友表示赞同!
iOS系统更新频繁,总能带来一些新的惊喜和改进。
有13位网友表示赞同!
希望以后iOS能推出更多个性化定制的功能!
有17位网友表示赞同!
每次更新iPhone都能感受到科技进步的速度,太让人兴奋了!
有10位网友表示赞同!
ios手机的续航能力还是很不错的,平时用起来很放心。
有9位网友表示赞同!
iOS系统兼容性强,可以在多种设备上流畅使用。
有16位网友表示赞同!