[Live-devel] Receiving MPEG4 stream from a video server and transport they out
Always Chen
always.chen at gmail.com
Thu Oct 16 12:27:35 PDT 2008
Dear Ross, all,
I'm new to live555. I have a video server that it can stream out video
data and the stream's format is use mpeg4. I can receive stream from that
device using openRTSP. And I also can see mpeg4 video in VLC using
testOnDemandRTSPServer. Now, I want to receive stream from the video server
using live555. And I also want to have a software video server. The software
video server's income stream is come from receive process. I already read
FAQ, but I still haven't any idea to do this. So, I try to find the answer
at the live-devel mail list and find some information. But I still have some
problem as follow:
1. When I try to use the command as follow:openRTSP -s 0 -v rtsp://
admin:12345678 at 192.0.0.10:6000/udpstream | testOnDemandRTSPServer
I can saw the video using VLC at other computer. But the video quality
is so bad enough(lots of mosaic, lose lots of frame, delay etc.).
How should I improve the problem?
2. I try to modified testMPEG4VideoStreamer and merge it into openRTSP.
Modifed place as follow:
void play(void* clientData) {
MediaSubsessionIterator MSIterator(*ClientMediaSession);
MediaSubsession *ClientMediaSubsession = NULL;
ClientMediaSubsession = MSIterator.next();
FramedSource* videoES = ClientMediaSubsession->readSource();
// Create a framer for the Video Elementary Stream:
videoSource = MPEG4VideoStreamFramer::createNew(*env,
videoES);
// Finally, start playing:
*env << "Beginning to read from file...\n";
videoSink->startPlaying(*videoSource, afterPlaying,
videoSink);
}
When I executed it. It had show lots of error message as follow:
MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected
code 000001E0
MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit not set!
And Sometime had error message as follow:
MPEG4VideoStreamParser::parseVideoObjectPlane(): This appears to
be a 'short video header', which we current don't support
Or
MultiFramedRTPSource::doGetNextFrame1(): The total received frame
size exceeds the client's buffer size (152). 464 bytes of trailing data
will be dropped!
I also used VLC debug mode to connect my modified program at other
computer. I can saw the first picture, but I can't saw any more on the next.
VLC's log message as follow:
avcodec warning: cannot decode one frame (283 bytes)
main warning: late picture skipped (138772)
avcodec warning: cannot decode one frame (283 bytes)
main warning: late picture skipped (231508)
avcodec warning: cannot decode one frame (282 bytes)
main warning: late picture skipped (371951)
main warning: late picture skipped (462513)
main warning: late picture skipped (917404)
main warning: late picture skipped (97524)
avcodec warning: cannot decode one frame (288 bytes)
avcodec warning: cannot decode one frame (98 bytes)
avcodec warning: cannot decode one frame (250 bytes)
avcodec warning: cannot decode one frame (98 bytes)
avcodec warning: cannot decode one frame (282 bytes)
main warning: late picture skipped (1095917)
avcodec warning: cannot decode one frame (283 bytes)
main warning: late picture skipped (136277)
main warning: late picture skipped (127051)
avcodec warning: cannot decode one frame (283 bytes)
avcodec warning: cannot decode one frame (282 bytes)
live555 debug: tk->rtpSource->hasBeenSynchronizedUsingRTCP()
avcodec warning: cannot decode one frame (98 bytes)
What's problem in the process? And how should I fix the problem?
Thanks for your help.
--
Best regards,
Always Chen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20081017/53e9d89a/attachment.html>
More information about the live-devel
mailing list