VCS 1.13.3 released

The latest version of VCS is available to download.
It's been a good while since the last release, but there aren't a lot of changes this time around, apart from the usual bugfixes there's better handling of errors and unsupported files.

The most important bug fixed is obviously the one I already previewed some days ago. The header was being cropped with current-day ImageMagick, and that problem should be gone.

See the full changelog for more details.

vcs 1.13.3
vcs-1.13.3.gz (script only)
vcs-1.13.3.tar.gz (script, sample configuration, manpage and profiles)
deb, rpm, PKGBUILD & xz
as usual at

Discover more from OutlyerNet

Subscribe to get the latest posts to your email.

25 thoughts on “VCS 1.13.3 released”

  1. Thanks for fixing the bug where it would not save the output file if the input filename contained an apostrophe. I just have one niggle:-

    tput: unknown terminal "pc3"

    This does not seem to cause any problems.

    1. Hi Chris, this is likely a side effect of the tput error you mentioned. While I look into it you may run vcs like:
      TERM=xterm vcs ...
      which should work.

      May you tell me what OS and OS version you're running vcs on?

  2. Hi Tony,

    I've been using VCS for some time now, and it has worked fine for me since.
    When upgrading my system to openSuSE Leap 42.3, VCS does not seem to honor -c anymore, generating one very wide image with captures next to each other…
    After some debugging I learned that bash now exposes $COLUMNS as an internal variable, interfering with the VCS $COLUMNS.
    replacing all 'COLUMNS' with 'USR_COLUMNS' in VCS solved the issue…

    best regards,

  3. Hi Tony

    Very nice Script, I wasn't wondering if it's possible when running vcs to say something like vcs folder/path/*/*.avi and have it scan a folder/subfolders for .avi files and make thumbnails of them and output the thumbnail to the same folder?" Not sure how this can Be done if possib?

    1. Hi,

      VCS will output to the directory it was called from. To recursively place the generated files on the same directory as the video file you'll have to wrap it into a script or command-line that traverses the directories you want.

      For example something like:

      $ find folder/path -type d -exec sh -c 'cd "{}" && vcs *.avi' \;

  4. Hey Toni!

    Can you please direct me to the best place to discuss VCS issues? I have a problem with certain videos and don't know where to ask for help. I'm happy to provide any debugging info required.

    Thank you for your fantastic script. 😀

  5. Jose Alonso

    Hi Tony,

    There is a minor rounding problem when the miliseconds of
    the time is 0.995 or above.

    [i] Generating capture #16/30 (03:09.17)…
    [i] Generating capture #17/30 (03:20.100)…
    [i] Generating capture #18/30 (03:32.82)…

  6. Seems to me you've lost interest in this project. Pity. Anyway, if you're still interested, I found a couple of bugs.

    One that affects movie file names with '-characters in them. vcs can't save the output. Input does not seem to be affected. My workaround:
    #output_name=$( safe_rename "$output" "$wanted_name" ) || {
    output_name=$( safe_rename "$output" "${wanted_name//\'/_}" ) || {
    Not optimal, but at least it writes the files.

    And one bug that showed up when ffmpeg and possibly, also IM or some other stuff on the system, got updated. Anyway, vcs no longer writes the footer. I have no workaround for that, though, since I really don't speak bash.
    \\// `(o_o)´ –"Live long and prosper!"

  7. Hello! Thank you for VCS, it's really useful!

    I want to explain a small problem I have with it, hope you can help. If I use it with a video that has the filename in non-latin characters (like Chinese) the filename in the contact sheet is written as "????????.mp4".

    1. Hi, for those cases you'll have to tell VCS to use a font that supports such characters using the --nonlatin (or -Ik) option, for example:

      $ vcs ... -Ik=/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc ...

      (adjust the command to load the appropriate font)

      Note --nonlatin doesn't take any arguments and will try to pick a font for you, but it will probably fail.

  8. Hi I am trying to thumbnail some HDR content is there anyway to insert ffmpeg filters in
    -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=mobius:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p


    1. There's no direct way to do it.
      However you may be able to use a wrapper for ffmpeg that includes those options and calling vcs with a modified path or by using one of the "undocumented" options, passing -Z set_ffmpeg=yourwrapperscript

  9. I'm also trying to do some HDR content and pass the -vf info to ffmpeg. I can't get it to work even using a wrapper script.

    It always comes up with awk errors, starting with "unterminated regexp".

    Is there any chance of updating vcs to support manual passing of those -vf arguments to ffmpeg?

    HDR content is very common nowadays…

  10. I'm using vcs 1.13.2 on ubuntu and ended up doing it by adding the line:

    -vf 'zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p' \

    at line 2203, in the ffmpeg_capture() function where it sets the ffmpeg command line options.

    Couldn't work out how to do it with a wrapper script.

  11. Sung-Min. Kim


    Thank you very much for your fantastic scripts.

    Here's the thumbnails made with VCS.

    Can I ask you a question?

    If I enter the command like this,

    -S 1 -S 4 -S 3 -S 2

    Then the VCS will sort automatically as follows.

    -S 1 -S 2 -S 3 -S 4

    How can I disable sorting?

    (I'm not a native english, Please understand my Korean-English.)

    Thank you..

    1. Sorry for the delayed response, your message was caught by the spam filter.

      Captures are always sorted automatically, so there's no way to do what you need, sorry.

  12. Hello! If the video is rotated in metadata, the captures are distorted. That is, mplayer and ffmpeg report it as w x h, but it is displayed rotated as h x w, so it is fitting a h x w image into a w x h box. Reproduce:
    for r in 0 90 180 270; do ffmpeg -i video.mp4 -c copy -metadata:s:v:0 rotate=$r rot-$r.mp4; done
    It will be distorted for r=90,270. Works for me to add:
    if [[ $MPLAYER_CACHE =~ ID_VID_0_ROTATE=(90|270) ]]; then
    echo "mplayer says rotated, swapping width and height"
    local tmp=${mi[$W]};mi[$W]=${mi[$H]};mi[$H]=$tmp;

    if [[ $FFMPEG_CACHE =~ displaymatrix:\ rotation\ of\ -?90\.00\ degrees ]]; then
    echo "ffmpeg says rotated, swapping width and height"
    local tmp=${fi[$W]};fi[$W]=${fi[$H]};fi[$H]=$tmp;
    after it detects width and height. Also need to change to
    FFMPEG_CACHE=$("$FFMPEG_BIN" -i "$f" -dframes 0 -vframes 0 /dev/null 2>&1 | egrep '(Stream|Duration:|^Seems|displaymatrix:)')

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top