How to use rtpvorbisdepay with vorbisparse/matroskamux?

Tim-Philipp Müller t.i.m at zen.co.uk
Wed Jun 5 02:59:57 PDT 2013


On Wed, 2013-06-05 at 09:30 +0200, Peter Randeu wrote:

Hi,
> 
> Using gstreamer-1.0, I am trying to receive a Vorbis encoded, RTP payed 
> audio stream, pass it to a Matroska muxer and write it to a file. The 
> gst-launch pipe I am using for testing looks like this:
> 
> gst-launch-1.0 audiotestsrc is-live=true ! vorbisenc ! rtpvorbispay ! 
> rtpvorbisdepay ! matroskamux ! fakesink silent=false -v
> 
> The problem is that the fakesink produces no output.

Maybe because sine waves tend to compress rather well and the packets
are only a few bytes each ?


> Looking at the debug output of gst-launch I have noticed that the caps 
> created by rtpvorbisdepay only contain "audio/x-vorbis", other 
> properties like "rate" or "streamheader" are not present. Using a 
> vorbisparse element does not help, nor does setting the caps explicitly 
> between rtpvorbisdepay and matroskamux or rtpvorbispay and rtpvorbisdepay:
> 
> gst-launch-1.0 audiotestsrc is-live=true ! vorbisenc ! rtpvorbispay ! 
> $RTPCAPS ! rtpvorbisdepay ! $VORBISCAPS ! vorbisparse ! matroskamux ! 
> fakesink silent=false -v
> 
> where $VORBISCAPS are the caps of the vorbisenc src-pad and $RTPCAPS are 
> the caps of the rtpvorbispay src-pad.
> 
> Do I miss something to get the above pipeline working?

You need to pass the full RTP caps including the header bits to udpsrc
on the receiver side. It can't pick up things 'in the middle' without
those headers for vorbis. (If you use an RTSP server that setup info is
passed in the SDP).

Cheers
 -Tim



More information about the gstreamer-devel mailing list