[Red5] simple red5 setup ?
Thijs Triemstra | Collab
thijs at collab.nl
Tue Nov 1 07:03:36 EST 2005
The FLV playback needs the serverside scripts below to work with
flashcom flv's.. you can also find this main.asc in the Flash8/
Samples/Components/FLVPlayback folder on your hd. not sure if and how
this works with red5 though :)
Thijs
application.onConnect = function(p_client, p_autoSenseBW)
{
//Add security here
this.acceptConnection(p_client);
if (p_autoSenseBW)
this.calculateClientBw(p_client);
else
p_client.call("onBWDone");
}
Client.prototype.getStreamLength = function(p_streamName) {
return Stream.length(p_streamName);
}
Client.prototype.checkBandwidth = function() {
application.calculateClientBw(this);
}
application.calculateClientBw = function(p_client)
{
p_client.payload = new Array();
for (var i=0; i<1200; i++){
p_client.payload[i] = Math.random(); //16K approx
}
var res = new Object();
res.latency = 0;
res.cumLatency = 1;
res.bwTime = 0;
res.count = 0;
res.sent = 0;
res.client = p_client;
var stats = p_client.getStats();
var now = (new Date()).getTime()/1;
res.pakSent = new Array();
res.pakRecv = new Array();
res.beginningValues = {b_down:stats.bytes_out,
b_up:stats.bytes_in, time:now};
res.onResult = function(p_val) {
var now = (new Date()).getTime()/1;
this.pakRecv[this.count] = now;
//trace( "Packet interval = " + (this.pakRecv[this.count] -
this.pakSent[this.count])*1 );
this.count++;
var timePassed = (now - this.beginningValues.time);
if (this.count == 1) {
this.latency = Math.min(timePassed, 800);
this.latency = Math.max(this.latency, 10);
}
//trace("count = " + this.count + ", sent = " + this.sent +
", timePassed = " + timePassed);
// If we have a hi-speed network with low latency send more
to determine
// better bandwidth numbers, send no more than 6 packets
if ( this.count == 2 && (timePassed<2000))
{
this.pakSent[res.sent++] = now;
this.cumLatency++;
this.client.call("onBWCheck", res, this.client.payload);
}
else if ( this.sent == this.count )
{
// See if we need to normalize latency
if ( this.latency >= 100 )
{ // make sure we detect sattelite and modem correctly
if ( this.pakRecv[1] - this.pakRecv[0] > 1000 )
{
this.latency = 100;
}
}
delete this.client.payload;
// Got back responses for all the packets compute the
bandwidth.
var stats = this.client.getStats();
var deltaDown = (stats.bytes_out -
this.beginningValues.b_down)*8/1000;
var deltaTime = ((now - this.beginningValues.time) -
(this.latency * this.cumLatency) )/1000;
if ( deltaTime <= 0 )
deltaTime = (now - this.beginningValues.time)/1000;
var kbitDown = Math.round(deltaDown/deltaTime);
trace("onBWDone: kbitDown = " + kbitDown + ", deltaDown=
" + deltaDown + ", deltaTime = " + deltaTime + ", latency = " +
this.latency + "KBytes " + (stats.bytes_out -
this.beginningValues.b_down)/1024) ;
this.client.call("onBWDone", null, kbitDown, deltaDown,
deltaTime, this.latency );
}
}
res.pakSent[res.sent++] = now;
p_client.call("onBWCheck", res, "");
res.pakSent[res.sent++] = now;
p_client.call("onBWCheck", res, p_client.payload);
}
Op 1-nov-2005, om 3:53 heeft John Grden het volgende geschreven:
> Hey Adam, I tried this with the FLV playback and it failed here as
> well. Not sure why that would be, but I have to assume there's
> some calls that Red5 hasn't implemented yet ;) That's very likely
> since the only one that I know of is "play" on the NetStream object
> - that was the last I had heard. So while metaData and play work,
> there are probably a ton of other things that need to be added.
>
> However, if you're wanting to build your own app, this code DOES work:
>
> var nc = new NetConnection();
> nc.connect("rtmp:/oflaDemo/demoService");
> var ns:NetStream = new NetStream(nc);
> ns.onStatus = function(obj)
> {
> trace(obj.code);
> }
> av.attachVideo(ns)
> ns.play("LUCASARTS_FLIP_320_high.flv");
>
> Just drag a new video object on stage and name it "av" and you're
> good to go!
>
> On 10/31/05, Adam Procter <Adam.Procter at luton.ac.uk> wrote:
> I am trying to connect to my red 5 server from scratch
> and to try it out with flash 8 and the video components ?
>
> I have added the following code to frame
>
> my_nc = new NetConnection();
> my_nc.connect(" rtmp://localhost:1936/oflaDemo/demoService")
>
> I have then added a FLV playback component
> do I just add contentpath as on2_flash8_w_audio.flv ? or other
> items in the flvs
> folder ?
>
> Adam
>
> _______________________________________________
> Red5 mailing list
> Red5 at osflash.org
> http://osflash.org/mailman/listinfo/red5_osflash.org
>
>
>
> --
> John Grden - Blitz
> _______________________________________________
> Red5 mailing list
> Red5 at osflash.org
> http://osflash.org/mailman/listinfo/red5_osflash.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://osflash.org/pipermail/red5_osflash.org/attachments/20051101/fabae5b1/attachment.htm
More information about the Red5
mailing list