[Red5] Major Red5 bug

Jeremy Morton admin at game-point.net
Mon Apr 13 03:10:04 PDT 2009


This is a video-only stream.  There is no audio.

Best regards,
Jeremy Morton (Jez)

Andy Shaules wrote:
> Maybe you are mis-writing the timestamp value.
>
> I mean, you are admitting to hand coding the switch from rtsp or rtp to
> rtmp, so I'd look there first.
>
> And I think you misunderstand 'starts from 0'
>
> Consider that FLV frame rate is determined by audio sample frequency and
> sample count per frame.
>
> Frame 0 starts and frame 1 starts when all the audio samples from frame
> 0 are done regardless of headers.
>
> Video starts in relation to audio time.
>
> Nobody is re-writing the time values to 0.
>
>
>
> ----- Original Message ----- From: "Jeremy Morton" <admin at game-point.net>
> To: <red5 at osflash.org>
> Sent: Monday, April 13, 2009 2:50 AM
> Subject: Re: [Red5] Major Red5 bug
>
>
>> Oh, I see it. Looking at that patch, I don't think it's really dealing
>> with the problem I'm talking about, although maybe I don't properly
>> understand what it's doing. As far as I can tell from what Flash 10
>> does, Red5 needs to start each client's timestamps at 0, regardless of
>> when they subscribed to the stream. This means recording the timestamp
>> of the first event Red5 sends to that client, and subtracting that
>> value from the timestamp value of every event sent to the Flash client
>> from then on.
>>
>> This seems to have been behavioour introduced in Flash 10,
>> unfortunately, and I have no idea why it was introduced, it seems like
>> a bug, but it's a strange bug for them to introduce.
>>
>> Best regards,
>> Jeremy Morton (Jez)
>>
>> Mondain wrote:
>>> The patch is in this email thread, there was no associated jira ticket.
>>>
>>> Paul
>>>
>>> On Fri, Apr 10, 2009 at 2:25 AM, Jeremy Morton <admin at game-point.net
>>> <mailto:admin at game-point.net>> wrote:
>>>
>>> What patch? Case to point to a JIRA bug number?
>>>
>>>
>>> Best regards,
>>> Jeremy Morton (Jez)
>>>
>>> Mondain wrote:
>>>
>>> Thanks for the patch Jack, i have applied it at r3587 and maybe
>>> it will
>>> help Jeremy out with his issue.
>>>
>>> Paul
>>>
>>> On Sat, Mar 28, 2009 at 12:28 PM, Andy Shaules
>>> <bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>
>>> <mailto:bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>>>
>>> wrote:
>>>
>>> BTW list reader responsible....
>>>
>>> Thanks for the denial of service attack on that wimedia server.
>>>
>>> Good thing my client has great faith in me, as we have known
>>> eachother for a few years, and this does not affect our
>>> relationship.
>>>
>>> Andy
>>>
>>>
>>>
>>> ----- Original Message ----- From: "Andy Shaules"
>>> <bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>
>>> <mailto:bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>>>
>>> To: <red5 at osflash.org <mailto:red5 at osflash.org>
>>> <mailto:red5 at osflash.org <mailto:red5 at osflash.org>>>
>>>
>>> Sent: Saturday, March 28, 2009 10:10 AM
>>>
>>> Subject: Re: [Red5] Major Red5 bug
>>>
>>>
>>>
>>> i mean, you might cause it in the transcode. Simple copy of
>>> value might not work
>>>
>>>
>>> ----- Original Message ----- From: "Andy Shaules"
>>> <bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>
>>> <mailto:bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>>>
>>> To: <red5 at osflash.org <mailto:red5 at osflash.org>
>>> <mailto:red5 at osflash.org <mailto:red5 at osflash.org>>>
>>>
>>> Sent: Saturday, March 28, 2009 10:04 AM
>>> Subject: Re: [Red5] Major Red5 bug
>>>
>>>
>>> The system works first and best with spark.
>>>
>>> They may be using the On2 portion in that stream , but I
>>> gurantee if you use the flash client I linked, it
>>> will also
>>> work.
>>>
>>>
>>> You said ,'I know Red5 does some magic to incoming
>>> published
>>> video from a Flash
>>> client to make it play better.'
>>>
>>> Like what?
>>>
>>> Sounds to me, like you might not be causing the issue in
>>> your own transcode.
>>>
>>> Timing is the HARDEST part of this gig.
>>>
>>> You want me to sign an NDA and look at it?
>>>
>>>
>>>
>>> ----- Original Message ----- From: "Jeremy Morton"
>>> <admin at game-point.net <mailto:admin at game-point.net>
>>> <mailto:admin at game-point.net <mailto:admin at game-point.net>>>
>>> To: <red5 at osflash.org <mailto:red5 at osflash.org>
>>> <mailto:red5 at osflash.org <mailto:red5 at osflash.org>>>
>>>
>>> Sent: Saturday, March 28, 2009 8:57 AM
>>> Subject: Re: [Red5] Major Red5 bug
>>>
>>>
>>> Well as you said, without some of the Red5 code that
>>> client code ain't too useful, and is quite
>>> predictable.
>>> If you're using Flash all round, including to
>>> publish,
>>> then you have an easier problem to solve than
>>> me. :-) I
>>> have to transcode to RTMP from an incoming RTP
>>> stream.
>>> For all I know Red5 does some magic to incoming
>>> published video from a Flash client to make it play
>>> better. Also you're using VP6 as the codec,
>>> which may
>>> also have a bearing; I'm using Sorenson Spark.
>>>
>>> Best regards,
>>> Jeremy Morton (Jez)
>>>
>>> Andy Shaules wrote:
>>>
>>> publisher app
>>>
>>> http://wimedia.tv/martin/publish.php
>>>
>>>
>>>
>>> ----- Original Message ----- From: "Andy
>>> Shaules"
>>> <bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>
>>> <mailto:bowljoman at hotmail.com <mailto:bowljoman at hotmail.com>>>
>>> To: <red5 at osflash.org
>>> <mailto:red5 at osflash.org> <mailto:red5 at osflash.org
>>> <mailto:red5 at osflash.org>>>
>>>
>>> Sent: Saturday, March 28, 2009 9:33 AM
>>> Subject: Re: [Red5] Major Red5 bug
>>>
>>>
>>> We use flash clients, all the way
>>> around, and we
>>> also provide system
>>> to autorize a stream from on2 encoder.
>>>
>>> The source wouldnt help you without the red5
>>> code or the amf services
>>> that dole out the tokens.
>>>
>>> I can show you parts of the code, but Im not
>>> comfortable 'giving' out
>>> the source of a commercial product.
>>>
>>> I can install the system for a price,
>>> maintain
>>> it for a fee, at which
>>> point you could attempt to decompile it.
>>>
>>> If I was more secure finacially I would
>>> give it
>>> out free.
>>>
>>> I am happy to show you parts of the
>>> code! Just
>>> ask spacificly what you
>>> want to see.
>>>
>>>
>>> Play routine:
>>> nc.call("getStreams" ,new
>>> Responder(onResult));
>>>
>>> function onResult(streams:Array):void
>>>
>>> {
>>>
>>>
>>> trace("Stream list results length :"+
>>> streams.length);
>>>
>>> m_Streams=new ArrayCollection(streams);
>>>
>>>
>>> if(Application.application.parameters.stream)
>>>
>>> {
>>>
>>>
>>>
>>> trace(streams.indexOf(Application.application.parameters.stream));
>>>
>>> //Is param Live?
>>>
>>>
>>>
>>> if(streams.indexOf(Application.application.parameters.stream)>-1)
>>>
>>> {
>>>
>>> if(nc.connected)
>>>
>>> {
>>>
>>> ns=new NetStream(nc);
>>>
>>>
>>> ns.addEventListener(NetStatusEvent.NET_STATUS,stat);
>>>
>>> ns.client=this;
>>>
>>> ns.bufferTime=.6;
>>>
>>>
>>> ns.play(Application.application.parameters.stream);
>>>
>>> }
>>>
>>>
>>>
>>>
>>> Publisher
>>>
>>> cam=Camera.getCamera();
>>>
>>> cam.setMode(320,240,15,false);
>>>
>>>
>>> cam.setQuality(/* 128k in
>>> bytes*/(256*1024)/8,0);
>>>
>>>
>>>
>>> vid=new Video(320,240);
>>>
>>> sp.addChild(vid);
>>>
>>>
>>> idCam.text=cam.name <http://cam.name>
>>> <http://cam.name>;
>>>
>>>
>>> vid.attachCamera(cam);
>>>
>>>
>>> cam.addEventListener(StatusEvent.STATUS,camStat);
>>>
>>>
>>> cam.addEventListener(Event.ACTIVATE,camActivate);
>>>
>>>
>>> cam.addEventListener(Event.DEACTIVATE,camActivate);
>>>
>>>
>>> mic=Microphone.getMicrophone();
>>>
>>>
>>> mic.addEventListener(ActivityEvent.ACTIVITY,micActivity);
>>>
>>> mic.setSilenceLevel(0);
>>>
>>> mic.gain=30;
>>>
>>> mic.rate=44;
>>>
>>> idMic.text=mic.name <http://mic.name>
>>> <http://mic.name>;
>>>
>>>
>>> ...
>>>
>>> if(!nc)
>>>
>>> return;
>>>
>>> if(!nc.connected)
>>>
>>> return;
>>>
>>>
>>> if(ns)
>>>
>>> {
>>>
>>> ns.close();
>>>
>>> ns=null
>>>
>>> idPub.label="Publicar";
>>>
>>> return;
>>>
>>> }
>>>
>>> ns=new NetStream(nc);
>>>
>>>
>>> ns.addEventListener(NetStatusEvent.NET_STATUS,stat);
>>>
>>> ns.attachCamera(cam);
>>>
>>> ns.attachAudio(mic);
>>>
>>>
>>> ns.publish(member.username);
>>>
>>>
>>>
>>>
>>> ----- Original Message ----- From: "Jeremy
>>> Morton" <admin at game-point.net
>>> <mailto:admin at game-point.net>
>>> <mailto:admin at game-point.net <mailto:admin at game-point.net>>>
>>> To: <red5 at osflash.org
>>> <mailto:red5 at osflash.org> <mailto:red5 at osflash.org
>>> <mailto:red5 at osflash.org>>>
>>>
>>> Sent: Saturday, March 28, 2009 8:13 AM
>>> Subject: Re: [Red5] Major Red5 bug
>>>
>>>
>>> Thanks for all the wonderful detail
>>> there.
>>>
>>> Are you doing any video transcoding?
>>> Is the
>>> streaming eminating from
>>> a Flash client? I'm not trying to debate
>>> that you're using quality
>>> capture devices. Do you mind giving
>>> me the
>>> source code to that Flex app?
>>>
>>> Best regards,
>>> Jeremy Morton (Jez)
>>>
>>> Andy Shaules wrote:
>>>
>>> hahahahahah
>>>
>>> this is pure flex, pure red5.
>>>
>>> NO TRICKS, NO GIMICKS.
>>>
>>> We use quality capture devices.
>>>
>>>
>>>
>>>
>>>
>>> ----- Original Message ----- From:
>>> "Jeremy Morton"
>>> <admin at game-point.net <mailto:admin at game-point.net>
>>> <mailto:admin at game-point.net <mailto:admin at game-point.net>>>
>>> To: <red5 at osflash.org
>>> <mailto:red5 at osflash.org>
>>> <mailto:red5 at osflash.org <mailto:red5 at osflash.org>>>
>>>
>>> Sent: Saturday, March 28, 2009
>>> 8:04 AM
>>> Subject: Re: [Red5] Major Red5 bug
>>>
>>>
>>> Yep, I can. I have found the
>>> bug to
>>> be intermittent, to be
>>> honest. So
>>> what was that Flash client app
>>> created in, was it a
>>> non-free Adobe
>>> product? Feel like providing
>>> source
>>> code to an app that will compile
>>> with the Flex compiler? :-) Also
>>> what server is being used to
>>> stream
>>> that video, Red5 or FMS or
>>> Wowza?
>>>
>>> Best regards,
>>> Jeremy Morton (Jez)
>>>
>>> Andy Shaules wrote:
>>>
>>> Can you play this video?
>>>
>>> http://wimedia.tv/martin/play.php?stream=WiMediaTV
>>>
>>> It is several hours old.
>>> We can, and we only use
>>> FF. It
>>> appears after buffer is
>>> full.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> ----- Original Message -----
>>> From: "Jeremy Morton"
>>> <admin at game-point.net <mailto:admin at game-point.net>
>>> <mailto:admin at game-point.net <mailto:admin at game-point.net>>>
>>> To: <red5 at osflash.org
>>> <mailto:red5 at osflash.org>
>>> <mailto:red5 at osflash.org <mailto:red5 at osflash.org>>>
>>> Sent: Saturday, March
>>> 28, 2009
>>> 1:16 AM
>>> Subject: Re: [Red5]
>>> Major Red5 bug
>>>
>>>
>>> I appreciate your
>>> input, but
>>> did you actually read
>>> anything I wrote?
>>>
>>> Andy Shaules wrote:
>>>
>>> Because most
>>> compression
>>> routines will hold a
>>> space in memory
>>> for a
>>> certain amount
>>> of cued
>>> samples and
>>> depends on
>>> the timestamps to
>>> regulate
>>> dropping.
>>>
>>> This buffer ,
>>> when full
>>> will FIFO unless
>>> it can
>>> determine to drop
>>> frames
>>> or make-up.
>>>
>>>
>>> But that's exactly what
>>> flash is NOT doing,
>>> it does
>>> NOT play, it
>>> keeps
>>> building up data in the
>>> buffer even after it's
>>> generated the
>>>
>>> NetStream.Buffer.Full event.
>>>
>>> And if you have
>>> a full
>>> buffer of old
>>> frames, it
>>> is up to the plugin
>>> creator to
>>> handle what
>>> to do with the
>>> data. NSV
>>> system from
>>> NULLSOFT ,
>>> when the ring is
>>> full,
>>> will just start
>>> spitting
>>> out what it has.
>>> (like
>>> after about 15
>>> minutes).
>>>
>>>
>>> How can my frames be
>>> considered 'old'
>>> frames? You
>>> may not know this
>>> one, but I thought
>>> I'd ask
>>> anyway. If RTMP video
>>> timestamps start at
>>> 0, surely the only
>>> way they
>>> could be considered
>>> 'in the
>>> past' is if
>>> they were negative?
>>> None of
>>> my timestamps are
>>> negative,
>>> they're
>>> >= 0.
>>>
>>> Go to
>>>
>>> MicrosoftDirectshow
>>> forum and search for
>>> 'timestamps',
>>> 'missing
>>> video', 'Video only
>>> shows while dragging
>>> window', 'video
>>> plays to
>>> fast',
>>> 'device makes 7 seconds
>>> after recording one
>>>
>>> second'(unregulated
>>> frame
>>> generation did
>>> not sleep
>>> when ahead.)'.
>>> etc...
>>>
>>>
>>> As I've said, the IE
>>> plugin
>>> does seem to work OK
>>> with
>>> this, so it's
>>> probably not DirectShow
>>> that's the problem.
>>>
>>> Best regards,
>>> Jeremy Morton (Jez)
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> <mailto:Red5 at osflash.org <mailto:Red5 at osflash.org>>
>>>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>>
>>> --
>>> http://gregoire.org/
>>> http://osflash.org/red5
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>> _______________________________________________
>>> Red5 mailing list
>>> Red5 at osflash.org <mailto:Red5 at osflash.org>
>>> http://osflash.org/mailman/listinfo/red5_osflash.org
>>>
>>>
>>>
>>>
>>> --
>>> http://gregoire.org/
>>> http://osflash.org/red5
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> 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
>>
>
>
> _______________________________________________
> Red5 mailing list
> Red5 at osflash.org
> http://osflash.org/mailman/listinfo/red5_osflash.org
>



More information about the Red5 mailing list