[Red5] Shared Objects | Making Progress
Jim Tann
Jim at avtgroup.com
Wed Dec 14 05:12:09 EST 2005
That is pretty f***ing clever stuff, I am so happy that you guys are
doing the nasty legwork on stuff like this so we can have an easy life
using Red5.
Jim
-----Original Message-----
From: Red5-bounces at osflash.org [mailto:Red5-bounces at osflash.org] On
Behalf Of Luke Hubbard (luke at codegent.com)
Sent: 14 December 2005 05:33
To: red5 at osflash.org
Subject: [Red5] Shared Objects | Making Progress
Hi Guys,
This month I haven't had much time to work on red5 unfortunately,
however last night I managed to spend a few hours looking over old
shared objects bytes. Trying all sorts of things to understand the
structure which was confusing me since it seemed to go against the rules
of rtmp headers. Thanks to mick for the encouragement and help. I think
I have got it now, this hasn't been turned into code yet but that
shouldn't take long. I just wanted to document the discovery to the list
first. Upstream is green, downstream is blue, and the timer and extra
header bytes are highlighted red.
// This is the first packet received
// at first it confused me as I didn't get why there way no reply
// note the timer is [00 00 01]
[43] [ 00 00 01] [00 00 16] [13] // rtmp header
// shared object name
[00 03] [73 6F 31] // so name
// 12 separator bytes, don't seem to change
[00 00 00 00 00 00 00 00 00 00 00 00] // separator
// shared object update body, there can be more than one
// actually its a little similar to remoting since that has multiple
bodies in one packet
// The structure is. [byte channel][int
size]([amf_string_key][amf_data_value])* optional
[01] [00 00 00 00] // channel: 1, size: empty
// why no reply? well the body is empty so no point relaying it
// so no need for the server to reply, it just drops this packet
// This is the second upstream packet
// note the timer is [00 00 00] this time
[43] [ 00 00 00] [00 00 3C] [13] // rtmp header
[00 03] [73 6F 31] // so name
[00 00 00 00 00 00 00 00 00 00 00 00] // separator
[06] [00 00 00 26] // channel: 6, size: 38
key: [02] [00 07] [74 65 73 74 61 72 72]
value: [08] [00 00 00 02] [00 01] [30] [02] [00 04] [77 6F 6F 74] [00
01] [31] [02] [00 04] [74 6F 6F 74] [00 00 09]
// This is the downstream reply to the second upstream packet
// note the timer is [FF FF FF] in reply to [00 00 00] above
[04] [FF FF FF] [00 00 46] [13] [00 00 00 00] // rtmp header
// strange new header bytes, only appear when timer is [FF FF FF]
// I'm assuming this is some sort of shared object init id
[01 8D 14 5B] // so int id (extra 4 bytes to header)
[00 03] [73 6F 31] // so name
[00 00 00 00 00 00 00 00 00 00 00 00] // separator
[0B] [00 00 00 00] // channel: 11, size: empty
[08] [00 00 00 00] // channel: 8, size: empty
[06] [00 00 00 26] // channel: 6, size: 38
key: [02] [00 07] [74 65 73 74 61 72 72]
value: [08] [00 00 00 02] [00 01] [30] [02] [00 04] [77 6F 6F 74] [00
01] [31] [02] [00 04] [74 6F 6F 74] [00 00 09]
// Another simple upstream packet, after the handshake
// note the timer now seems to be a timestamp again
[43] [00 1D 11] [00 00 23] [13] // rtmp header
[00 03] [73 6F 31] // so name
[00 00 00 00 00 00 00 00 00 00 00 00] // separator
[06] [00 00 00 0D] // channel: 6, size: 13
key: [02] [00 03] [6D 73 67]
value: [02] [00 04] [77 6F 6F 74]
// The reply, its basically an echo now the only change is the timer
[04] [00 1D 13] [00 00 23] [13] [00 00 00 00] // rtmp header
[00 03] [73 6F 31] // so name
[00 00 00 00 00 00 00 00 00 00 00 00] // separator
[06] [00 00 00 0D] // channel: 6, size: 13
key: [02] [00 03] [6D 73 67]
value: [02] [00 04] [77 6F 6F 74]
I think we have it now, it looks right at least. I guess we will find
out soon enough when I update the the shared objects code to support
multiple bodies and the initial handshake. Once we get shared objects
working, we are going to concentrate on improving the streaming code
working towards the 0.3 release. We had a chat yesterday on skype and
will be looking to expand the team soon. I'm going to write up a few
tasks with ranging difficulty / challenge for people to get started on.
More on that later.
-- Luke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://osflash.org/pipermail/red5_osflash.org/attachments/20051214/5315ab81/attachment-0001.htm
More information about the Red5
mailing list