自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 red5源码分析---13

red5源码分析—play命令分析本章开始分析play命令,先来看客户端的代码,定义在BaseRTMPClientHandler中, public void play(Number streamId, String name, int start, int length) { if (conn != null) { int channel = getCh

2016-05-17 22:11:34 1522

原创 red5源码分析---12

red5源码分析—服务器处理视频数据接着《red5源码分析—11》,本章假设客户端发来的是视频数据,下面就分析服务器如何处理这些数据的。 根据前面几章的分析,基于mina框架,数据到达服务器后,最终会到达RTMPHandler的messageReceived函数,messageReceived定义在RTMPHandler的父类BaseRTMPHandler中, public voi

2016-05-17 11:21:25 7082

原创 red5源码分析---11

red5源码分析—客户端处理onStatus命令并向服务器发送数据在《red5源码分析—10》中提到过,red5服务器在处理publish命令后,会在创建的ClientBroadcastStream中调用startPublishing函数,进而通过sendStatus将onStatus命令发送给客户端。 和前面几章的分析类似,客户端在收到onStatus命令后,最终会调用到BaseRTMPC

2016-05-12 18:19:45 1159

原创 red5源码分析---10

red5源码分析—服务器处理publish命令和前几章的分析一样,服务器接收到客户端发来的publish命令后,最终会执行RTMPHandler的onCommand函数,再参考《red5源码分析—8》的分析,最终会调用StreamService的publish方法,代码如下 public void publish(String name, String mode) {

2016-05-12 00:00:24 8506

原创 red5源码分析---9

red5源码分析—客户端publish流接着上一章的分析结果,参考《red5源码分析—7》的分析结论,当服务器返回steamId后,客户端会执行BaseRTMPClientHandler的onCommand函数,onCommand函数会根据返回的方法名”_result”开始执行handlePendingCallResult函数,handlePendingCallResult会获取之前注册的回调函数,

2016-05-10 16:58:15 1873

原创 red5源码分析---8

red5源码分析—服务器处理createStream命令服务器接到createStream命令后,经过过滤器层层处理,最后会调用BaseRTMPHandler的messageReceived函数, public void messageReceived(RTMPConnection conn, Packet packet) throws Exception { if (conn

2016-05-10 14:59:20 1687

原创 red5源码分析---7

red5源码分析—客户端处理connect命令在《red5源码分析—5》中提到过,当客户端发送connect命令后,服务器经过处理会将其connect命令返回,不同的是服务器返回的结果包含了一些连接后需要发送给客户端的信息,包括服务器版本、模式等等。 该命令到达服务器后依然会调用BaseRTMPClientHandler的onCommand函数,如下 protected void

2016-05-10 11:18:11 1659

原创 red5源码分析---6

red5源码分析—客户端和服务器的命令处理在《red5源码分析—5》中可以知道,在RTMP握手完毕后,客户端会向服务器发送connect命令,connect命令的主要作用就是要和red5服务器上的某个Scope相连接,连接完成后,会向客户端发送带宽协调的指令,ping指令,和一个带宽检测指令。下面先分析ping指令。ping指令服务端代码这里先贴一下在服务器将客户端和某个Scope相连后发出的pin

2016-05-06 22:11:36 4626

原创 red5源码分析---5

red5源码分析—服务器接收connect命令在前两章《red5源码分析—3》中提到,在red5客户端与服务器握手期间,当red5客户端接收到服务器发送过来的S2信息后,会向服务器发送”connect”命令,为了方便分析,这里再贴一下这部分代码, public void connectionOpened(RTMPConnection conn) { Channel

2016-05-06 16:10:19 2278

原创 red5源码分析---4

red5源码分析—服务器端握手上一节分析了red5客户端握手的过程,这一节开始分析red5服务器端握手的过程。 和客户端的分析类似,在red5服务器端TCP连接建立后,会调用sessionCreated函数,在该函数中会注册RTMPEIoFilter过滤器,TCP连接建立后,所有的消息就会经过该过滤器,握手的消息也不例外,下面就来看该过滤器的messageReceived函数, public

2016-05-04 15:51:20 1249

原创 red5源码分析---3

red5源码分析—客户端握手从《red5源码分析—1》中可知,客户端会在RTMPMinaIoHandler的sessionOpened函数中向服务器发送第一次握手请求,即TCP连接建立好了,就开始建立RTMP连接了。

2016-05-04 15:17:34 1579

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除