一路走来,只有C++和香烟最实在!

Just Dive Into!

C++博客 首页 新随笔 联系 聚合 管理
  11 Posts :: 0 Stories :: 29 Comments :: 0 Trackbacks

Real Time Messaging Protocol(实时消息传送协议协议)Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。

具体使用RTMPAS代码大概如下:

  var videoInstance:Video = your_video_instance;

  var nc:NetConnection = new NetConnection();

  var connected:Boolean = nc.connect("rtmp://localhost/myapp");

  var ns:NetStream = new NetStream(nc);

  videoInstance.attachVideo(ns);

ns.play("flvName");

Adobe也在官方网站已经提供了RTMP协议的官方文档说明,为什么要写这个系列文章最大的原因只是对前一段工作的一个总结和回顾,最近两个月,实现了一个RTMP Serverc++版本,把公司的流媒体服务和flash无缝对接起来。希望我的文字能给后来研究这个协议的同学有一定的帮助。

RTMP协议是一个基于TCP的高层协议族,当然这个玩意据说还有UDP协议版本的,不过现在还没有出来,好像Adobe下一版本的FMS会提供支持。下文将要描述的是TCP协议版本的协议。

   RTMP协议的概要理解:

RTMP协议是为了和flash之间交换信令以及媒体数据。为了提高使用效率信令和媒体数据都是使用相同的机制。因为是相同的机制Adobe就整出来了一些比较搞人的概念,当然每个协议第一次接触都是比较难理解的。

        RTMP协议中信令和媒体数据都称之为Message,在网络中传输这些Message,为了区分它们肯定是要加一个Message  head的,所以RTMP协议也有一个Message head,还有一个问题因为RTMP协议是基于TCP的,由于TCP的包长度是有限制的(一般来说不超过1500个字节),而RTMPMessage长度是有可能很大的,像一个视频帧的包可能会有几十甚至几千K,这个问题就必然有一个分片的问题,在RTMP协议中对应的说法就是chunk,每一个Message + head都是由一个和多个chunk组成的。到这里对RTMP协议的概要理解就算完了。

posted on 2009-12-27 00:53 Richard Liu 阅读(27797) 评论(8)  编辑 收藏 引用

Feedback

# re: RTMP协议详解(一) 2009-12-28 12:49 2s
Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。?? 尽瞎说, 误认子弟。  回复  更多评论
  

# re: RTMP协议详解(一) 2009-12-28 22:35 Richard Liu
@2s
呵呵 这个玩意信不信就看你了,确实是这样的,难道公开了协议文本就不是私有协议了吗?  回复  更多评论
  

# re: RTMP协议详解(一)[未登录] 2010-02-24 10:01 max
我最近可能有些事情和flash服务器相关,大概要实现一个能够完成flash流媒体的客户端,想根您请教下:

像土豆,youku这类的网站,我抓包的结果是有http报文,请问这类的网站是不是不走RTMP协议.有些网站又是用RTMP的交互过程.针对RTMP我做客户端的话,是不是需要实现一个类似于一个RTMP协议客户端,对HTTP做一个假的HTTP的解析和下载的客户端,然后后端根一个开源的媒体播放器就可以了.能够解析flv,然后解码媒体数据.

可不可以给我发一个RTMP的数据包,或者指点下现在那个网站用RTMP的,我去抓个包看看.
我邮箱max.wizard@yahoo.com.cn,多谢了.  回复  更多评论
  

# re: RTMP协议详解(一) 2010-07-06 21:37 fuck adobe
公开了吗?握手那段根本就是瞎扯,鄙视adobe@2s
  回复  更多评论
  

# p2p的RTMFP协议破解[未登录] 2011-03-25 16:34 jack
本人已对奥多比的p2p协议rtmfp进行了逆向分析(C++),加密解密部分全部破解,能够逆向得到全部数据包的解密报文。本人破解了部分报文结构。第一步的连接功能已经成功实现。希望对RTMFP协议敢兴趣的朋友联系共同研究QQ286422369  回复  更多评论
  

# re: RTMP协议详解(一) 2011-11-11 09:02 fanxin
@jack
希望能有个参考给哦!fpeter@126.com.
谢谢!  回复  更多评论
  

# re: RTMP协议详解(一) 2012-05-12 21:35
@Richard Liu
就是啊  回复  更多评论
  

# re: RTMP协议详解(一) 2015-12-16 13:57 zo
tcp包长有限制吗?  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理