RTMP,RTSP,HLS比较与分析
2015-10-08 00:13
204 查看
/article/8266453.html
考虑做一个手机直播系统,首先需要指定一个合理的技术方案。由于自己以前不是搞多媒体这块,对流媒体开发不熟悉,自己的理解思维总习惯用java web开发的惯性走,先指定一个大体的框架。不管对还是错,先考虑其技术可行性。
框架的指定,首先取决于自己采用的流媒体协议,我们熟知的流媒体协议有RTMP,RTSP,HLS。网上有很多这方面的介绍,我懒得复制了,在这里只谈谈自己的看法。
先谈一下HLS,这个协议接触得最早,自己的个人理解,如果要开发一套准实时的手机音视频直播系统,需要支持iphone,android,windows phone等多款手机,这个协议真心不错。为什么是准实时呢,因为客户端播放的是最新切割的ts文件,它的延迟取决于切片的大小。
参考文章/article/5199473.html ,其思路步骤:
1、采集视频源和音频源的数据
2、对原始数据进行H264编码和AAC编码
3、视频和音频数据封装为MPEG-TS包
4、HLS分段生成策略及m3u8索引文件
5、HTTP传输协议
这里面的很多步骤需要用到ffmpeg编解码库,比如编码, 切片等。方便之处是可以使用普通的http服务器就ok了,推荐使用nginx,这是一款功能无比强大的web服务器,其反向代理,性能好的不可言喻。
由于我大学非计算机专业出身,或者说与计算机专业一点都不靠边,我的计算机语言功底弱爆了。数据结构算法真心是我的软肋,C++语言就会简单的用MFC编写hello world ,HLS当初就这样被我放弃了。
RTSP协议,这应该是实时性最好的了,如果要想实时性要求很高,比如0.5s以内,这个是不错的选择。前阵子模仿spydroid写了个建议的rtsp服务器,其实就是options,describe,setup,play,pause,teardown这几步了,这个协议用的最广泛,网上介绍也比较多。要想真正深入了解rtsp协议,c++语言功底好的可以查看live555 。
RTMP协议,自己最近研究的,如果有兴趣,可以看看我的其他文章。
版权声明:本文为博主原创文章,未经博主允许不得转载。
考虑做一个手机直播系统,首先需要指定一个合理的技术方案。由于自己以前不是搞多媒体这块,对流媒体开发不熟悉,自己的理解思维总习惯用java web开发的惯性走,先指定一个大体的框架。不管对还是错,先考虑其技术可行性。
框架的指定,首先取决于自己采用的流媒体协议,我们熟知的流媒体协议有RTMP,RTSP,HLS。网上有很多这方面的介绍,我懒得复制了,在这里只谈谈自己的看法。
先谈一下HLS,这个协议接触得最早,自己的个人理解,如果要开发一套准实时的手机音视频直播系统,需要支持iphone,android,windows phone等多款手机,这个协议真心不错。为什么是准实时呢,因为客户端播放的是最新切割的ts文件,它的延迟取决于切片的大小。
参考文章/article/5199473.html ,其思路步骤:
1、采集视频源和音频源的数据
2、对原始数据进行H264编码和AAC编码
3、视频和音频数据封装为MPEG-TS包
4、HLS分段生成策略及m3u8索引文件
5、HTTP传输协议
这里面的很多步骤需要用到ffmpeg编解码库,比如编码, 切片等。方便之处是可以使用普通的http服务器就ok了,推荐使用nginx,这是一款功能无比强大的web服务器,其反向代理,性能好的不可言喻。
由于我大学非计算机专业出身,或者说与计算机专业一点都不靠边,我的计算机语言功底弱爆了。数据结构算法真心是我的软肋,C++语言就会简单的用MFC编写hello world ,HLS当初就这样被我放弃了。
RTSP协议,这应该是实时性最好的了,如果要想实时性要求很高,比如0.5s以内,这个是不错的选择。前阵子模仿spydroid写了个建议的rtsp服务器,其实就是options,describe,setup,play,pause,teardown这几步了,这个协议用的最广泛,网上介绍也比较多。要想真正深入了解rtsp协议,c++语言功底好的可以查看live555 。
RTMP协议,自己最近研究的,如果有兴趣,可以看看我的其他文章。
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- windows下主机名与IP地址的映射
- Trump成功笔记3
- (一)VBA基础——显示Excel的【开发工具】选项卡
- 适配器模式
- Dalvik VM (DVM) 与Java VM (JVM)之间有哪些区别?
- 数据库增删改查语句
- BFS POJ1426 Find The Multiple
- C语言中getch()、getche()和getchar()
- 设计模式—简单工厂模式
- 数据存取的方式和应用沙盒目录的常见获取方式
- JAVA部分关键字简析
- poj2986&&poj3675【圆与多边形相交面积模板】
- UVa 10537 - The Toll! Revisited
- 【软件工程】不同阶段产生的图
- 著名博客
- HDU 4020 Ads Proposal
- kafka集群搭建
- monkey命令行参数详解
- plish文件的读取(NSBundle)
- 盘点2020中国电商平台TOP10