[Red5] simple red5 setup ?

Dominick Accattato daccattato at gmail.com
Tue Nov 1 09:08:47 EST 2005


Anyone trying to use the flash video components. There are issues with
interoperability at this time. I believe that I understand the reason why
there is a connection problem. some components send a prefix of flv: to the
server. We currently don't account for this, but we will look into getting
this working soon. Just a heads up. serve on!

example:
.\hosts\__default__\apps\oflaDemo\streams\flv:OFLA_PROMO (The system cannot
find the file specified)
  So, all we have to do is have a service that checks for the flv: prefix
and strip that. I'm sure the component makes other calls, but this is the
one that will return the streaming video.

 On 11/1/05, John Grden <neoriley at gmail.com> wrote:
>
> ah Thanks T, appreciate you filling in the blanks!
>
> we do have server side services working with Java at the moment, so I
> wonder what the team thinks about how to implement this on Red5? we probably
> won't approach it right now since we're gearing up for Spark, but this WOULD
> be very cool to show
>
> Thanks again,
>
> On 11/1/05, Thijs Triemstra | Collab <thijs at collab.nl> wrote:
> >
> > 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
> >
> >
> >
> > _______________________________________________
> > 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/d74f531c/attachment.htm


More information about the Red5 mailing list