VCS 1.12 released

VCS 1.12 is ready to download

As with 1.11 many of the changes are pretty radical and might break but it's been working fine for me so far.

The changes are quite a few so I'll try to explain as best as I can. Documentation for the new stuff is on the way.

New in this version:

  • Profiles
  • On-demand loading of custom configuration files
  • Heading, footer and title based on actual font size
  • Configuration generation from the command-line
  • Relative end-offset
  • More reasonable command-line arguments to capture from DVD
  • Configuration syntax enhancements and more sensible names for settings

→ Profiles

Command-line: --profile <NAME> and -p <NAME>

Profiles allow saving a group of settings and then reusing them by using their name.
They can be saved to ~/.vcs/profiles/ or /usr/share/vcs/profiles/ as name.conf, and then invoked with a command-line like:
$ vcs -p name video.avi

They can also be combined, e.g.
$ vcs -p black -p mosaic video.avi

A list of available profiles can be displayed with
$ vcs -p :list

The deb, rpm, arch package and tarball include some sample profiles.

→ Configuration file loading

Command-line: --config <FILE> and -C <FILE>

A lot like profiles but settings can be loaded from any file on any directory. The only extra condition is the file should contain "vcs:conf:" inside comments towards the beginning or the end of the file.

$ vcs -C /tmp/mysettings.txt video.avi

→ Configuration (and profile) generation

Command-line: --generate config

By adding --generate config to the command-line, the effective settings are printed in a format that can be saved to a configuration or profile file.

All active settings with an appropriate config setting will be printed, no matter if they come from the command-line, profiles or configurations.


$ vcs -n4 --generate config
Will produce a configuration for 4 captures and fixed number of captures:


$ vcs -p myprofile -C myconfig.cfg -E0 --generate config

Will merge profile "myprofile" and file myconfig.cfg, disable end-offset and print the combined settings.

Big warning

In case you aren't familiar with shell redirections, DON'T try to overwrite an existing configuration like:
$ vcs [...] --generate config > myconfig.cfg
This WILL WIPE your configuration BEFORE reading it.


Pre-existing configurations can be "upgraded" to the new names by running without extra arguments:
$ vcs --generate config

→ Relative end-offset

The end offset now accepts percentages and is 5.5% by default. It is now applied always unless disabled.

With the length detection workarounds in 1.11 and relative end offsets, the whole MIN_LENGTH_FOR_END_OFFSET nonsense is gone for good. Good riddance.

→ DVD capture

Handling of DVDs is now like that of normal files. --dvd (or -V) enable the DVD mode and take no arguments anymore:

$ vcs --dvd /dev/dvd

$ vcs --dvd --dvd-title 1 /dev/dvd

Multi-input is also accepted now:

$ vcs --dvd --dvd-title 1 --dvd-title 2 /dev/dvd /dev/dvd somedvd.iso
Will capture titles 1 and 2 from /dev/dvd, and the longest title from somedvd.iso.

DVDs and video files can't be mixed though (it's either DVD mode or no DVD mode for all input files).

→ Configuration syntax enhancements

Finally, configuration files are now easier to read and write:
 — Settings are case insensitive now
 — Names are easier on the brain (e.g. "height" instead of "th_height")
 — Comments no longer need their own line

Also a sample configuration file is provided with all available settings for easier writing of your own if needed.

→ Dynamic heading/footer/title

In previous versions heading and title size based on font pointsize. This lead to a few rare fonts displaying cropped. Footer was a fixed size so it was even worse at that. 1.12 probes the font size and (hopefully) sizes sections accordingly. Example:

Before: 1.11.2

After: 1.12

The font displayed is akaFrivolity in case you're wondering

vcs 1.12 (script only)
or (script, sample configuration and profiles)
deb, rpm, PKGBUILD & bz2
as usual at

VCS 1.11.2 released

A new small update to vcs is available to download. This should be the last update before 1.12 (which will take a while to be ready) but the massive changes in 1.11.x still need more testing so who knows.

Changes in 1.11.2:

  • Some Real Audio codec names (v4, v5 and v6)
  • Bugfix/Feature: Fallback for default font on systems that don't register fonts with ImageMagick
  • Bugfixes: Clean up correctly extra temporary dirs, fix for non-GNU awk (e.g. mawk)

vcs 1.11.2
deb, rpm, PKGBUILD & bz2
as usual at

VCS 1.11.1 released

Here's a very small bugfix release, nothing too fancy this time around:

– A name for the FLV1 codec (used in older flash videos)

– Warnings about the DEFAULT_* configuration variables accidentally removed in the previous release (and temporarily accept them)

– A check of ImageMagick's version that should work in all systems

Also new there's a PKGBUILD file for packaging for Arch.

vcs 1.11.1
deb, rpm, etc.
as usual at

numcaps in configuration

After a user report I noticed I should clarify: If you add, e.g. numcaps=10 to your configuration file you're changing the default number of captures but the default mode of operation is to capture at fixed intervals so to actually use this value you also have to add timecode_from=$TC_NUMCAPS to your configuration, which the changes the mode of operation to a fixed number of captures. E.g.:

$ cat ~/.vcs.conf

VCS 1.11 released

In this post:

Release notes

