Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maartenbreddels/ipywebrtc
WebRTC for Jupyter notebook/lab
https://github.com/maartenbreddels/ipywebrtc
ipython ipython-notebook jupyter jupyter-notebook python video-streaming webcam webrtc
Last synced: about 2 months ago
JSON representation
WebRTC for Jupyter notebook/lab
- Host: GitHub
- URL: https://github.com/maartenbreddels/ipywebrtc
- Owner: maartenbreddels
- License: mit
- Created: 2017-08-10T18:07:51.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-02-20T10:19:50.000Z (4 months ago)
- Last Synced: 2024-04-15T15:13:24.819Z (2 months ago)
- Topics: ipython, ipython-notebook, jupyter, jupyter-notebook, python, video-streaming, webcam, webrtc
- Language: JavaScript
- Size: 10.8 MB
- Stars: 233
- Watchers: 11
- Forks: 39
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-jupyter - ipywebrtc - Video/Audio streaming in Jupyter. <!--lint disable double-link--> (Visualization)
- -awesome-jupyter - ipywebrtc - Video/Audio streaming in Jupyter. (Visualization)
- awesome-jupyter-resources - GitHub - 60% open · ⏱️ 29.03.2021): (交互式小部件和可视化)
README
# ipywebrtc
[![Travis](https://travis-ci.org/maartenbreddels/ipywebrtc.svg?branch=master)](https://travis-ci.org/maartenbreddels/ipywebrtc)
[![Documentation](https://readthedocs.org/projects/ipywebrtc/badge/?version=latest)](https://ipywebrtc.readthedocs.io/en/latest/)
[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/maartenbreddels/ipywebrtc/master?filepath=docs/source)
[![Chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/jupyter-widgets/Lobby)WebRTC and MediaStream API exposed in the Jupyter notebook/lab.
[See this tweet](https://twitter.com/maartenbreddels/status/1027995865024262144) for a demo screencast.
# Why use ipywebrtc?
Using ipywebrtc you can create a [MediaStream](api.html#ipywebrtc.webrtc.MediaStream) out of:
* [Any ipywidget](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.WidgetStream).
* A [video](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.VideoStream) file.
* An [image](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.ImageStream) file.
* An [audio](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.AudioStream) file.
* Your [webcam/camera](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.CameraStream).From this MediaStream you can:
* [Record a movie](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.VideoRecorder).
* [Record an image snapshot](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.ImageRecorder).
* [Record an audio fragment](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.webrtc.AudioRecorder).
* Stream it to peers using the simple [chat function](https://ipywebrtc.readthedocs.io/en/latest/api.html#ipywebrtc.chat)
* [Use it as a texture in ipyvolume](https://twitter.com/maartenbreddels/status/894983501996584961)# Demos
## WebRTC and [ipyvolume](https://github.com/maartenbreddels/ipyvolume/)
Use remote MediaStreams and show them in 3d using [ipyvolume](https://github.com/maartenbreddels/ipyvolume/).![webrtc](https://user-images.githubusercontent.com/1765949/43977008-03dbfac0-9ce3-11e8-9bb9-4a5f8f2cc79a.gif)
## ImageRecorder
Record and image from *any* stream for postprocessing.
![recorder](https://user-images.githubusercontent.com/1765949/43978560-fe0bf500-9ce7-11e8-81b9-9d30d26d7492.gif)
## WidgetStream
Turn *any* widget into a MediaStream.
![widget-stream](https://user-images.githubusercontent.com/1765949/43977992-1668d534-9ce6-11e8-8fab-783105476e98.gif)
# Installation
To install:
```
$ pip install ipywebrtc # will auto enable for notebook >= 5.3
```For a development installation (requires npm),
```
$ 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 labextension develop . --overwrite
```