[Live-devel] Trick Mode Data Rate Limitation
xcsmith at rockwellcollins.com
xcsmith at rockwellcollins.com
Wed Jul 18 11:09:03 PDT 2007
Ross and Community,
I am hoping to implement a bandwidth limitation on trick mode streams
only, such that the bitrate of the trick mode stream would not exceed the
average bitrate of the original stream. For the particular 5 Mbps streams
that I have, I cannot get above 4x speed-up without significantly
exceeding the 5 Mbps data rate. (I have stopped the filter from repeating
I-Frames because my client's network buffers have no hope of handling
these repetitions. Also, I was told that the I-frames which were repeated
had identical PCR if - I remember correctly - and so the decoder buffer of
my client would become full before a new PCR was available in the buffer.)
I have figured out a very crude way to implement this for my specific
system, but I am trying to figure out a better way to do the math to
determine which I-frames to discard to implement a bitrate limitation.
Initially, I think that if I add another count to
MPEG2TransportStreamTrickModeFilter such that each GOP would be divided
into 4 "time slots", and allow only 1 I-frame to be sent per "time-slot",
that my trick-mode bitrate limitation would work most of the time. I
think this was the suggestion here:
http://lists.live555.com/pipermail/live-devel/2007-March/006317.html
It would work something like this:
Each GOP I can think of as being divided into 15 time-slots, T0-T14. I
must send "scale" number of I-frames per GOP. If "scale" > 15, then some
I-frames will be discarded.
I can figure out which I-frame, IN, from the original stream goes in any
given slot with:
floor function ( scale * slot-number / GOP-length) = N
To limit the bitrate on top of this, I would have to divide the GOP into 4
and allow only one I-frame to be sent in each of T0-T3, T4-T7, T8-T11,
T12-T14.
You can see that this implementation would not scale very well at all, and
in fact might not even work for particular streams in my system. I would
most like to ensure that the trick mode bitrate would not exceed the
average bitrate of the original stream. But if that is not possible, then
I would like to figure out a way to specify the maximum bitrate. Can you
provide any suggestions on how to implement either of these changes? I
see here, you have a different idea altogether:
http://lists.live555.com/pipermail/live-devel/2007-April/006509.html
Thank you!
Xochitl Smith
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.live555.com/pipermail/live-devel/attachments/20070718/645eac7e/attachment.html
More information about the live-devel
mailing list