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'