
streamlit-webrtc
几行 Python 让 Streamlit 应用实时处理摄像头音视频
streamlit-webrtc 是一个让 Streamlit 应用直接处理实时音视频流的开源组件。Streamlit 本身擅长快速搭建数据应用,但原生不支持摄像头、麦克风等实时媒体输入,开发者通常需要额外搭建 WebRTC 服务或前端页面。该项目把 WebRTC 的采集、传输与渲染封装成 Streamlit 组件,浏览器端负责获取音视频流并通过 WebRTC 发送到 Python 后端,后端以回调函数形式逐帧处理,再把结果实时回传到前端显示。核心能力包括:摄像头/麦克风实时输入、逐帧图像处理(可接 OpenCV、MediaPipe 等)、双向音视频传输、多路流与自定义处理器。它降低了实时视觉 Demo 的开发门槛,适合快速验证人脸识别、姿态估计、视频滤镜等原型。
项目数据
使用教程
环境要求
- Python 环境(README 未限定具体版本)
- 已安装 pip 包管理工具
- 可访问 PyPI 的网络环境
- 带摄像头/麦克风的现代浏览器(用于实时音视频输入)
安装与启动步骤
-
1安装组件
README 中 Install 章节给出的唯一安装命令,使用 -U 确保升级到最新版本。
pip install -U streamlit-webrtc -
2确认安装结果
查看已安装包信息与版本号,确认 streamlit-webrtc 已正确进入当前 Python 环境。
pip show streamlit-webrtc -
3参考官方示例
README 提供 Showcase 示例仓库与在线 Demo(含目标检测、OpenCV 滤镜、音频处理等),可先照着改。
-
4运行应用
streamlit-webrtc 是 Streamlit 组件,需先写好使用它的 Streamlit 脚本,再用 Streamlit 命令启动。
streamlit run app.py
如何确认成功
执行 streamlit run 后浏览器打开本地页面,摄像头画面经后端处理并实时回传显示即表示组件工作正常。
常见问题
Q:不想本地装,能先看效果吗?
A:可以。README 提供了多个在线 Demo 链接(如 Showcase、实时语音转文字、实时风格迁移),可直接在浏览器打开体验。
Q:还需要自己搭建 WebRTC 服务吗?
A:不需要。该组件已把浏览器的采集、WebRTC 传输和前端渲染封装好,后端以回调函数逐帧处理。
Q:支持音频处理吗?
A:支持。README 的示例列表包含 Audio processing 和实时 Speech-to-Text 应用,可处理麦克风输入。
Q:pip install 报找不到包怎么办?
A:先确认 pip 对应的 Python 环境是否正确,可用 python -m pip install -U streamlit-webrtc 指定解释器安装。
注意事项
- README 仅明确给出 pip 安装命令,应用代码需自行编写或参考官方示例仓库 whitphx/streamlit-webrtc-example。
- 浏览器会弹出摄像头/麦克风授权请求,需允许后才能看到实时画面。
- 实时音视频采集通常要求 HTTPS 或 localhost 环境,普通 http 域名可能无法获取媒体设备。
核心亮点
- 把 WebRTC 采集与回传封装成 Streamlit 组件,无需自建信令和前端页面即可跑通实时视频处理
- 以逐帧回调方式暴露音视频数据,可直接接入 OpenCV、MediaPipe 等现有 Python 视觉库
- 支持摄像头、麦克风、屏幕共享等多种输入源,并能在前后端之间双向传输音视频
不足之处
- 依赖 WebRTC 与浏览器环境,部署到服务器时需处理 HTTPS、STUN/TURN 等网络配置,门槛高于普通 Streamlit 应用
- 实时性能受 Python 逐帧处理和网络延迟限制,高分辨率或高帧率场景下容易卡顿
适用场景
- 快速搭建人脸识别、姿态估计等计算机视觉 Demo
- 做实时视频滤镜或图像处理效果的原型验证
- 远程演示或教学中展示浏览器端音视频与 Python 后端的实时交互
替代项目
streamlit、gradio、aiortc
项目介绍
上一篇:llm-anthropic
下一篇:没有了!
同类项目推荐
ComfyUI_Custom_Nodes_AlekPet
开源
给 ComfyUI 装上语音翻译和姿态检测,工作流更全能
Custom nodes that extend the capabilities of Comfyui
langchain
开源
组装 AI 应用的乐高积木,从想法到上线不换工具
The agent engineering platform.
transformers
开源
全球最大的模型仓库全家桶,想用的模型一把抓
Transformers: the model-definition framework for state-of-the-art machine learning m···
bruno
开源
把 API 测试当代码管理,用 Git 搞定协作与版本追踪
Opensource IDE For Exploring and Testing API's (lightweight alternative to Postman/I···