我正在尝试使用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
答案 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