[gst-devel] Using gstreamer to transmit H264 file over RTP

Marco Ballesio gibrovacco at gmail.com
Mon May 31 08:40:14 CEST 2010


On Sun, May 30, 2010 at 6:55 PM, Farah Akhtar <farahakhtar_24c at yahoo.com> wrote:
>
> Hi
>
> I am trying to transmit an H264 file over a network using RTP streaming of
> gstreamer. My pipeline is:
>
> Sender:
>  gst-launch-0.10  filesrc location=akiyo_qcif.264 ! h264parse ! rtph264pay
> pt=96 ! udpsink host=127.0.0.1 port=42050 sync=false
>
> Receiver:
> gst-launch-0.10 udpsrc port=42050 ! rtph264depay  ! filesink
> location=/home/mrplus/Desktop/June/test.264

looks like gsth264parse (function gst_h264_parse_update_src_caps)  is
converting the codec configuration data to a "codec-data" field for
the caps. Relying on a signalling/control protocol (very often outside
GStreamer scope) the payloader is not transmitting them again and thus
your decoding side looses essential data. A quick fix is to manually
set the codec configuration data in the "config" field of the
receiving side caps between depayloader and decoder. Being the
codec-data not bound to a particular format, the same value will not
work for all the raw files you may want to test (but it should for the
ones similar to this particular file).

I think it's possible to modify the payloader so that the whole
Gstreamer could become a little more network streaming friendly.. we'd
just need an option which will enable converting the codec data of the
caps into a buffer: we wouldn't then need any signalling/control
protocols to setup a simple streaming test.

Regards




More information about the gstreamer-devel mailing list