<div dir="ltr"><div>Hi</div><div><br></div><div>I'm trying to use GStreamer to perform H264/VP8 transcoding in an existing RTP proxy. I am first attempting to prototype the pipelines I think I will need with gst-launch.</div>
<div><br></div><div>Performing a straight-forward transcoding using a single pipeline works:</div><div><br></div><div>gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=240,framerate=30/1 ! x264enc ! avdec_h264 ! vp8enc ! vp8dec ! videoconvert ! xvimagesink</div>
<div><br></div><div>However, when I try to use RTP, the transcoding fails because the VP8 encoder fails to initialise:</div><div><br></div><div>ERROR: from element /GstPipeline:pipeline0/GstVP8Enc:vp8enc0: Failed to initialize encoder</div>
<div>Additional debug info:</div><div>gstvp8enc.c(1543): gst_vp8_enc_set_format (): /GstPipeline:pipeline0/GstVP8Enc:vp8enc0:</div><div>invalid parameter</div><div><br></div><div style>It is not clear which parameter the message "invalid parameter" is referring to as I do not explicitly set any parameters on the vp8enc element. </div>
<div style><br></div><div>I can't figure out why this doesn't work with my RTP pipelines. Any help that can be offered would be much appreciated...</div><div><br></div><div>My environment:</div><div>- Ubuntu 12.04</div>
<div>- GStreamer 1.0.5 obtained from ppa:gstreamer-developers/ppa</div><div><br></div><div>The GStreamer RTP prototype in which the error is occurring consists of three scripts:</div><div><br></div><div>* sender.sh - Generates video from videotestsrc element, encodes as H264, sends as RTP to transcoder.</div>
<div><br></div><div>* transcoder.sh - Simulates the transcoding that will be performed by the RTP Proxy. It receives the RTP from sender, decodes the H264, encodes into VP8 and sends it to the receiver via RTP.</div><div>
<br></div><div>* receiver.sh - This receives the RTP video, decodes the VP8 and plays the video in a window.</div><div><br></div><div>These three scripts are executed on the same machine and launched in sequence by another script, run.sh, which redirects stdout/stderr to corresponding .out files.</div>
<div><br></div><div>The run.sh Script</div><div>~~~~~~~~~~~~~~~~~</div><div><br></div><div># delete old output files</div><div>rm -f *.out</div><div><br></div><div># start sender and wait for initialisation (so transcoder can grab output rtp caps)</div>
<div>echo Starting sender</div><div>./sender.sh &> sender.out &</div><div>sleep 5s</div><div><br></div><div># start transcoder and wait for initialisation (so receiver can grab output rtp caps)</div><div>echo Starting transcoder</div>
<div>./transcoder.sh &> transcoder.out &</div><div>sleep 5s</div><div><br></div><div># start the receiver</div><div>echo Starting receiver</div><div>./receiver.sh &> receiver.out &</div><div><br></div>
<div># kill gst-launch processes when finished</div><div>read -p "Press RETURN to stop..."</div><div>pkill gst-launch</div><div>echo Finished.</div><div><br></div><div>The sender.sh Script</div><div>~~~~~~~~~~~~~~~~~~~~</div>
<div><br></div><div>gst-launch-1.0 -v rtpbin name=rtpbin_sender \</div><div>videotestsrc ! video/x-raw,width=320,height=240,framerate=30/1 ! videoconvert ! x264enc tune=zerolatency speed-preset=ultrafast ! rtph264pay ! rtpbin_sender.send_rtp_sink_0 \</div>
<div>rtpbin_sender.send_rtcp_src_0 ! udpsink name=udpsink_rtcp port=5001 host=127.0.0.1 sync=false async=false \</div><div>rtpbin_sender.send_rtp_src_0 ! udpsink name=udpsink_rtp port=5000 host=127.0.0.1 ts-offset=0</div>
<div><br></div><div>The transcoder.sh Script</div><div>~~~~~~~~~~~~~~~~~~~~~~~~</div><div><br></div><div># grab the rtp caps of the rtp source pad of the sender script</div><div>senderRtpCaps=`egrep -m 1 "rtpbin_sender.GstGhostPad:send_rtp_src_0.GstProxyPad.*" sender.out | egrep -o "application/x-rtp.*"`</div>
<div>echo Using sender RTP CAPS: $senderRtpCaps</div><div><br></div><div>gst-launch-1.0 -v rtpbin name=rtpbin_receiver rtpbin name=rtpbin_sender \</div><div>udpsrc name=udpsrc_rtcp port=5001 caps = "application/x-rtcp" ! rtpbin_receiver.recv_rtcp_sink_0 \</div>
<div>udpsrc name=udpsrc_rtp port=5000 caps = "${senderRtpCaps}" ! rtpbin_receiver.recv_rtp_sink_0 \</div><div>rtpbin_receiver. ! rtph264depay ! avdec_h264 ! vp8enc ! rtpvp8pay ! rtpbin_sender.send_rtp_sink_0 \</div>
<div>rtpbin_sender.send_rtcp_src_0 ! udpsink name=udpsink_rtcp port=5101 host=127.0.0.1 sync=false async=false \</div><div>rtpbin_sender.send_rtp_src_0 ! udpsink name=udpsink_rtp port=5100 host=127.0.0.1 ts-offset=0</div>
<div><br></div><div>The receiver.sh Script</div><div>~~~~~~~~~~~~~~~~~~~~~~</div><div><br></div><div># grab the rtp caps of the rtp source pad of the transcoder script</div><div>transcoderRtpCaps=`egrep -m 1 "rtpbin_sender.GstGhostPad:send_rtp_src_0: caps =.*" transcoder.out | egrep -o "application/x-rtp.*"`</div>
<div>echo Using transcoder RTP CAPS: $transcoderRtpCaps</div><div><br></div><div>gst-launch-1.0 rtpbin name=rtpbin_receiver \</div><div>udpsrc name=udpsrc_rtcp port=5101 caps = "application/x-rtcp" ! rtpbin_receiver.recv_rtcp_sink_0 \</div>
<div>udpsrc name=udpsrc_rtp port=5100 caps = "${transcoderRtpCaps}" ! rtpbin_receiver.recv_rtp_sink_0 \</div><div>rtpbin_receiver. ! rtpvp8depay ! vp8dec ! xvimagesink</div><div><br></div><div>The sender.out file output by sender.sh:</div>
<div><br></div><div>Setting pipeline to PAUSED ...</div><div>Pipeline is PREROLLING ...</div><div>/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1</div>
<div>/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1</div><div>/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1</div>
<div>/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1</div><div>/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1</div>
<div>/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1</div><div>Redistribute latency...</div><div>/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = video/x-h264, codec_data=(buffer)0142c015ffe100166742c015da0507ec0440000003004000000f23c58ba801000468ce3c80, stream-format=(string)avc, alignment=(string)au, level=(string)2.1, profile=(string)constrained-baseline, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1</div>
<div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_sink_0.GstProxyPad:proxypad0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender/GstRtpSession:rtpsession0.GstPad:send_rtp_src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_src_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstUDPSink:udpsink_rtp.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_src_0.GstProxyPad:proxypad1: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender/GstRtpSession:rtpsession0.GstPad:send_rtp_sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_sink_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, codec_data=(buffer)0142c015ffe100166742c015da0507ec0440000003004000000f23c58ba801000468ce3c80, stream-format=(string)avc, alignment=(string)au, level=(string)2.1, profile=(string)constrained-baseline, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1</div>
<div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 551299522</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 56555</div><div>Pipeline is PREROLLED ...</div><div>Setting pipeline to PLAYING ...</div>
<div>New clock: GstSystemClock</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender/GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtcp_src_0: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstUDPSink:udpsink_rtcp.GstPad:sink: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad2: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = video/x-h264, codec_data=(buffer)0142c015ffe100166742c015da0507ec0440000003004000000f23c58ba801000468ce3c80, stream-format=(string)avc, alignment=(string)au, level=(string)2.1, profile=(string)constrained-baseline, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1</div>
<div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_sink_0.GstProxyPad:proxypad0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender/GstRtpSession:rtpsession0.GstPad:send_rtp_src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_src_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstUDPSink:udpsink_rtp.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_src_0.GstProxyPad:proxypad1: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender/GstRtpSession:rtpsession0.GstPad:send_rtp_sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtp_sink_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, codec_data=(buffer)0142c015ffe100166742c015da0507ec0440000003004000000f23c58ba801000468ce3c80, stream-format=(string)avc, alignment=(string)au, level=(string)2.1, profile=(string)constrained-baseline, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1</div>
<div>./sender.sh: line 4: 4157 Terminated gst-launch-1.0 -v rtpbin name=rtpbin_sender videotestsrc ! video/x-raw,width=320,height=240,framerate=30/1 ! videoconvert ! x264enc tune=zerolatency speed-preset=ultrafast ! rtph264pay ! rtpbin_sender.send_rtp_sink_0 rtpbin_sender.send_rtcp_src_0 ! udpsink name=udpsink_rtcp port=5001 host=127.0.0.1 sync=false async=false rtpbin_sender.send_rtp_src_0 ! udpsink name=udpsink_rtp port=5000 host=127.0.0.1 ts-offset=0</div>
<div><br></div><div>The transcoder.out file output by transcoder.sh (contains the "Failed to initialize encoder" error):</div><div><br></div><div>Using sender RTP CAPS: application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>Setting pipeline to PAUSED ...</div><div>Pipeline is live and does not need PREROLL ...</div><div>/GstPipeline:pipeline0/GstUDPSrc:udpsrc_rtcp.GstPad:src: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtcp_sink_0.GstProxyPad:proxypad0: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSession:rtpsession0.GstPad:sync_src: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSession:rtpsession0.GstPad:recv_rtcp_sink: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtcp_sink_0: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstUDPSrc:udpsrc_rtp.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad1: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSession:rtpsession0.GstPad:recv_rtp_src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>Setting pipeline to PLAYING ...</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>New clock: GstSystemClock</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender/GstRtpSession:rtpsession1.GstPad:send_rtcp_src: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtcp_src_0: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstUDPSink:udpsink_rtcp.GstPad:sink: caps = application/x-rtcp</div><div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_sender.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad4: caps = application/x-rtcp</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpPtDemux:rtpptdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstUDPSrc:udpsrc_rtp.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad1: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSession:rtpsession0.GstPad:recv_rtp_src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:src_444445276: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpPtDemux:rtpptdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtp_src_0_444445276_96: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0142c015ffe100166742c015da0507ec0440000003004000000f23c58ba801000468ce3c80</div>
<div>/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0142c015ffe100166742c015da0507ec0440000003004000000f23c58ba801000468ce3c80</div>
<div>/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/GstRtpBin:rtpbin_receiver.GstGhostPad:recv_rtp_src_0_444445276_96.GstProxyPad:proxypad5: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"Z0LAFdoFB+wEQAAAAwBAAAAPI8WLqA\=\=\,aM48gA\=\=", ssrc=(uint)444445276, payload=(int)96, timestamp-offset=(uint)551299522, seqnum-offset=(uint)56555</div>
<div>/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1</div>
<div>/GstPipeline:pipeline0/GstVP8Enc:vp8enc0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1</div>
<div>/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1</div>
<div>/GstPipeline:pipeline0/GstVP8Enc:vp8enc0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1</div>
<div>ERROR: from element /GstPipeline:pipeline0/GstVP8Enc:vp8enc0: Failed to initialize encoder</div><div>Additional debug info:</div><div>gstvp8enc.c(1543): gst_vp8_enc_set_format (): /GstPipeline:pipeline0/GstVP8Enc:vp8enc0:</div>
<div>invalid parameter</div><div>Execution ended after 227794877 ns.</div><div>Setting pipeline to PAUSED ...</div><div>Setting pipeline to READY ...</div><div>Setting pipeline to NULL ...</div><div>Freeing pipeline ...</div>
<div><br></div><div>The receiver.out file output by receiver.sh (fails due to transcoder.sh failure):</div><div><br></div><div>Using transcoder RTP CAPS:</div><div>WARNING: erroneous pipeline: could not set property "caps" in element "udpsrc_rtp" to "!"</div>
<div><br></div><div>Thanks,</div><div>Tony.</div><div><br></div></div>