【发布时间】:2014-07-12 23:09:10
【问题描述】:
我想用 python/twisted 制作一个流媒体服务器,它接收 WebRTC 视频流,然后对其应用一些 OpenCV 算法。
但是我找不到 WebRTC 的 python 模块。如何使用 python/twisted 发送和接收 WebRTC 视频流?
谢谢!
【问题讨论】:
标签: python opencv twisted webrtc
我想用 python/twisted 制作一个流媒体服务器,它接收 WebRTC 视频流,然后对其应用一些 OpenCV 算法。
但是我找不到 WebRTC 的 python 模块。如何使用 python/twisted 发送和接收 WebRTC 视频流?
谢谢!
【问题讨论】:
标签: python opencv twisted webrtc
我已经开始整理创建 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 的服务器的音频和视频流。
【讨论】:
您可以做的是连续截屏并将它们推送到 websocket 并让您的扭曲服务器在每个进入时对其进行检查。
我修改了一些常用的记录器,我的版本采用 Jpeg 图像并将它们推送到 websocket。随意使用和修改您想要的方式,使其适合您的需求。 Source code here。我使用的示例是下推到用 C 构建的 libwebsocket 服务器,但可以使用相同的 javascript 发送到任何 websocket 服务器。
【讨论】:
MediaRecorder而不是截图,因为它在带宽方面更有效,因为流被正确编码,而截图解决方案单独发送每个图像。
我遇到了类似的问题,最终创建了一个服务器,该服务器启动了一个无头 chrome 实例,我可以从中访问 WebRTC 流,使用 MediaRecorder 记录块,最后通过 WebSocket 转发这些块。
我喜欢基于 python 的解决方案,因此我不需要中间服务器启动无头 chrome 实例,但一直找不到。
我一直在使用 Node.js 和 Puppeteer,但可以从你的 python 服务器启动浏览器实例,然后通过普通的旧套接字或其他任何你喜欢的东西发回解码的数据。
【讨论】: