[osflash] RTMP streams and channels

Radsl admin at radsl.net
Tue Jan 20 17:13:11 PST 2009


maybe these file can help you...

----- Original Message ----- 
From: "Stefano Sabatini" <ssabatini at reilabs.com>
To: "osflash Mailing List" <osflash at osflash.org>
Sent: Tuesday, January 20, 2009 11:43 AM
Subject: [osflash] RTMP streams and channels


> Hi all,
> 
> I'm trying to understand how the RTMP protocol works, I have read
> these so far:
> 
> http://osflash.org/documentation/rtmp
> http://wiki.gnashdev.org/RTMP
> http://code.google.com/p/erlyvideo/wiki/StreamNotes
> 
> Also wireshark helped with it (unfortunately there are some messages
> it isn't able to correctly decode, for example I found a lot of
> deleteStream invokes interpreted as part of an audio packet).
> 
> I'm trying to understand how the streams are managed, in particular I
> would like to understand how they are deleted from the flash server.
> 
> This is my incomplete reconstruction of a stream establishment setup
> and hangup between a client and a server.
> 
> Legend:
> chID = channelID, called ObjectD by wireshark/libpcap
> stID = streamID, called SourceCaller by wireshark/libpcap
> 
> C: send and invoke with chID = 3
> 
> S: reply with a _result (with chID = 3) containing the stID to be used
>   for the publish
> 
> C: send a publish using as argument the stID defined above, the
>   publish has as chID a number which seems to be chosen by the
>   client, chID1
> 
> S: reply to the previous publish with an onStatus, the response chID
>   is different from chID1, I'll call it chID2
> 
> C: finally the client closes the stream with a closeStream with chID1.
>   The body of the invoke is: string(closeStream) number(0) null()
> 
> Now I can observe in the stream some delete stream of the form:
> string(deleteStream) number(0) null() number(N).
> 
> I suppose deleting the stream is *required* in order to free a channel
> ID (otherwise the server need to use channelsID greater than 63, so it
> needs another byte in the header to contains such ID).
> 
> I'd like to know the meaning of the number(N) in the delete stream,
> also the meaning of chID1 (which is choosen by the client) and of
> chID2, which is assigned by the server (in general it's not very clear
> to me the overall meaning of channelID/ObjectID and
> streamID/CallerSource).
> 
> I'm not sure this is the more appropriate place where to ak such
> questions, so any pointer to a relevant link/resource is welcome.
> 
> Regards.
> 
> _______________________________________________
> osflash mailing list
> osflash at osflash.org
> http://osflash.org/mailman/listinfo/osflash_osflash.org
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtmp_implementation_ruby.zip
Type: application/x-zip-compressed
Size: 25221 bytes
Desc: not available
URL: <http://osflash.org/pipermail/osflash_osflash.org/attachments/20090120/4c7d5dad/attachment-0001.bin>


More information about the osflash mailing list