归纳笔记023:流媒体的理论与HLS框架

来源:互联网 发布:汽车最新导航软件 编辑:程序博客网 时间:2024/06/05 16:36

流媒体

流媒体分为伪流媒体与实时流媒体,以下将做详细介绍:

(1)伪流媒体:又称渐进式下载,介于下载本地播放与实时流媒体之间的一种播放形式,下载本地播放必须全部将文件下载完成后才能播放,而渐进式下载不必等到全部下载完成后再播放,它可以一边下载一边播放,在完成播放内容之后,整个文件会保存在手机上。

(2)实时流媒体:实时流媒体是一边接收数据包一边播放,本地不保留文件副本,实时流式传输总是实时传送,可以实时实况转播,支持随机访问,用户可以快进或者快退以观看前面或后面的内容。实时流媒体传输必须保证数据包的传输速度大于文件的播放速度,否则用户看到的视频会出现暂停。当网络堵塞情况下视频质量会下降,所以要想保证视频的质量渐进式下载会更好一些。

实时流媒体协议包括:

1)           RTSP

2)           MMS

3)           HLS


HLS

HLS简介

HLS(HTTP LiveStreaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。

技术关键点

(1)采集视频源和音频源的数据

(2)对原始数据进行H264编码和AAC编码

(3)视频和音频数据封装为MPEG-TS包

(4)HLS分段生成策略及m3u8索引文件

(5)HTTP传输协议


 HLS的使用

关于HLS的使用步骤,大致如下:

(1)   搭建HLS流媒体服务器:Apache HTTP Server (苹果自带)。

(2)    打开终端vi /etc/apache2/httpd.conf,在<IfModule mime_module>下添加两行:AddType application/x-mpegURL.M3U8、AddType video/MP2T.ts。

(3)    重启服务器。

(4)    创建工程,引入第三方框架ASIHttpRequest,CocoaHTTPServer,m3u8。

(5)    导入系统框架:libsqlite3.dylib、libz.dylib、libxml2.dylib、CoreTelephony.framework、 SystemConfiguration.framework、MobileCoreServices.framework、 Security.framework、CFNetwork.framework、MediaPlayer.framework。

(6)    在library search path 中添加/usr/include/libxml2。

(7)    添加头文件、声明属性。

(8)    预先播放,先设置服务器,完成后,播放什么的,都是取决于需求。


0 0
原创粉丝点击