VideoRecorder

A VideoRecorder allows you to record any stream object, e.g. from:

[1]:
from ipywebrtc import VideoStream, VideoRecorder
[2]:
video = VideoStream.from_url('./Big.Buck.Bunny.mp4')
[3]:
video
[4]:
recorder = VideoRecorder(stream=video)
recorder
[5]:
video.playing = False
[6]:
recorder.video

Use ‘record’ button for recording. Programatical control is available using the MediaRecorder.record trait.

[7]:
recorder.recording = True
[8]:
recorder.recording = False

Saving can be done by clicking the download button, or programmatically using the save method. If autosave is True, the recording will be saved directly to disk.

[9]:
recorder.save('example.webm')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-3c2e0defaea1> in <module>
----> 1 recorder.save('example.webm')

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywebrtc/webrtc.py in save(self, filename)
    451             filename += '.' + self.format
    452         if len(self.video.value) == 0:
--> 453             raise ValueError('No data, did you record anything?')
    454         with open(filename, 'wb') as f:
    455             f.write(self.video.value)

ValueError: No data, did you record anything?
[10]:
from ipywidgets import Video

example = Video.from_file('example.webm')
example
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-1-b7367ffe4f50> in <module>
      1 from ipywidgets import Video
      2
----> 3 example = Video.from_file('example.webm')
      4 example

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in from_file(cls, filename, **kwargs)
    192     @classmethod
    193     def from_file(cls, filename, **kwargs):
--> 194         return cls._from_file('video', filename, **kwargs)
    195
    196     def __repr__(self):

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in _from_file(cls, tag, filename, **kwargs)
     42         Returns an `Media` with the value set from the filename.
     43         """
---> 44         value = cls._load_file_value(filename)
     45
     46         if 'format' not in kwargs:

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in _load_file_value(cls, filename)
     93             return filename.read()
     94         else:
---> 95             with open(filename, 'rb') as f:
     96                 return f.read()
     97

FileNotFoundError: [Errno 2] No such file or directory: 'example.webm'