GStreamer RTP全双工视频输入/输出,带有单个rtpbin

时间:2011-08-24 09:02:03

标签: gstreamer duplex

我正在尝试使用rtpbin创建gstreamer管道以双向流式传输网络摄像头(可视电话)。但是,我甚至无法使rtpbin使用下面的简单片段,它只需要网络摄像头源和流,然后其他udpsrc捕获RTP数据包和显示。所有localhost。当拆分为两个管道并单独启动时,它可以工作。但是,这不是。我觉得它有线程的东西,但我被困在这里,因为到目前为止没有队列为我工作。 基本上,我需要的是显示输入视频流并将我的摄像头视频流输出到远程聚会。

gst-launch -v \ gstrtpbin name = rtpbin \ udpsrc caps =“application / x-rtp,media =(string)video,clock-rate =(int)90000,encoding-name =(string)H263”port = 5000! rtpbin。 \ rtpbin。 ! rtph263depay! ffdec_h263! ffmpegcolorspace! xvimagesink \ v4l2src! video / x-raw-yuv,帧率= 30/1,宽度= 320,高度= 240!视频!视频! “video / x-raw-yuv,width = 352,height = 288,framerate = 30/1”! ffenc_h263! rtph263pay! rtpbin。 \ rtpbin。 ! udpsink port = 5000

1 个答案:

答案 0 :(得分:3)

好的,我必须自己回答,在udpsink中添加sync = false async = false就足够了:

gst-launch -v \ gstrtpbin name = rtpbin udpsrc caps =“application / x-rtp,media =(string)video,clock-rate =(int)90000,encoding-name =(string)H263”port = 5000!排队! rtpbin。 \ rtpbin。 ! rtph263depay! ffdec_h263! ffmpegcolorspace! xvimagesink \ v4l2src! video / x-raw-yuv,帧率= 30/1,宽度= 320,高度= 240!视频!视频! “video / x-raw-yuv,width = 352,height = 288,framerate = 30/1”! ffenc_h263! rtph263pay! rtpbin。 \ rtpbin。 ! udpsink port = 5000 sync = false async = false