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