Jupyter远程服务器使用本地摄像头、WebRTC实现聊天室、实时视频处理

您所在的位置:网站首页 远程使用电脑摄像头 Jupyter远程服务器使用本地摄像头、WebRTC实现聊天室、实时视频处理

Jupyter远程服务器使用本地摄像头、WebRTC实现聊天室、实时视频处理

2024-03-11 04:20| 来源: 网络整理| 查看: 265

Jupyter远程使用摄像头、WebRTC聊天室、实时视频处理 前言

使用ipywebrtc组件,获取本地视频流并传输到远程Jupyter服务器,由服务器处理过视频后再回传到本地,最后由ipywidgets.Image组件展示。

效果体验

建议使用Chrome浏览器

效果展示 前往官方示例并启用摄像头,即可体现实际效果。 如果你想更深刻地体验示范代码,可以去Binder打开任意一个.ipynb文件,一步步运行即可。

准备工作

需要先安装ipywebrtc组件,有两种方法,简单的办法是直接通过pip安装(需要jupyter版本在5.3及以上):

pip install ipywebrtc

第二种是通过github安装最新预览版:

git clone https://github.com/maartenbreddels/ipywebrtc cd ipywebrtc pip install -e . jupyter nbextension install --py --symlink --sys-prefix ipywebrtc jupyter nbextension enable --py --sys-prefix ipywebrtc

如果你使用的是jupyter lab,那么只需要在终端运行以下语句:

jupyter labextension install jupyter-webrtc 使用方法

完成准备工作后,首先需要在Jupyter文件中引用ipywebrtc库,然后创建一个流,可用的流请见下文组件介绍部分,这里以CameraStream为例,使用本地前置摄像头:

from ipywebrtc import CameraStream camera = CameraStream.facing_user(audio=False) camera

不出意外的话,Chrome浏览器会弹窗询问是否允许网页使用摄像头,选择允许后,就可在输出区看到摄像头拍到的视频了。

如果Chrome不弹出提示,而是显示Error creating view for media stream: Only secure origins are allowed,则表示浏览器认为当前网站不安全(没有使用https连接),因此禁用了摄像头。最简单的解决方法是在Chrome快捷方式的“目标”一栏最后加上--unsafely-treat-insecure-origin-as-secure="http://host_ip:port"并重启即可(把host_ip:port修改为自己的服务器地址)

但这时候,视频还只是在本地显示,并没有上传到Python内核所在的服务器中(假设你使用的是远程服务器),因此也就没办法在Python上下文中获取视频内容。 所以下一步,我们需要创建一个ImageRecorder来记录流媒体,并以图片的形式发送给服务器上的Python内核:

from ipywebrtc import ImageRecorder image_recorder = ImageRecorder(stream=camera) image_recorder

运行这段代码,会显示ImageRecorder组件,点击组件上的相机图标,即可抓拍来自stream的画面。 ImageRecorder 之后,再通过访问image_recorder.image.value并转换成Pillow格式,即可在Python内获取该图片:

import PIL.Image import io im = PIL.Image.open(


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3