google/mediapy
This Python library makes it easy to display images and videos in a notebook.
repo name | google/mediapy |
repo link | https://github.com/google/mediapy |
homepage | https://pypi.org/project/mediapy/ |
language | Jupyter Notebook |
size (curr.) | 1730 kB |
stars (curr.) | 183 |
created | 2021-03-11 |
license | Apache License 2.0 |
Read/write/show images and videos in an IPython/Jupyter notebook.
[GitHub source]** [API docs]** [PyPI package]** [Colab example]**
Examples:
See the notebook
mediapy_examples.ipynb
Images:
!pip install -q mediapy
import mediapy as media
import numpy as np
image = media.read_image('https://github.com/hhoppe/data/raw/main/image.png')
print(image.shape, image.dtype) # It is a numpy array.
media.show_image(image)
checkerboard = np.kron([[0, 1] * 16, [1, 0] * 16] * 16, np.ones((4, 4)))
media.show_image(checkerboard)
media.show_image(media.color_ramp((128, 128)), height=48, title='ramp')
images = {
'original': image,
'brightened': media.to_float01(image) * 1.5,
}
media.show_images(images)
media.write_image('/tmp/checkerboard.png', checkerboard)
Videos:
video = media.read_video('https://github.com/hhoppe/data/raw/main/video.mp4')
print(video.shape, video.dtype) # It is a numpy array.
media.show_video(video)
media.show_images(video, height=80, columns=4) # Frames side-by-side.
video2 = media.moving_circle((128, 128), num_images=10)
media.show_video(video2)
media.write_video('/tmp/video.mp4', video)
# Darken a video frame-by-frame:
filename_in = '/tmp/video.mp4'
filename_out = '/tmp/out.mp4'
with media.VideoReader(filename_in) as r:
print(f'shape={r.shape} fps={r.fps} bps={r.bps}')
darken_image = lambda image: media.to_float01(image) * 0.5
with media.VideoWriter(
filename_out, shape=r.shape, fps=r.fps, bps=r.bps) as w:
for image in r:
w.add_image(darken_image(image))
media.show_video(media.read_video(filename_out))
Setup:
Video I/O relies on the external program ffmpeg
, which must be present in
the system PATH. On Unix, it can be installed using:
apt-get install ffmpeg
or within a notebook using:
!command -v ffmpeg >/dev/null || (apt update && apt install -y ffmpeg)