This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Unable to set caps for h264 decoder pipeline on RTP client

Hi,

I'm trying to use DDOMPE's branch for encoding and decoding media over RTP.

The following are my pipelines :

RTP Server :

gst-launch-0.10  videotestsrc is-live=true ! x264enc  ! rtpmp4vpay ! udpsink host=192.168.1.5 port=4444 -v

This gives the following caps :

GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z01AFZJSgoP2AiAAAAMALuaygAHixbLA\\,aOvssg\\=\\=\", payload=(int)96, ssrc=(uint)1411858050, clock-base=(uint)69888463, seqnum-base=(uint)13653

Now, we need to set this caps on the client side as follows :

RTP Client :

gst-launch-0.10 udpsrc port=4444 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z01AFZJSgoP2AiAAAAMALuaygAHixbLA\\,aOvssg\\=\\=
\", payload=(int)96, ssrc=(uint)1411858050, clock-base=(uint)69888463, seqnum-base=(uint)13653' ! rtph264depay ! dmaidec_h264 ! fakesink -v

However, I get the following error :

WARNING: erroneous pipeline: could not set property "caps" in element "udpsrc0" to "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z01AFZJSgoP2AiAAAAMALuaygAHixbLA\,aOvssg\=\=", payload=(int)96, ssrc=(uint)1411858050, clock-base=(uint)69888463, seqnum-base=(uint)13653"

 

I tried alternating between ' quotes and " quotes as per suggestions given on the IRC channel, but that doesn't seem to work

  • Hi,

    I'm facing the same problem at the moment and I traced it down to the equal symbols (=) in the sprop-param-sets.

    Did you solve this in the mean time? If so, I'd like to know how.

     

    Thanks

    Jasper

  • any updates? I met the same problem.

  • Hi,

    Yes, I managed to make it work by changing the caps. Basically, all characters that were already double escaped, I added 2 more backslashes. What was escaped a single time, I left as it was. Now, my command looks like this:

    H264CAPS="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcVio6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQCgC3I\\\\,aO48sA\\\\=\\\\=\", payload=(int)96, ssrc=(uint)2683416038, clock-base=(uint)2027805946, seqnum-base=(uint)25664"

    gst-launch-0.10 -v udpsrc port=5000 caps="${H264CAPS}"  ! rtph264depay ! ffdec_h264 ! fpsdisplaysink

    Hope this helps!

  • I'm having the same problems, but adding \\ to the double-escaped characters trick does not work for me.  Any other thoughts on this?

    My command looks like this:

    H264CAPS="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcVio6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQFweyAAA\\\\=\\\\=\\\\,aO48sAA\\\\=\", payload=(int)96, ssrc=(uint)2451049548, clock-base=(uint)4181702244, seqnum-base=(uint)37470"

    Notice the 4 instances of 4 backslashes (may not be visible in browser - try to "reply" to see original text)

    When I try to run the pipeline:

     gst-launch-0.10 -v udpsrc port=5000 caps="${H264CAPS}" ! rtph264depay ! ffdec_h264 ! fpsdisplaysink

    I get the following error:

    WARNING: erroneous pipeline: could not set property "caps" in element "udpsrc0" to "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcVio6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQFweyAAA\=\=\,aO48sAA\=", payload=(int)96, ssrc=(uint)2451049548, clock-base=(uint)4181702244, seqnum-base=(uint)37470"

    Note, all of my 4x backslashes are now single backslashes.  I've tried various numbers of backslashes for the double-escaped characters, but nothing seems to work.

    Has anyone else solved this problem?

    Doug Linhardt

    (edits - fixed spelling and spacing)

  • Hi,Linhardt

     I have the same problem ,it is ok ?

    please give me some advince! Thank you very much!