0

我正在尝试从 DM365 Board 获取 rtp 流。

使用 VLC 没有问题。流可以用 sdp 文件打开。它是使用 TI 特定的 h264 编码器 (TIVidenc1 codecName=h264enc) 和声音编码的摄像机视图。我正在开发一个应用程序,我想使用 gstreamer。我构建了一个 gstreamer 管道以在我的应用程序中嵌入稍后的视频。但我无法使用此管道打开流。 在 ubuntu 客户端管道上

gst-launch -v gstrtpbin name=rtpbin latency=200 \
udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" port=5000 ! rtpbin.recv_rtp_sink_0 \
rtpbin. ! rtph264depay ! decodebin ! xvimagesink \
udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 \
rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=192.168.231.14 sync=false async=false \
udpsrc caps="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA" port=5002 ! rtpbin.recv_rtp_sink_1 \
rtpbin. ! rtppcmadepay ! decodebin ! audioconvert ! audioresample ! alsasink \
udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1 \
rtpbin.send_rtcp_src_1 ! udpsink port=5007 host=192.168.231.14 sync=false async=false

发件人是 DM365 管道如下:

发件人

gst-launch-0.10     gstrtpbin name=rtpbin 

v4l2src always-copy=FALSE input-src=composite ! queue ! 
TIVidResize contiguousInputFrame=FALSE ! 'video/x-raw-yuv,width=608,height=384,format=(fourcc)NV12,bitRate=48100' ! 
TIVidenc1 codecName=h264enc engineName=encode contiguousInputFrame=TRUE ! rtph264pay ! queue ! 
rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink port=5000 host=192.168.231.255 ts-offset=0 name=vrtpsink rtpbin.send_rtcp_src_0 ! udpsink port=5001 host=192.168.231.255 sync=false async=false name=vrtcpsink udpsrc port=5005 

name=vrtpsrc ! 
rtpbin.recv_rtcp_sink_0 alsasrc ! queue ! 
alawenc ! rtppcmapay ! queue ! 

rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! udpsink port=5002 host=192.168.231.255 ts-offset=0 name=artpsink rtpbin.send_rtcp_src_1 ! udpsink port=5003 host=192.168.231.255 sync=false async=false name=artcpsink udpsrc port=5007 name=artpsrc ! rtpbin.recv_rtcp_sink_1";
4

1 回答 1

0

我解决了需要将发送方的 udp caps 信息告诉客户端的 updsrc。当您生成用于发送视频的管道时,您会从终端上的发送方 udp 元素获取大写信息。只需将其添加到您的 udpsrc caps="...." 即可。

于 2012-07-27T06:44:54.953 回答