几个RTP的开源实现

玩了两天rtp协议,基本把rtsp/rtcp/rtp/rtmp/srtp/strcp/mms,几个协议的区别和概念弄明白了。

这里记录一下。

rtsp:类似用户界面操作,和Http比较类似,提供播放,停止,加入等功能。注意,这里rtsp只负责发送操作命令,实际的音视频数据,并不由这个协议承载。这是我困惑很久之后才明白的(我是不是太弱了,呵呵)

         rtsp协议并没有规定底层是由tcp还是udp实现,实际操做中,我通过google搜索发现rtsp确实有tcp和udp两种实现,我就不上抓包数据了,这个博客园里面已经有人干过了。另外这个也算和http不同的一点,http都是tcp。

rtp : 这个协议是干累活的,音视频数据,都由这个协议承载。rtp实际的包里,还包括些流类型(h264,aac)描述,包序列描述等等。底层数据包都由UDP承载

rtcp: 控制协议,举个例子,音视频数据发出去了,发了多少,收到多少,丢了多少,网络延迟多大,这些QOS(Quality of Service)相关的数据,以及音频同步的信息。谁来提供,没错,就是rtcp。与rtp是兄弟协议,由udp承载数据。

----------------------------------------------------------------------------------------------------------------------

以上是比较标准的东东。

rtmp: 看起来很像ietf的东西,不过是adobe自家的协议,不过后来也开放出来了,基本上可以等同于flash播放的服务器。有开源实现rtmpdump,有兴趣的同学可以自己google一下自己看看。

srtp: 思科与爱立信扣起手搞得,后来也成了ietf标准,可以理解成加密的rtp,主要用于voip,视频方面?偶不知道。。。。

srtcp:同上。这两个协议都是相伴而生的。

mms:微软自己搞的,类似于rtsp协议,暗下不表。觉得这里很搞笑,不是国际标准,但总还要给他很大的支持,shit。微软啊,弄了太多不标准了。。。

 

我不帖包头分析和协议层次这种东西了,太多了,我只是记录一下我自己对这些东西的理解,网上大多讲得不够全面,我总结一下。

------------------------------------------------------------------------------------------------------------------------

找了几个rtp比较知名的开源实现,并且用vc2005编译通过了。附带demo。

ortp:linphone项目的子项目,开发语言是c语言,实现了rtp/rtcp协议,没有实现rtsp协议,如果要用,自己google一下,有比较多的开源实现。自己动手也不算复杂。

jrtplib:项目主页如下

http://research.edm.uhasselt.be/~jori/page/index.php?n=Main.HomePage

开发语言是C++,同样没有实现rtsp。有喜欢c++的同学可以选择这个。

live555:这个项目放到这里,我很纠结,因为live555的野心明显不是实现几个协议,人家是要干票大的。他除了实现了rtsp/rtp/rtcp/各种协议之外,还实现了各种流媒体的分包解析。

 

上面两个还算是单纯的库,live555就是一整套解决方案了,只是顺便实现几个协议,呵呵。其他:vlc/mpeg4ip/的rtp相关实现都是使用live555,不多了。

 

上下载链接

http://files.cnblogs.com/mr-nop/live.rar

http://files.cnblogs.com/mr-nop/jrtplib.rar

http://files.cnblogs.com/mr-nop/ortp.rar

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值