【问题标题】:WebRTC with pythonWebRTC 与 python
【发布时间】:2014-07-12 23:09:10
【问题描述】:

我想用 python/twisted 制作一个流媒体服务器,它接收 WebRTC 视频流,然后对其应用一些 OpenCV 算法。

但是我找不到 WebRTC 的 python 模块。如何使用 python/twisted 发送和接收 WebRTC 视频流?

谢谢!

【问题讨论】:

    标签: python opencv twisted webrtc


    【解决方案1】:

    我已经开始整理创建 Python WebRTC 端点所需的基本块。

    一个是基于异步的交互式连接建立模块:

    https://github.com/jlaine/aioice

    另一个是 libsrtp 的 Python 绑定:

    https://github.com/jlaine/pylibsrtp

    我们还需要 OpenSSL 绑定中的 SRTP 密钥支持:

    https://github.com/pyca/cryptography/pull/4099

    在此之上,我们可以构建一个基于 asyncio 的 WebRTC 实现:

    https://github.com/jlaine/aiortc

    我已经能够让 Chrome 和 Firefox 建立到基于 Python 的服务器的音频和视频流。

    【讨论】:

      【解决方案2】:

      您可以做的是连续截屏并将它们推送到 websocket 并让您的扭曲服务器在每个进入时对其进行检查。

      我修改了一些常用的记录器,我的版本采用 Jpeg 图像并将它们推送到 websocket。随意使用和修改您想要的方式,使其适合您的需求。 Source code here。我使用的示例是下推到用 C 构建的 libwebsocket 服务器,但可以使用相同的 javascript 发送到任何 websocket 服务器。

      【讨论】:

      • 感谢您的回答!那么目前没有办法在python中直接接收webrtc vp8视频流并解码?
      • 您可以使用lynckia.com/licode,因为他们有一个本地 C++ WebRTC MCU,您可以通过 UDP 将流转发到您的服务器。
      • 谢谢,我会调查的。
      • 我会使用MediaRecorder而不是截图,因为它在带宽方面更有效,因为流被正确编码,而截图解决方案单独发送每个图像。
      【解决方案3】:

      我遇到了类似的问题,最终创建了一个服务器,该服务器启动了一个无头 chrome 实例,我可以从中访问 WebRTC 流,使用 MediaRecorder 记录块,最后通过 WebSocket 转发这些块。

      我喜欢基于 python 的解决方案,因此我不需要中间服务器启动无头 chrome 实例,但一直找不到。

      我一直在使用 Node.js 和 Puppeteer,但可以从你的 python 服务器启动浏览器实例,然后通过普通的旧套接字或其他任何你喜欢的东西发回解码的数据。

      【讨论】:

      • 这太麻烦了!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      相关资源
      最近更新 更多