Python module to summarise a video into a collage.
Project description
Description
Code for the videosum
Python package. Given a video file, this package produces a single image that summarises the video. The summary image is constructed as a collage of video frames evenly spaced over time.
Install dependencies
- Ubuntu/Debian:
$ sudo apt install ffmpeg
Install with pip
$ python3 -m pip install videosum --user
Install from source
$ python3 setup.py install --user
Run video summarisation on a single video
$ python3 -m videosum.run --input video.mp4 --output collage.jpg --nframes 100 --height 1080 -width 1920 --algo time
Options:
--input
: path to the input video file.--output
: path where the output collage will be saved.--nframes
: number of frames that you want to see in the collage image.--height
: height of the collage image.--width
: width of the collage image.--algo
: algorithm used to select the key frames of the video.time
: evenly spaced frames are selected.fid
: medoids retrieved with k-medoids clustering on InceptionV3 latent space vectors corresponding to each video frame.scda
: medoids retrieved with k-medoids clustering on SCDA image descriptors (Wei et al. 2017 Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval), but with latent tensor from InceptionV3 trained on ImageNet as opposed to VGG-16.
Exemplary code snippet
import cv2
import videosum
# Choose the number of frames you want in the summary
nframes = 100
# Choose the dimensions of the collage
widtth = 1920
height = 1080
# Choose the algotrithm that selects the key frames
algo = 'fid' # The options are: 'time', 'fid', 'scda'
# Create video summariser object
vs = videosum.VideoSummariser(algo, nframes, width, height)
# Create collage image
im = vs.summarise('video.mp4')
# Save collage to file
cv2.imwrite('collage.jpg', im)
# Retrieve a list of Numpy/OpenCV BGR images corresponding to the key frames of the video
key_frames = vs.get_key_frames('video.mp4')
Run unit tests
Run this from the root directory of the repository:
$ python3 test/test_videosum.py
Exemplary result
- Video (click on the thumbnail to watch the video in Youtube):
- Summary based on
time
algorithm:
$ python3 -m videosum.run --input video.mp4 --output time.png --nframes 16 --height 1080 --width 1920 --algo time
- Summary based on
fid
algorithm:
$ python3 -m videosum.run --input video.mp4 --output time.png --nframes 16 --height 1080 --width 1920 --algo fid
- Summary based on
scda
algorithm:
$ python3 -m videosum.run --input video.mp4 --output time.png --nframes 16 --height 1080 --width 1920 --algo scda
Author
Luis Carlos Garcia Peraza Herrera (luiscarlos.gph@gmail.com), 2022.
License
This code repository is shared under an MIT license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file videosum-0.0.3.tar.gz
.
File metadata
- Download URL: videosum-0.0.3.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24adc442673f0d832d01e7b3586143158debe49b223c2fec51ca096890dd290b |
|
MD5 | 0704304671cd9a23a5f00c99cdce6278 |
|
BLAKE2b-256 | 8605a22139a3fa1a4b22ff3d4fdcd8c9496e44d23b7f6ed20d38c0cce63d77f2 |