在这里添加您的描述
项目描述
WhipPyWeb
WhipPyWeb是一个Python工具,允许您使用WebRTC将桌面流式传输到网页浏览器。它设计时考虑了OBS。
安装
您可以使用pipx安装WhipPyWeb
pipx install whippyweb
whippyweb run
或使用Docker
docker run -p 8080:8080 whippyweb
特性
- 从OBS流式传输到(单个)网页浏览器
- OBS和网页浏览器之间的非常低延迟
- 您只需要Python服务器来建立连接,音频和视频直接从OBS流式传输到网页浏览器 - 没有任何Python处理的开销(这可能会很慢)。
工作原理
sequenceDiagram
participant OBS as OBS
participant WPW as WhipPyWeb
participant BRS as Web Browser
BRS->>WPW: Create websocket connection
activate BRS
activate WPW
Note over OBS,BRS: Stream start
OBS->>WPW: WebRTC offer
activate WPW
WPW->>BRS: WebRTC offer (over websocket)
BRS->>BRS: Create WebRTC Answer
BRS->>WPW: WebRTC answer (over websocket)
WPW->>OBS: WebRTC answer
deactivate WPW
OBS->>BRS: Video and audio stream
Note over OBS,BRS: Stream stop
OBS->>WPW: WebRTC close
activate WPW
WPW->>BRS: WebRTC close (over websocket)
BRS->>BRS: Close WebRTC connection
deactivate BRS
WPW->>OBS: OK
deactivate WPW
deactivate WPW
我是如何到这里的
我想改善我举办的活动体验。我想将我的桌面流式传输到网页浏览器,以便与同在房间的观众(带有Chromecast的投影仪)和远程观众(Google Meet共享屏幕)共享屏幕。
尝试了RTMP和HLS,但延迟太大 - 想象一下谈论3-12秒后才出现在屏幕上的幻灯片...
最终在这篇文章中发现了这个Medium文章,它将我引向了Broadcast-box。Broadcast-box反过来,将我引向了OBS2Browser。
因为我想要做一些改动,而且我从未写过一行GO代码,所以我决定编写一个OBS2Browser的Python版本。WhipPyWeb就是结果。
现在我可以从OBS流式传输到网页浏览器,延迟非常低。
flowchart LR
gl(Guest Laptop) --HDMI-to-USB-C--> ml(My Laptop with OBS)
ml --With WhipPyWeb--> br(Web Browser)
br --WiFi--> cc(Chromecast) --HDMI--> pr(Projector)
br --> gm(Google Meet)
使用方法
一旦whippyweb
启动,您就可以在http://localhost:8080/player
访问播放器。在那里您将看到如何配置您的OBS实例的说明。
贡献
欢迎贡献!请打开一个问题或提交一个拉取请求。
许可证
本项目采用MIT许可证 - 请参阅LICENSE文件以获取详细信息。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
whippyweb-1.0.0.tar.gz (296.7 kB 查看哈希值)
构建分发
whippyweb-1.0.0-py3-none-any.whl (296.4 kB 查看哈希值)
关闭
whippyweb-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 122fdb783c846f44d7bdfd9c4f186e4141d8432adec243ece7bbf00b14d853b8 |
|
MD5 | d58afd84f2b833fb9b241f8fadf03c0b |
|
BLAKE2b-256 | 1ffad0768aa9ea64d50af220e1f7f4423106935756f7e812d652bb5b5f0fea54 |
关闭
whippyweb-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 88850e5131c807dbfe507c452879e8b3a488c1d3bf1b784deba11e8c9aad03ae |
|
MD5 | cb93de4c31739dc484ce9ef71ae233cb |
|
BLAKE2b-256 | afaf64301608770311b81f87cc6da11c3c95835a2de21433126d0f0fd04cf249 |