RTP を介してビデオ ストリームを送受信するための gst-launch ベースの動作例を見つけました。私はそれらを C に書き直しました。送信者は正常に動作しますが、受信者は動作しません。A と B の 2 台のコンピューターがあります。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] にあります。