Playing RTP stream has artifacts and sound problems

antimatter antimatter at quantentunnel.de
Wed May 7 04:43:22 PDT 2014


Hello,

I am a beginner with GStreamer and haven't done any fancy stuff so far. My
goal is to play a RTP multicast stream from our local network. The video
should be decoded with Fluendo codec pack (GPU accelerated), because the
target platforms have potent GPUs but only Atom CPUs. The general problem is
failing sound right after start (manual pipeline) or asynchronous/distorted
sound and lots of artifacts (playbin).

The stream originates from a DVB-S2 network tuner, which is sending a RTP
stream with a MPEG transport stream. Inside there's a H.264 720p video
stream, a 2-channel audio stream as AC3 and MP2. The teletext stream is not
needed. VLC can play this stream perfectly fine. I provide the stream
address "rtp://239.5.2.1:6670".

Before I start coding, I'd like to build a prototype pipeline with
gst-launch-0.10. So I used playbin and provided the URI with "udp" instead
of "rtp" and created a diagram from the DOT file, to see what's going on
under the hood. The result is having those problems as described at the
beginning. Playbin creates an udpsrc, a typefinder, a TSDemux and a
multiqueue at the beginning. I recreated this part on my own and added the
Fluendo decoder for video and an audio decoder:

gst-launch-0.10 -v -m \
udpsrc uri="udp://239.5.2.1:6670" ! typefind ! flutsdemux name=demux \
multiqueue name=mq \
demux.video_13ed ! mq.sink0 \
demux.audio_13f2 ! mq.sink1 \
mq.src0 ! fluvadec ! fluvasink \
mq.src1 ! ac3parse ! ffdec_ac3 ! audioconvert ! autoaudiosink

This will display the video with artifacts (especially at moving image
parts), audio is gone after 1 sec or it is extremely scrambled.

Some other forum posts indicate the use of rtpbin, but I could not quite get
my head around its usage. And I've got the feeling, this is the way to go.
Can I use rtpbin with all it's glory with gst-launch? How do I connect the
udpsrc to rtpbin and rtpbin to my decoders? The SSRC and payload type
parameters on its dynamic source pad got me lost. And there's something with
caps and "application/x-rtp" as mimetype I have seen given to udprsc. Do I
need this twice (audio + video)? 

I was hoping someone could give me the famous push in the right direction.

Best regards,
Andreas



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Playing-RTP-stream-has-artifacts-and-sound-problems-tp4666829.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list