udpsrc opus caps with rtpbin

Breakthrough scott at breakthrough-tech.com
Thu Feb 18 13:57:42 UTC 2021


This is driving me nuts...

This fails...

gst-launch-1.0 \
	webmmux name=mux streamable=true \
	! filesink location=new.webm \
	rtpbin name=rtpbin \
	udpsrc address=127.0.0.1 port=30000 caps="application/x-rtp, media=video,
clock-rate=90000, encoding-name=VP8, payload=96" ! rtpbin.recv_rtp_sink_0 \
	udpsrc address=127.0.0.1 port=30001 caps="application/x-rtcp" !
rtpbin.recv_rtcp_sink_0 \
    udpsrc address=127.0.0.1 port=30002 caps="application/x-rtp,
media=audio, clock-rate=48000, encoding-params=2, payload=120, channels=2,
encoding-name=OPUS, caps=audio/x-opus" ! rtpbin.recv_rtp_sink_1 \
	udpsrc address=127.0.0.1 port=30003 caps="application/x-rtcp" !
rtpbin.recv_rtcp_sink_1 \
	rtpbin.recv_rtp_src_0_2220_96 \
	! rtpvp8depay \
	! queue \
	! mux.video_0
	rtpbin.recv_rtp_src_1_1110_120 \
	! rtpopusdepay \
	! queue \
    ! mux.audio_0

I always get this error message..

ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc2: Internal data
stream error.

but if I sink udpsrc2 to fakesink, it will work.

I've tried about every caps combination on the OPUS side I can think of,
cannot figure out why this continues to fail.

Here in the sending side..and this works flawlessly...

AUDIO_SSRC0=1110
AUDIO_PT=120

VIDEO_SSRC_BROADCAST_0=2220
VIDEO_PT=96

videoBroadcastRtpPort=30000
videoBroadcastRtcpPort=30001
audioBroadcastRtpPort=30002
audioBroadcastRtcpPort=30003

transportIp=127.0.0.1

gst-launch-1.0 \
  rtpbin name=rtpbin do-retransmission=true \
  rtpfunnel name=video ! rtpbin.send_rtp_sink_0 \
  rtpfunnel name=audio ! rtpbin.send_rtp_sink_4 \
  rtpbin.send_rtp_src_0 ! udpsink name=rtpudpsink0 host=${transportIp}
port=${videoBroadcastRtpPort} sync=true \
  rtpbin.send_rtcp_src_0 ! udpsink name=rtcpudpsink0 host=${transportIp}
port=${videoBroadcastRtcpPort} sync=false async=false \
  rtpbin.send_rtp_src_4 ! udpsink host=${transportIp}
port=${audioBroadcastRtpPort} sync=true \
  rtpbin.send_rtcp_src_4 ! udpsink host=${transportIp}
port=${audioBroadcastRtcpPort} sync=false async=false \
  filesrc location=${MEDIA_FILE} ! qtdemux name=demux \
  demux.video_0 \
  ! tee name=v \
  v. \
  ! queue \
  ! decodebin \
  ! videoconvert \
  ! videoscale \
  ! video/x-raw,width=1280,height=720 \
  ! timeoverlay \
  ! textoverlay text="720p at 4" valignment=top halignment=right \
  ! vp8enc target-bitrate=2000000 deadline=1 cpu-used=4 \
  ! rtpvp8pay pt=${VIDEO_PT} ssrc=${VIDEO_SSRC_BROADCAST_0}
picture-id-mode=2 mtu=1180 \
  ! clocksync sync=true \
  ! video. \
  demux.audio_0 \
  ! tee name=a \
  a. \
  ! queue \
  ! decodebin \
  ! audioresample \
  ! audioconvert \
  ! opusenc bitrate=96000 \
  ! rtpopuspay pt=${AUDIO_PT} ssrc=${AUDIO_SSRC0} mtu=1180 \
  ! clocksync sync=true \
  ! audio.

I can take out everything, it's always the udpsrc failing on the opus audio
over rtp.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list