我找到了一个基于 gst-launch 的工作示例,用于通过 RTP 发送和接收视频流。我已将它们重写为 C。发件人工作正常,但收件人没有。我有两台电脑,A 和 B。当流式传输 B->A 时,它工作正常,但是当 A->B 时,B 没有显示流。流即将到达 B(使用 wireshark 检查)。你能看一下代码,看看有没有我没有发现的错误吗?
这是 gst-launch 应用程序:
VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998"
gst-launch-0.10 -v gstrtpbin name=rtpbin latency=100 \
udpsrc caps=$VIDEO_CAPS port=5000 \
! rtpbin.recv_rtp_sink_0 rtpbin. \
! rtph263pdepay \
! ffdec_h263 \
! ffmpegcolorspace \
! autovideosink
udpsrc port=5001 \
! rtpbin.recv_rtcp_sink_0 rtpbin.send_rtcp_src_0 \
! udpsink host=$1 port=5005 sync=false async=false
相应的 C 代码在 [1] 上,因为它很长。