繁体   English   中英

Gstreamer音频Webrtc转Webrtc流水线

[英]Gstreamer audio Webrtc to Webrtc pipeline

我对 Gstreamer 中的 Webrtc 有疑问。 我对框架工作比较陌生,我不确定我想要实现的目标是否可行。

我有一个 Webrtc 对等体,我希望连接并检索音频 stream。 然后,我希望 pipe 将相同的 stream 连接到另一个 webrtc 对等点。

我可以单独实现这两个方面,即:

  1. 消耗 webrtc stream 并将其下沉。
  2. stream 音频通过 webrtc

这可能吗? 如果是这样,有人知道如何实现这一目标的任何例子吗? 首选 Python,但 C 也可以正常工作。 另外,如果不存在示例,是否有人可以描述一下它是如何工作的。

TIA

Gstreamer 不是适合这项工作的工具,因为它是一个媒体处理库。 在 WebRTC 的 scope 中,Gstreamer 将负责解码媒体 stream 以最终对其进行处理,例如显示视频或播放音频。 它或多或少会以以下方式工作:

# Real Time Protocol socket (WebRTC over the network)
[peer A > rtp (udp) stream > peer B]

# Network layer from peer B to media layer in peer B machine
[peer B > rtp stream (local pipe/udp) > Gstreamer pipeline]

# GStreamer pipeline
[src (e.g. udpsrc, appsrc) > rtpdepay (e.g. rtph264depay, rtpopusdepay) > rtp payload filter > decode (e.g. avdec_h264, opusdec) > ... > sink (e.g. autovideosink, autoaudiosink)]

您尝试做的只是绕过数据,因此由于您不打算对数据进行任何形式的处理,因此您的工作流程并不真正需要 Gstreamer。

# Real Time Protocol socket (WebRTC over the network)
[peer A > rtp (udp) stream > peer B.1]

# Bypass
[peer B.1 > rtp stream (local pipe/udp) > peer B.2]

# Real Time Protocol socket (WebRTC over the network)
[peer B.2 > rtp (udp) stream > peer C]

也就是说,看起来很像您在中继对等连接,这就是 TURN 服务器的用途。 也许看看它也是一项工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM