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

GStreamer RTP全双工视频输入/输出,带单rtpbin,gstreamer,duplex,Gstreamer,Duplex,我正在尝试使用rtpbin创建gstreamer管道,以双向流式传输网络摄像头(可视电话)。然而,我甚至不能让rtpbin使用下面这样的简单代码片段,它只提取网络摄像头的源代码和流,然后其他udpsrc捕获RTP数据包并显示。所有本地主机。当分成两条管道并分别下水时,它可以工作。然而,这并非如此。我觉得它与线程有关,但是我在这里被绊住了,因为到目前为止还没有队列为我工作。 基本上,我需要的是显示输入视频流并将我的网络摄像头视频流输出到远程方 商品及服务税推出-v\ gstrtpbin name=

我正在尝试使用rtpbin创建gstreamer管道,以双向流式传输网络摄像头(可视电话)。然而,我甚至不能让rtpbin使用下面这样的简单代码片段,它只提取网络摄像头的源代码和流,然后其他udpsrc捕获RTP数据包并显示。所有本地主机。当分成两条管道并分别下水时,它可以工作。然而,这并非如此。我觉得它与线程有关,但是我在这里被绊住了,因为到目前为止还没有队列为我工作。 基本上,我需要的是显示输入视频流并将我的网络摄像头视频流输出到远程方

商品及服务税推出-v\ gstrtpbin name=rtpbin\ udpsrc caps=“应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(int)90000,编码名称=(字符串)H263”端口=5000!rtpbin\ rtpbin!rtph263depay!ffdec_h263!ffmpegcolorspace!xvimagesink\ v4l2src!视频/x-raw-yuv,帧速率=30/1,宽度=320,高度=240!电子秤!视频速率!“视频/x-raw-yuv,宽度=352,高度=288,帧速率=30/1”!ffenc_h263!支付!rtpbin\
rtpbin!udpsink端口=5000

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

商品及服务税推出-v\ gstrtpbin name=rtpbin udpsrc caps=“应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(int)90000,编码名称=(字符串)H263”端口=5000!队列rtpbin\ rtpbin!rtph263depay!ffdec_h263!ffmpegcolorspace!xvimagesink\ v4l2src!视频/x-raw-yuv,帧速率=30/1,宽度=320,高度=240!电子秤!视频速率!“视频/x-raw-yuv,宽度=352,高度=288,帧速率=30/1”!ffenc_h263!支付!rtpbin\
rtpbin!udpsink端口=5000sync=false async=false好的,我必须回答我自己,将sync=false async=false添加到udpsink就足够了:

商品及服务税推出-v\ gstrtpbin name=rtpbin udpsrc caps=“应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(int)90000,编码名称=(字符串)H263”端口=5000!队列rtpbin\ rtpbin!rtph263depay!ffdec_h263!ffmpegcolorspace!xvimagesink\ v4l2src!视频/x-raw-yuv,帧速率=30/1,宽度=320,高度=240!电子秤!视频速率!“视频/x-raw-yuv,宽度=352,高度=288,帧速率=30/1”!ffenc_h263!支付!rtpbin\ rtpbin!udpsink端口=5000sync=false async=false

如文档所示:“当元素设置为播放时,GstBaseSink将使用GstBaseSinkClass返回的时间在时钟上同步。get_times()。如果此函数为开始时间返回GST_CLOCK_TIME_NONE,则不会执行同步。可通过将对象“sync”属性设置为FALSE来完全禁用同步。“我不知道在同步和异步不到位时它希望同步到什么。根据文档:当元素设置为播放时,GstBaseSink将使用从GstBaseSinkClass.get_times()返回的时间在时钟上同步。如果此函数为开始时间返回GST\U CLOCK\U TIME\U NONE,则不会进行同步。通过将对象“sync”属性设置为FALSE,可以完全禁用同步。“我不知道当sync和async不存在时,它想要同步到什么。