[Live-devel] Live streaming mpeg1or2

Dillon Lee dlee at numirabio.com
Mon Jun 14 15:19:02 PDT 2010


Hello everyone,

I am attempting to stream frames that are generated live via OpenGL and compressed into MPEG2 Video frames. I have created a class which inherits from FramedSource and that class overrides doGetNextFrame(). I have also created a function called deliverFrame() that is called by doGetNextFrame() when a new frame is available. deliverFrame() copies the compressed image into fTo and then calls FramedSource::afterGetting() (I'm a bit confused as to how I should use the fDurationInMicroseconds and fPresentationTime because the images do not occur at regular time intervals). My problem is that when I try to view my stream using VLC I get only one or two frames across before VLC stops updating. The two frames I get are not one right after another but rather one and then a few seconds later another one, after that VLC is stuck showing that frame. VLC does not freeze but it doesn't keep up with the streaming frames. If I press stop and play (or rewind or fastforward) on VLC then I get one or two frames and the same thing happens again. I have looked at the log for VLC and for the most part it says 'Buffering 0%'. Sometimes it will say:

libmpeg2 error: DpbUnlinkPicture called on an invalid picture
main warning: backward_pts != current_pts (-12913336635)

but that message is rare.
I am using the 'testMPEG4VideoStreamer.cpp' file for initializing all my stuff, the only difference is that I am using my derived FramedSource in the play() function. Any thoughts as to why this might be happening? Thanks in advance for your help.

Dillon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20100614/c3612a0e/attachment.html>


More information about the live-devel mailing list