Jupyter远程服务器使用本地摄像头、WebRTC实现聊天室、实时视频处理 |
您所在的位置:网站首页 › 远程使用电脑摄像头 › Jupyter远程服务器使用本地摄像头、WebRTC实现聊天室、实时视频处理 |
Jupyter远程使用摄像头、WebRTC聊天室、实时视频处理
前言
使用ipywebrtc组件,获取本地视频流并传输到远程Jupyter服务器,由服务器处理过视频后再回传到本地,最后由ipywidgets.Image组件展示。 效果体验建议使用Chrome浏览器
需要先安装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的画面。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |