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: 5 days 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 (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-02-20T10:19:50.000Z (10 months ago)
- Last Synced: 2024-12-01T22:02:27.252Z (12 days ago)
- Topics: ipython, ipython-notebook, jupyter, jupyter-notebook, python, video-streaming, webcam, webrtc
- Language: JavaScript
- Size: 10.8 MB
- Stars: 246
- Watchers: 11
- Forks: 41
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-jupyter-resources - GitHub - 60% open · ⏱️ 29.03.2021): (交互式小部件和可视化)
- best-of-jupyter - GitHub - 60% open · ⏱️ 06.02.2024): (Interactive Widgets & Visualization)
- awesome-jupyter - ipywebrtc - Video/Audio streaming in Jupyter. <!--lint disable double-link--> (Visualization)
- -awesome-jupyter - ipywebrtc - Video/Audio streaming in Jupyter. (Visualization)
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
```