Video Contact Sheet *NIX
vcs for short.
Details
- Current version: 1.13.4, released on November 26th 2019. Announcement post.
Download:- Packages: Script and extra files (sample profiles and configuration): [ Tarball ] [ deb (all arches) ] [ rpm (generic, all arches) ] [ srpm ] [ Arch Linux PKGBUILD ]
- Debian repository: packages.outlyer.net
- Status: Stable (some bugs granted of course) on both Linux and FreeBSD.
Believed to work on other UNIX-like systems but untested. - Released under the terms of the GNU LGPL.
- To track new releases, take a look at its Freecode page.
- Requirements (most desktops should have all, or most, of them): ImageMagick (at least version 6.3.5-7) (convert, montage and identify commands), mplayer or FFmpeg (preferably both), and some common stuff available on most sane desktops: bash (≥ 3.1) (for bash v2.05b use vcs 1.12.2), sed, grep/egrep, getopt and cut.
DVD support (optional) requires lsdvd and perl. - Slightly buggy :P
- Any contribution, suggestion or bug report is welcome.
Links
- Updates are posted at my main site, see http://outlyer.net/etiq/projects/vcs/
- Git repository: https://git.outlyer.net/outlyer/video-contact-sheet (also on GitHub)
Subversion repository https://svn.outlyer.net/svn/pub/ATTIC/video-contact-sheet/. Web interface - Bugtracker https://b.outlyer.net/vcs/
Downstream packages
Besides the packages provided above, vcs
can be found packaged by other users at the following standard repositories.
I don't take part in creating these packages and can't confirm they work as expected.
Archlinux's AUR
https://aur.archlinux.org/packages/video-contact-sheet/
$ git clone https://aur.archlinux.org/video-contact-sheet.git
$ cd video-contact-sheet
$ makepkg -si
Homebrew (aka Brew)
https://formulae.brew.sh/formula/vcs
$ brew install vcs
NixOS / Nix
https://search.nixos.org/packages?show=vcs
$ nix-env -i vcs
Note as of this writing vcs is incorrectly flagged as unfree in Nix 23.11, but already corrected in unstable. You can enforce the install with
$ env NIXPKGS_ALLOW_UNFREE=1 nix-env -i vcs
Guix
https://packages.guix.gnu.org/packages/video-contact-sheet/
$ nix-env -i vcs
Description
This is a bash script meant to create video contact sheets (previews) of videos. Any video supported by mplayer and ffmpeg can be used. A note of warning: Unlike most similar tools it, by default, makes screenshots the same size as the video, see below for details on how to change this.
Take a look at the documentation and/or use the –help
and –fullhelp
options to learn how to use it.
Notes
- Using
-i
or-n
with values that lead to the same number of vidcaps doesn't necessarily yield exactly the same vidcaps, you'll have to play with them for best results.- Example: With a video that lasts for 22min 14secs,
-n 6
will create the six vidcaps:
3:22, 6:44, 10:04, 13:28, 16:50 and 20:12, while-i 3m
will create 3:00, 6:00, 9:00, 12:00, 15:00 and 18:00.
As you can see,-n
distributes the vidcaps all over the video while-i N
starts atN
and goes in increments of it up to the end.
- You can set the aspect ratio of the video with
-a
. It is only required for anamorphic material and discouraged for the rest.
It can take either a floating point number (like1.33
or1.778
) or a fraction (like4/3
or16/9
). The latter is slightly preferable.
Default behaviour
By using configuration files and/or command line options the default behaviour can be tweaked to your needs, these are the defaults, followed by a link with the explanation on how to change it:
- Captures are made every 5 minutes. See Usage.
- Captures are the same size as the input video. See Size and aspect ratio.
- Captures are arranged in 2 columns (if there's more than one capture). See Number of columns.
Documentation
Some samples
More samples can be found in the documentation pages, e.g. in: Samples, Example configuration, Setting Contact Sheet Colours.
Known Issues
- Getting stuck on first frame
- This happening is a sign that the decoder (FFmpeg or MPlayer) has problems dealing with the input file. Interrupt with CTRL+C and re-run with
-O stderr=/dev/stderr
to display decoder errors. It might be due to unsupported codecs or broken files, there's little more you can do, except trying with the other decoder (-M
to use MPlayer,-F
to use FFmpeg, which is the default).
- Getting gray frames
- This is a decoder error (either due to a broken file or some codec bug). Again little to be done other than switching decoders.
Remember this is a (neverending) work in progress, please report any bugs you encounter, either through e-mail or the bug tracker.
Next version features
See roadmap.
Related or similar tools
VCS Ruby rewrite by Thomas: Reuses part of VCS' code to produce the same style of contact sheets.
vcs-creator by tudo75: Small gui for VCS
Other similar tools available for POSIX/UNIX-like systems:
- movie thumbnailer (mtn) (mtn is not a script but an actual program so it has higher chances to work where scripts fails)
ChangeLog
These are the changes of some interest to end users, since the last full version.
Additionally a selection of changes for all versions and the full changelog (gzipped version) are available. (Contributors are listed there too.)
1.13.4 (Published November 26th 2019)
- Fix number of columns being ignored in Bash 5.0
- Fix wrong file sizes being displayed when using mawk
- Fix alternative blank frame evasion offsets being ignored
1.13.3 (Published May 26th 2017)
- Correct header rendering in newer versions of ImageMagick
- Other fixes (see changelog)
1.13.2 (Published May 18th 2014)
- Fix for sheets with MPlayer as capturer containing one extra capture
1.13.1 (Published February 26th 2014)
- Minor bugfixes
1.13 (Published March 8th 2013)
- Blank frame avoidance
- Automatic profile loading from configuration
- New 'compact' profile
- Bugfix: FreeBSD support restored
- Other fixes
© 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2017, 2018, 2019 Toni Corvera <outlyer at gmail.com>