Hi,
We have a thirdparty server which streams live data over RTP using the following rtp profiles: 1) H.264 Video using the RTP profile for H264 i.e. RFC 3984 2) AAC audio using the RTP profile for MPEG4-Generic Audio (Aac-hbr mode) i.e. RFC 3640 The contents of sdp file received from the server are as below (There is no RTSP/RTCP protocol, the sdp file is received externally by some other means): v=0 o=VLSS 10765500 10765500 IN IP4 192.168.0.133 s=VLSS c=IN IP4 239.255.255.6 t=0 0 m=video 25000 RTP/AVP 96 a=rtpmap:96 H264/1000 a=fmtp:96 profile-level-id= m=audio 25002 RTP/AVP 97 a=rtpmap:97 mpeg4-generic/16000/1 a=mpeg4-esid:101 a=fmtp:97 streamtype=5; profile-level-id=15; config=1408; mode=AAC-hbr; SizeLength=13; indexlength=3; indexdeltalength=3 we tried playing the video using the following pipeline: gst-launch-0.10 udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)\"\", payload=(int)96' ! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! ximagesink The video playback jerks in between with the following message: gstbasesink.c(2597): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXImageSink:ximagesink0: There may be a timestamping problem, or this computer is too slow. WARNING: from element /GstPipeline:pipeline0/GstXImageSink:ximagesink0: A lot of buffers are being dropped. However when we use sync=false the playback is fine. Tried analyzing the timing parameters using -v option and fakesink and it seems the timing is incremental. We suspect that the following can create the issue: 1) Clock Rate as per the SDP file is 1000 however in caps we are using 90000. We tried with 1000 but the pipeline didn't execute throwing the following error: WARNING: erroneous pipeline: could not link udpsrc0 to rtph264depay0 2) The frame-rate of this video is 50 fps. The pipeline is getting wrong frame rate info which can create this issue. The playback of this sdp file using vlc plays fine without any jerks and A/V sync issues. Thanks, Amol |
On 01/05/2012 10:33 AM, amolnatekar wrote:
> Hi, > > We have a thirdparty server which streams live data over RTP using the > following rtp profiles: > > 1) H.264 Video using the RTP profile for H264 i.e. RFC 3984 > 2) AAC audio using the RTP profile for MPEG4-Generic Audio (Aac-hbr mode) > i.e. RFC 3640 > > The contents of sdp file received from the server are as below (There is no > RTSP/RTCP protocol, the sdp file is received externally by some other > means): > > v=0 > o=VLSS 10765500 10765500 IN IP4 192.168.0.133 > s=VLSS > c=IN IP4 239.255.255.6 > t=0 0 > m=video 25000 RTP/AVP 96 > a=rtpmap:96 H264/1000 > a=fmtp:96 profile-level-id= > m=audio 25002 RTP/AVP 97 > a=rtpmap:97 mpeg4-generic/16000/1 > a=mpeg4-esid:101 > a=fmtp:97 streamtype=5; profile-level-id=15; config=1408; mode=AAC-hbr; > SizeLength=13; indexlength=3; indexdeltalength=3 > > we tried playing the video using the following pipeline: > > gst-launch-0.10 udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25000 > caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, > encoding-name=(string)H264, profile-level-id=(string)\"\", payload=(int)96' > ! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! ximagesink > > The video playback jerks in between with the following message: > > gstbasesink.c(2597): gst_base_sink_is_too_late (): > /GstPipeline:pipeline0/GstXImageSink:ximagesink0: > There may be a timestamping problem, or this computer is too slow. > WARNING: from element /GstPipeline:pipeline0/GstXImageSink:ximagesink0: A > lot of buffers are being dropped. property. Wim > However when we use sync=false the playback is fine. Tried analyzing the > timing parameters using -v option and fakesink and it seems the timing is > incremental. > > We suspect that the following can create the issue: > > 1) Clock Rate as per the SDP file is 1000 however in caps we are using > 90000. We tried with 1000 but the pipeline didn't execute throwing the > following error: WARNING: erroneous pipeline: could not link udpsrc0 to > rtph264depay0 > > 2) The frame-rate of this video is 50 fps. The pipeline is getting wrong > frame rate info which can create this issue. > > The playback of this sdp file using vlc plays fine without any jerks and A/V > sync issues. > > Thanks, > Amol > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Playback-of-RTP-stream-using-gstreamer-tp4264837p4264837.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Thanks Wim,
I have added the gstrtpjitterbuffer in the pipeline as below: gst-launch-0.10 udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25040 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)\"\", payload=(int)96' ! gstrtpjitterbuffer latency=500 ! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! ximagesink Now the warning messages are removed but playback is not smooth.. playback jerks even now after specific time interval Is there any other issue with the above mentioned pipeline? -Amol P.S. Attaching the SDP file for reference.sample.sdp |
Any pointers on how to debug this issue further. I tried dumping the stream using the following pipeline:
gst-launch-0.10 --gst-debug=ffmpeg:5 udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)\"\", payload=(int)96' ! gstrtpjitterbuffer latency=2000 ! rtph264depay ! filesink location="video_dump.264" and it works fine when played using ffplay. So i doubt that the timing parameters are still not proper. I even provided the proper framerate to ffdec_h264 element as shown in the pipeline below: gst-launch-0.10 -vvv udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)\"\", payload=(int)96' ! gstrtpjitterbuffer latency=2000 ! rtph264depay ! 'video/x-h264,framerate=(fraction)50/1' ! ffdec_h264 ! ffmpegcolorspace ! ximagesink Am I still missing something in the above pipeline? Thanks, Amol |
In reply to this post by amoln
Any pointers on how to debug this issue further. I tried dumping the stream
using the following pipeline: gst-launch-0.10 --gst-debug=ffmpeg:5 udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)\"\", payload=(int)96' ! gstrtpjitterbuffer latency=2000 ! rtph264depay ! filesink location="video_dump.264" and it works fine when played using ffplay. So i doubt that the timing parameters are still not proper. I even provided the proper framerate to ffdec_h264 element as shown in the pipeline below: gst-launch-0.10 -vvv udpsrc multicast-iface=eth0 uri=udp://239.255.255.6:25000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)\"\", payload=(int)96' ! gstrtpjitterbuffer latency=2000 ! rtph264depay ! 'video/x-h264,framerate=(fraction)50/1' ! ffdec_h264 ! ffmpegcolorspace ! ximagesink Am I still missing something in the above pipeline? Thanks, Amol -- View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Playback-of-RTP-stream-using-gstreamer-tp4264837p4268343.html Sent from the GStreamer-devel mailing list archive at Nabble.com. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |