[gst-devel] RTP Streaming

Itay Kirshenbaum ikirsh at gmail.com
Thu Apr 12 20:03:56 CEST 2007


I'm trying to build a pipeline that does live rtp streaming, and ran into a
few problems.

The pipe on the server side is:
gst-launch v4l2src ! mpeg4_encoder ! queue ! rtpmp4vpay ! udpsink
where mpeg4_encoder is a plugin I wrote that does, well, encoding to mpeg4.

The client pipeline:
gst-launch udpsrc caps="$caps" ! queue ! rtpmp4vdepay ! ffdec_mpeg4 !
xvimagesink sync=false
caps="application/x-rtp, media=(string)video, payload=(int)96,
clock-rate=(int)90000, encoding-name=(string)MP4V-ES,
ssrc=(guint)0000000000, clock-base=(guint)000000000,
seqnum-base=(guint)00000, profile-level-id=(string)1,
is the caps on  the udpsink's sink pad.

For the most part, it works okay, but ffmpeg reports error in decoding the
frames ("header damaged", etc), and the bottom of the image is distorted.

If I write it to a file first, and streams it using:
gst-launch filesrc location="file.mkv" ! matroskademux ! rtpmp4vpay !
udpsink host=othercomputer
it works without any problems.

I figured it's a timing issue (and not a problem with my encoder plugin) so
I've tried adding all sorts of queues along both pipelines, including
rtpjitterbuffer, but to no avail. (actually, the rtpjitterbuffer only seemed
to made the distortion worse).

Any hint to what I'm doing wrong?
Or better yet, what is the right way to do rtp streaming with gstreamer?
Preferably something that doesn't use rtpbin - I'd like to be able to work
with non-gstreamer clients in the future.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20070412/a913bba4/attachment.htm>

More information about the gstreamer-devel mailing list