How to use rtpvorbisdepay with vorbisparse/matroskamux?

Peter Randeu peter.randeu at spintower.eu
Wed Jun 5 03:58:04 PDT 2013


On 2013-06-05 11:59, Tim-Philipp Müller wrote:
> On Wed, 2013-06-05 at 09:30 +0200, Peter Randeu wrote:
>
>> 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 ?

The bytes are magically compressed into nothing? Well... I don't think 
so. The following pipe, using white noise as input data, does not 
produce any output on the fakesink element also:

gst-launch-1.0 audiotestsrc is-live=true wave=white-noise ! vorbisenc ! 
rtpvorbispay ! rtpvorbisdepay ! vorbisparse ! fakesink silent=false -v

If I replace vorbisparse with vorbisdec it works. But I do not want to 
decode the stream, I just want to pass it to a matroskamux and store it 
in a file.

>> 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).

Yes I know and of course I have set the caps (see my example above), but 
that did not help.

So the problem must be somewhere else.

Peter


More information about the gstreamer-devel mailing list