开源相机的Gstreamer webrtc管道问题

问题描述

大家好,

我正在尝试使用 WebRTC 实现低延迟视频流。我用 C++(websocket 等)编写代码,仅使用用 Python 编写的 webrtc 信号服务器(ref1)。 当我使用网络摄像头时,将视频流式传输到客户端没有任何问题,但是,我尝试使用 FLIR 摄像头,在实施过程中遇到了很多问题。 我心中有几个问题需要澄清。希望大家给点建议。

  • 是否有任何特定的数据类型我应该将管道传输到 webrtc 作为源?我只是想知道我应该在 webrtc 中发送什么样的数据作为源?
  • 我尝试发送图像以检查我的 WebRTC 实现是否正常工作(网络摄像头除外),它给我错误“管道为空”。什么会导致这个问题?这实际上是为什么我想知道数据类型等的主要问题,以了解我应该将什么输入到 webrtc。

ref1:https://github.com/centricular/gstwebrtc-demos/tree/master/signalling

附注:

  • 网络中的客户端和 Jetson Nano
  • 信号服务器正在 Jetson Nano 上运行

解决方法

通过运行 gst-inspect-1.0 webrtcbin,您会发现此插件的源和接收器功能仅为 application/x-rtp

因此,如果您希望 webrtcbin 用作源代码板,则需要将其通过管道传输到某种 RTP 卸载程序,例如 rtph264depay 用于视频,rtpopusdepay 用于音频。