Finally a new version of vcs, and it brings a truckload of changes. So many in fact that it will probably break in new and unexpected ways but so far it has been working quite fine.

The major improvement will probably be the tweaks to video duration detection that should get rid of the dreaded "Failed to capture…" on the last capture.

Other new features worth mentioning:

  • Height can be defined as a percentage (-H 25%) or set configuration files (th_height=160)
  • Output filename can now be set manually (-o file)
  • Lots of small cosmetic tweaks, from default font and heading background, to tighter padding or smaller timestamps. And the ability to tweak or disable padding.
  • Support for DVD has been revamped and should work much better now.
  • FreeBSD users are now (mostly) first class citizens for vcs 😉
  • More concise --help output, added --fullhelp for the whole bore
  • Handling of non-latin filenames makes a lot more sense now
  • And last but not least, the usual lot of bugfixes, better detection of video features, better aspect ratio detection, new codec names, etc.

On a more mundane note, no longer both MPlayer and FFmpeg are required, either one will do (although both will render best results), bc is no longer required.

Also, I'm providing an rpm package too this time around.

And finally this version will work on bash 2.05b, in case you're using some tight system like DSL.

In case you wonder how the hell did I count to make 1.11 follow 1.0.100a, I just remembered I should bump the version when new features are added, and re-counted versions. Lame I know but at least numbering should make more sense now.

Important I forgot to add warnings about this: If you're using a configuration file, there's been some renamings: DEFAULT_NUMCAPS is now numcaps, DEFAULT_INTERVAL is now interval and DEFAULT_COLS is now cols.

Edit: 1.11.1 fixes this: warns about their usage and accepts them for now.

A note for everyone (but specially for porn aficionados)

Please, if at all possible link directly whenever you discuss vcs. I know many communities prefer to use link redirections to keep referrer hidden but knowing how people is using or what they're saying about vcs helps me in improving and fixing it.

I know full well such a script caters to pr0n uploaders and I'm not offended, no need to hide 😉

Conversely, if you know of any discussion about vcs feel free to let me know so that I can jump in or steal get ideas from it.

BTS and Documentation

Finally, in case you didn't notice, the documentation site has received a lot of love and now is much more useful, and I've also opened a bug tracker in case you prefer it to e-mail.


Documentation wiki is live

I've finally open access to the documentation wiki for vcs (and also mp3plot and nautilus-follow-symlink). It's far from complete, with a lot of stuff to add, but I'm moving there all documentation progressively so there's the place to look for help.

I started using MediaWiki but later scaled back to DokuWiki.

VCS working on FreeBSD

As I wrote on the last update, I've been working on making vcs work on FreeBSD (and hopefully other non-GNU systems), there were quite a few problems that made it unusable outside GNU variants, but it's already working. Sort of:

FreeBSD Preview (small)

There's still some wrong details:
Like FreeBSD Heading Detail instead of Linux Heading Detail

or FreeBSD "Polaroid" mode sample instead of Linux "Polaroid" mode sample

But that's definitely better than not running at all 😛

The other major problem is I've no clue how the size of removable media should be retrieved (in a portable way). That's required when working with a real DVD (i.e. not a DVD ISO). The previous version used a method I disliked (fdisk -s) and that most probably would fail on everything but GNU. SO if you know of a right way of do so, drop me a line 🙂

Anyway, I'll publish this version RSN, even with this ugly bits and will look on how to fix that stuff later on.

VCS Beyond Linux

Before the next release I'd like to make VCS work better in other OSes beyond Linux. Linux is my (current at least) OS
of choice and the one I'm not familiar with so it's also obviously the OS in which I develop and test VCS.
Thanks to virtualisation
gaining a lot of momentum I'm now able to try operating systems I've never worked with (and which I'm pretty sure
will make VCS choke in ways I never expected); e.g. the very last major feature, DVD vidcapping, is written in a way not compatible
with, at least, FreeBSD. I'll focus on making vcs work better (or at all) on ther systems for a while, let's see
how it turns out.

VCS 1.0.99 released

New version released, finally implementing DVD support (both ISO and DVD devices should work).
Also JPEG 2000 output, a more Polaroid™-like

polaroid mode 😉 (the older one has been renamed to photos); the timestamp is now reduced
for smaller captures plus the usual batch of fixes/tweaks.


Capturing from DVDs is a bit tricky, the filename is passed as an argument to -V while
the title number must be provided as if it were the file to capture, e.g.: $ vcs -V /dev/dvd 1

will capture the first title from the inserted DVD.

Passing 0 as DVD title will use the longest title in the disc (which is usually the main title):
$ vcs -V someiso.iso 0

DVD support *requires* lsdvd and fdisk (fdisk is used to detect the size of DVDs)
in this first version.

JPEG 2000

JPEG 2000 output (*.jp2 files) is used by passing the -j2 or --jpeg 2

New polaroid mode

As for bugfixes: I finally came across the previously unreproducible bug that made the polaroid
and overlap modes place all images on the same spot. Guess it was a problem with a newer version of
ImageMagick since I've also encountered a lot of problems with some of the commands I was using.
I've fixed all I was able to find.
As a side effect, I've reworked once again the alignment of the different sheets.

This will be renamed as 1.1.0 if it works well enough for others.