[Live-devel] using mplayer with live to stream Real Time MPEG4 ES
Video Stream.
Saumya Chandra
saumya at ece.ucsd.edu
Sun Nov 21 16:42:53 PST 2004
Hi,
I am trying stream mpeg4ESVideo files using mplayer with live libraries. I
want to change the implementation so that if a frame does not arrive by
the expected time value, then drop the frame and replace it with the
previous frame (ofcourse with changed timestamp values).
AFAIK, in the live.com implementation rtp timestamps are independant of
the timestamps in the mpeg stream, introduced by the encoder. And mplayer
does not use these timeStamps except for A/V sync. Can you confirm my
assumptions? (OR if there is any option in mplayer which would enable me
to have the above implementation.)
I am trying to make changes in the live.com code for the same, so that the
behaviour would be same even if I stream the video using openRTSP. (And
also because i am more familiar with this code then the mplayer code).
Live uses some form of queues to write the rtp packets (- not entire video
frames. So, instead from newFramePtr [ BufferedPacket::use(...)
> memmove(to, newFramePtr, bytesUsed)] I would write from the previous
stored frame.
But one serious flaw in this implementation would be if mplayer does use
the timestamp values as in the encoded mpeg4ES video stream - and also
from the fact that encoded frame is replicated. So there will be large
errors if a P frame is dropped and replicated with the previous _encoded_
P frame. In that case can you suggest how can I go about changing the
mplayer implementation so that it would output the previous decoded frame
(and not just display it for longer duration). Can some one let me know if
there is some patch available to do so?
Thanks,
More information about the live-devel
mailing list