|
View:
New views
11 Messages
—
Rating Filter:
Alert me
|
|
|
Live Silverlight streaming is a go.Hey guys, soon Ill write up another full length
hair-brained article, but just putting the word out that it works as advertised.
I have implemented a hybrid http streaming protocol into a red5 servlet.
Combining DNAS NSV and RTMPS and fractals, yes, fractals, I have
implemented a multi channel data pipe to silverlight. I doubt its
revolutionary but it is very effective.
Proof of concept project is live mp3 audio
streaming from FME 3 to red5 .9 to silverlight 3.0. This evening was the break
through when the PC started echoing success through the
speakers.
Interesting points I like about
silverlite:
Real framework for custom
transcoders and parsers built into the API.
True non-GUI thread support and
Thread delegates to support said transcoders and parsers.
Happy campin'
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.Nice! once again you've done "it".. ;)
On Tue, Nov 3, 2009 at 7:29 PM, Andy Shaules <bowljoman@...> wrote:
-- http://gregoire.org/ http://code.google.com/p/red5/ http://code.google.com/p/blue5/ _______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.Waaahooo! Joy does stream!
I will likey release the java side first. Rough draft. Redsilver Messenger Service: Version 0.2.1 Copyright Andy Shaules. All rights reserved. Redsilver messenger service is an http streaming method to deliver timestamped media samples of multiple data types, to a silverlight subscriber. The container fomat is fractal, in that a container I call a 'Bucket', can contain nested buckets with multiple channels of multiple data types. ---------------------------------------- Raw Bucket chunk from red5 U32 (NUMBER OF Buckets) BYTE [ UNKNOWN ] ------------------------------------------ Bucket: Simple type U32 (TIMESTAMP or CHANNEL) U32 (FourCC Code TYPE) U32 (LENGTH) BYTE[LENGTH] of raw data ------------------------------------------ If TYPE = 'N' 'E' 'S' 'T' { TIMESTAMP = Data CHANNEL number. LENGTH= LENGTH of nested Bucket Chunk BYTE[LENGTH]= Nested Bucket of samples or another subchannel within a nested bucket. } So, for the mp3 audio streaming to silverlight, I grab the data out of the rtmp packet and stuff it into a Bucket with the same timestamp, and size. I could also grab video samples and stuff them into another bucket. Buckets are segmented together into a bucket chunk, OR fed into another bucket NEST. and fed to clients. Subscribers are noted and Old buckets are disposed as they are no longer needed by the clients. The red5 application can register 'Redsilver' resources under a string-name. The tomcat client from silverlight passes a request for a resource and if it exists, he gets a token, if not, he gets a status message. With a token, the client passes it to red5. Red5 looks at the bucket segment stream in the resource and sends one to the client. The client advances up the segment stream, and old ones are deleted. After a timeout of not requesting, his token is deleted the segment stream garbage collected to the point of ant other client's cue. THe Developer has control over all aspects of the protocol. THe number of samples, the length of segments, the period of garbage collection. Resources can be registerred similar to a context path. "lobby/sex/upper" (hahaha joking). A service is created by overriding an abstract class called 'BucketFactory' and I added the 'NestedBucketFactory' class to produce the multi channel + multi media + interlaced data streams. BucketStreamSubscription.registerBucketFactory(test.getName()); I wrote the bucket codec to use with easy methods. public static byte[] encode(int timestamp,int fourCC, byte[] data) public static byte[] encodeNestData(int streamChannel, byte[] data) The folllowing is a little jumbled but it takes about 10 lines of java using my framework to setup a stream into silverlight. ------------------------- Add several samples to the bucket factory like so: byte[] bufferOfRawMp3Frames; test.nestFactory.onData(BucketCodec.encode(((AudioData)packet).getTimestamp(),('M' | 'P' <<8 |'3' <<16 | ' ' << 24), bufferOfRawMp3Frames.array())); -------------------------------------------------------- when full encode nested buckets into a parent bucket. nestData =nestFactory.nestFull(); //true means it is full and send to bucket segment cue, false would hold it for more data. onData(BucketCodec.encodeNestData(0 , nestData),true); ----------------------------- The client then parses as described above. You can use sigle channel bucket stream by skipping the 'nest factory' methods and stuff them into the toplevel bucket. byte[] encode(int timestamp,int fourCC, byte[] data) Conversly, you can stuff Nested buckets into nested buckets into nested buckets inside a BucketChunk. And end up with Multimedia samples for each separate channel delivered to exacting time-points. >From there it goes to silverlight : MediaStreamSource Classes which become the source for MediaElement display object. FUN STUFF! BEAUTIFUL! More to come soon. Andy ----- Original Message ----- From: Mondain To: red5@... Sent: Tuesday, November 03, 2009 8:09 PM Subject: Re: [Red5] Live Silverlight streaming is a go. Nice! once again you've done "it".. ;) On Tue, Nov 3, 2009 at 7:29 PM, Andy Shaules <bowljoman@...> wrote: Hey guys, soon Ill write up another full length hair-brained article, but just putting the word out that it works as advertised. I have implemented a hybrid http streaming protocol into a red5 servlet. Combining DNAS NSV and RTMPS and fractals, yes, fractals, I have implemented a multi channel data pipe to silverlight. I doubt its revolutionary but it is very effective. Proof of concept project is live mp3 audio streaming from FME 3 to red5 .9 to silverlight 3.0. This evening was the break through when the PC started echoing success through the speakers. Interesting points I like about silverlite: Real framework for custom transcoders and parsers built into the API. True non-GUI thread support and Thread delegates to support said transcoders and parsers. Happy campin' _______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org -- http://gregoire.org/ http://code.google.com/p/red5/ http://code.google.com/p/blue5/ _______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org _______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.Hey! Cool stuff indeed!
Something came up to the list previously that may be an interesting addition to the mix: http://www.fluorinefx.com/
On Wed, Nov 4, 2009 at 5:30 PM, Andy Shaules <bowljoman@...> wrote: Waaahooo! Joy does stream! _______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.I meesed with florine for abut an hour and decided
it was far too asp related. Seems most of te work is to use flash amf with asp
servers.
There is a nice 'NetConnection' class I played with
for a bit, but the security policy of silvver light SUCKS.
You though flash was restrictive, howabout no
socket connections lowe than 5040 or so.
FLourine is an awesome project with a buch of neat
things to look into, but having to run a socketpolicy server on port 943 just to
begin, I decided it was far faster and extendable FOR ME, to implement a Http
client , although it will still need a crossdomain policy file.
I think in the end, until mms protocol is
implemented into tomcat and easy to use with red5, My 'Bucket-Cookie' Nest
protocol is ready to go. Even using the netconnection client in Flourine would
leave a whole bunch of stuff TODO.
The protocol was writen , implemented and
tested in two days. Then I spent two days writting and testing a source
class in silverlight.
Although I did mention that non-GUI threading is
available, you wont 'feel' it in firefox like you will in IE.
In firefox, while moving the window I could sense
all my debugging output was causing some hesitation. I dont like
that.
Andy
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.Great! Any live demo we can see?? hehe sorry for the anxiety but this stuff is really cool. Have you tried it with video (live or VOD)?
On Wed, Nov 4, 2009 at 6:15 PM, Andy Shaules <bowljoman@...> wrote:
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.no live demo, its all in my laboratory
network.
Live video will materialize when I nail down h264
codec private data that is needd by silverlight.
VOD is possible too if you write a BucketFactory to
stuff flv packet data payloads into a cookie with the time and
type.
It could go progressive or stream similar to rtmp
scrubbing depending on the class you write to copy the buffer
payloads.
I think that control messages can be posted by the
client to signify seek points.
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.Ok, I have had enough fun playing with this
toy.
Here is the complete story.
and source code
Every thing is released under gpl.
Have fun!
Andy
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.Great job Andy and thanks for using LGPL!!!
On Sun, Nov 8, 2009 at 7:14 PM, Andy Shaules <bowljoman@...> wrote:
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.You bet, it was fun. Anybody with questions, fell
free to pipe up.
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
|
|
Re: Live Silverlight streaming is a go.Good job Andy
Cheers! From: bowljoman@...
Sent: Monday, November 09, 2009 7:14 AM
To: red5@...
Subject: Re: [Red5] Live Silverlight streaming is a
go. Ok, I have had enough fun playing with this
toy.
Here is the complete story.
and source code
Every thing is released under gpl.
Have fun!
Andy
_______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org _______________________________________________ Red5 mailing list Red5@... http://osflash.org/mailman/listinfo/red5_osflash.org |
| Free embeddable forum powered by Nabble | Forum Help |