Http Live Streaming介绍和应用
2015-02-15 16:57
381 查看
iOS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点费周折,不过找对了软件和方法就相对容易许多。
收集了一下关于iOS设备上搭建直播流媒体服务器的一些解决方案,如下:
1、凤雨小城,HLS 简介,http://www.vexx.cn/blog/read.php?240
2、dancong , wowza服务器无法将RTMP的流播放到iOS上(已解决),http://www.cocoachina.com/bbs/read.php?tid-47849.html
HLS简介 - rainstown (小城秋雨) HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。
在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。 在App Store中的视频相关的应用,基本都是应用的此种技术。 该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为AAC。
m3u8文件示例:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-1.ts
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-2.ts
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-3.ts
#EXT-X-ENDLIST
可以在iOS或Mac OS上通过quicktime或safari(其实还是调用quicktime)来进行播放。
下面分点播和直播分别进行一下介绍。
点播: 苹果官方提供了Segmenter软件,
参数如下: segmenter <segment duration in seconds><output mpeg-ts file prefix><output m3u8 index file><http prefix>
示例: segmenter youku.m2ts 10 tt/tt index.m3u8 http://192.168.1.36/vod/
注意:输入文件必须为MPEG2TS格式。
对我们的mp4文件来说,必须先进行一次容器格式转换才能进行分割。
分割命令: ffmpeg -i youku.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb youku.m2ts
我们下一阶段要做的视频分割项目,针对iOS平台的播放,可以考虑采用此种方式。
只是若如此做,存储成本会加倍.。
直播:
客户端软件推送H.264视频流和AAC音频流到服务器软件,服务器软件将接收到的流每缓存一定时间后包装为一个新的ts文件,然后更新m3u8文件.。
m3u8文件中只保留最新的几个片段的索引,以保证观众任何时候连接进来都会看到较新的内容,实现近似直播的效果。这种方式的理论最小延时为一个ts文件的时长,一般为2-3个ts文件的时长。
苹果没有官方的HLS直播服务器软件和客户端软件。其它第三方公司的产品有: · TVersity · Helix Universal Server · Wowza Media Server · VLC Media Player version 1.2
我采用Helix Universal Server和Helix Producer(客户端软件)进行了直播测试。 若要做针对iOS平台的直播,目前来看,只能采用此种方式。
但在其它平台(除了iOS和Mac之外)上无法观看直播,也决定了此种直播方式的应用场景暂时具有相当的局限性,只能作为常规直播方式的一种补充。
收集了一下关于iOS设备上搭建直播流媒体服务器的一些解决方案,如下:
1、凤雨小城,HLS 简介,http://www.vexx.cn/blog/read.php?240
2、dancong , wowza服务器无法将RTMP的流播放到iOS上(已解决),http://www.cocoachina.com/bbs/read.php?tid-47849.html
HLS简介 - rainstown (小城秋雨) HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。
在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。 在App Store中的视频相关的应用,基本都是应用的此种技术。 该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为AAC。
m3u8文件示例:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-1.ts
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-2.ts
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-3.ts
#EXT-X-ENDLIST
可以在iOS或Mac OS上通过quicktime或safari(其实还是调用quicktime)来进行播放。
下面分点播和直播分别进行一下介绍。
点播: 苹果官方提供了Segmenter软件,
参数如下: segmenter <segment duration in seconds><output mpeg-ts file prefix><output m3u8 index file><http prefix>
示例: segmenter youku.m2ts 10 tt/tt index.m3u8 http://192.168.1.36/vod/
注意:输入文件必须为MPEG2TS格式。
对我们的mp4文件来说,必须先进行一次容器格式转换才能进行分割。
分割命令: ffmpeg -i youku.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb youku.m2ts
我们下一阶段要做的视频分割项目,针对iOS平台的播放,可以考虑采用此种方式。
只是若如此做,存储成本会加倍.。
直播:
客户端软件推送H.264视频流和AAC音频流到服务器软件,服务器软件将接收到的流每缓存一定时间后包装为一个新的ts文件,然后更新m3u8文件.。
m3u8文件中只保留最新的几个片段的索引,以保证观众任何时候连接进来都会看到较新的内容,实现近似直播的效果。这种方式的理论最小延时为一个ts文件的时长,一般为2-3个ts文件的时长。
苹果没有官方的HLS直播服务器软件和客户端软件。其它第三方公司的产品有: · TVersity · Helix Universal Server · Wowza Media Server · VLC Media Player version 1.2
我采用Helix Universal Server和Helix Producer(客户端软件)进行了直播测试。 若要做针对iOS平台的直播,目前来看,只能采用此种方式。
但在其它平台(除了iOS和Mac之外)上无法观看直播,也决定了此种直播方式的应用场景暂时具有相当的局限性,只能作为常规直播方式的一种补充。
相关文章推荐
- Apple http live streaming 不支持windows?
- (转)XMLHTTPRequest对象原理介绍与应用
- HTTP Live Streaming for iPhone/iPad(HLS流媒体服务器)
- 流媒体:搭建HTTP Live Streaming直播系统
- Http Live Streaming 实现iphone在线播放视频
- [转]基本应用层的TCP/IP协议介绍 (HTTP/FTP/POP/SMTP)
- 搭建适合IOS的HTTP Live Streaming直播系统
- 搭建HTTP Live Streaming直播系统
- Http Live Streaming 实现iphone在线播放视频
- HTTP live streaming 媒体流架构
- HTTP Live streaming
- HTTP Live Streaming (HLS) 视频直播技术
- Android Stagefright NuPlayer for HTTP live streaming
- HTTP Live Streaming (HLS) 视频直播技术
- http live streaming相关摘要
- (转)XMLHTTPRequest对象原理介绍与应用
- HTTP Live Streaming (HLS) 视频直播技术
- HTTP Live Streaming
- 关于Http Live Streaming 的一点儿记录
- Configure HTTP Dynamic Streaming and HTTP Live Streaming (HLS)