vcs

This is the tasklist for Video Contact Sheet *NIX

Although I use it mainly as a TO-DO list, feel free to fill any bug-reports or feature requests you might have.

Homepage: https://p.outlyer.net/vcs/
Documentation: https://p.outlyer.net/vcs/docs

ID Task Type Severity Summary Status Progress Due In Version
387Bug ReportLowInsufficient permissions when writing to SMB shares on ...Assigned
0%
Task Description

Reported by Phate https://https://outlyer.net/2019-11-26:vcs-1-13-4-released/comment-page-1/#comment-60724

I have vcs installed via brew on MacOS Sonoma. This may not be something you can test, but maybe you can offer suggestions as to what might be the issue:
When I use vcs on local volumes, everything works as expected as far as the output image file permissions go. However, if I attempt to output a vcs contact sheet to a smb server volume, the file has no read or write permissions for user, group or other. Normal terminal commands like touch, mkdir, etc create files with proper permissions from the same terminal shell.
386Bug ReportHighExtended set and highlights composition is brokenAssigned
0%
Task Description

Appears to be an incompatibility with current ImageMagick (6), happens with old versions of vcs too

385Bug ReportHighHandle rotation of video files rotated via metadataResearching
50%
1.14 Task Description

Originally reported by Pär: https://outlyer.net/2019-11-26:vcs-1-13-4-released/comment-page-1/#comment-60689

Another thing that is a little bit annoying, but isn't a very big deal, is the fact that videos made from a phone where the image is rotated in metadata, doesn't produce a correct aspect ratio. For example, a video that is stored as 1920×1080 (16:9), but shown as 1080×1920 (9:16), due to metadata rotation, vcs will create thumbnails in 1920×1080 aspect ratio (16:9) but show them rotated correctly, which means the image at 9:16 gets squashed to fit into 16:9. Like I said, not a very huge deal, but it looks somewhat silly and it would be great if it was possible to fix.
I've tried to see if I could set the aspect parameter but it doesn't seem to do much when the rotation is made in metadata. Metadata usually state something like:
>
> "`bash
Side data:
displaymatrix: rotation of -90.00 degrees
"`
384TO-DOMediumUse magick command with ImageMagick 7Requires testing
90%
1.14 Task Description

Originally reported by Pär: https://outlyer.net/2019-11-26:vcs-1-13-4-released/comment-page-1/#comment-60674

Recently got an update of ImageMagick:
$ magick --version
Version: ImageMagick 7.1.1-33 Q16-HDRI x86_64 22263 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenCL OpenMP(4.5) 
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png raqm raw rsvg tiff webp wmf x xml zip zlib zstd
Compiler: gcc (14.1)
Because of that, the "convert" command now gives a deprecation warning:
WARNING: The convert command is deprecated in IMv7, use "magick"
Trying to do that, replacing all the calls to 'convert' for 'magick', the temp images seem to be problematic (I've added a few printouts of the suspected code blocks):
[i] Capturing in range [04:49.49-19:17.95]. Total length: 20:25.35
[i] Generating capture #1/4 (04:49.49)...
magick: no images found for operation `-geometry' at CLI arg 7 @ error/operation.c/CLIOption/5479.
magick: magick -background 'transparent' -fill 'transparent' '/dev/shm/vcs.SGteWR/vcs-ZQ0dJj-cap-000001.png'   \( -geometry 267x200! \)  -flatten   \( -box '#000000aa' -fill 'White' -stroke none -pointsize '9'     -gravity 'SouthEast' -font '/usr/share/fonts/TTF/DejaVuSans.ttf' -strokewidth 3 -annotate +5+5     ' 04:49.49 ' \) -flatten -gravity None  -flatten  \( -background black +clone -shadow 50x2+4+4 -background none \) +swap -flatten -trim +repage  -flatten  '/dev/shm/vcs.SGteWR/vcs-zQhKDd.png'
If I try to cp those two temp images on the line below the 'magick' command, they become 0 byte files.
The video renderer ffmpeg has also gone through a couple of steps of upgrades over the years, I now have:
$ ffmpeg -version
ffmpeg version n6.1.1 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13.2.1 (GCC) 20230801
So commands like '-vframes' is now '-frames:v' and so on. No errors, just friendly suggestions in the man page. I replaced those also, but still the same problem.
I should have listened more carefully when our kindergarten teacher went through Bash. ;) IOW, I'm sure it's something simple I am not understanding.
N.b. I can still use vcs with the normal 'convert' command, but depending on how "militia force" serious the ImageMagick gang is going to be about deprecation warnings and removal of old code, it might stop working at some point in the future and I think that would be sad.
Any ideas? Thanks! :)
382Bug ReportMediumLook into detecting or setting manually GNU getoptAssigned
0%
? Task Description

Reported by KW in comments: https://outlyer.net/2019-11-26:vcs-1-13-4-released/#comment-51875

With the new script I'm getting issues the following error:
No compatible version of getopt in path, can't continue.
Enhanced getopt (i.e. GNU getopt) is required

Added by Darko in comments: https://outlyer.net/2019-11-26:vcs-1-13-4-released/#comment-52719

The homebrew's version of vcs has this at line 186:
declare GETOPT=/opt/homebrew/opt/gnu-getopt/bin/getopt
While Toni's just uses whatever is on path:
declare GETOPT=getopt
… which on macOS is non-gnu version of getopt.

Added by X in comments: https://outlyer.net/2019-11-26:vcs-1-13-4-released/#comment-53401

The issue is on line 186. Brew version has this:
declare GETOPT=/usr/local/opt/gnu-getopt/bin/getopt
The trunk version has:
declare GETOPT=getopt
When I backport the most important change you did in the trunk version ('`fx:image.mean` > `fx:mean`') then indeed the error messages on '.mean*100' are gone.
378Bug ReportMediumBlank frame evasion produces error on latest ImageMagic...Assigned
0%
1.14 Task Description

Reported by Paul:

Hey,
I'm using VCS via Homebrew Install (https://formulae.brew.sh/formula/vcs#default) and since the last update of imagemagick (?) I get dozens of error messages:
convert: Expected operator at '.mean*100' @ error/fx.c/GetOperator/2408

Confirmed to happen on ImageMagick 7.1 on Linux, the contact sheet is generated but blank frame evasion is skipped

377Feature RequestLowAllow screenshotting half of the video (for side-by-sid...Assigned
0%
? Task Description

Asked by Bob on the blog

Would it be possible to somehow specify to only screenshot half of the video image (for 180 side-by-side VR videos)?

Or would this require new features to be added to the VCS?
375TO-DOVery LowAllow disabling blank frame evasionAssigned
0%
1.14 Task Description

Should allow to disable it in both configuration and command-line.

367Feature RequestLowAdd HDR supportAssigned
0%
1.14 Task Description

HDR isn’t well supported as reported by remlap and ThaDr.

Their comments:

https://outlyer.net/2017-05-26:vcs-1-13-3-released/#comment-30901

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

Thanks

https://outlyer.net/2017-05-26:vcs-1-13-3-released/#comment-32413:

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…

https://outlyer.net/2017-05-26:vcs-1-13-3-released/#comment-32423

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.
363Bug ReportLowFile names with '#' lead to errors when creating versio...Assigned
0%
1.14 Task Description

I.e. create file sample#.avi

Run vcs on sample#.avi -> sample#.avi.png is created.
Run vcs again. sample#.avi-1.png should be created, but sed generates an error.

315Feature RequestLowRecurse directories, output to current dirAssigned
0%
? Task Description

Request by Chris Hills

http://outlyer.net/2014-05-18:vcs-1_13_2-released/comment-page-1/#comment-17238:

Thanks Toni. I was hoping I could simply run `$ vcs-1.13.2.bash -? **/*.mp4` to create contact sheets for all videos in all subfolders, but it sounds like I’ll have to use a wrapper script. Would you consider adding this in a future release for a donation?

My reply:

I guess you’re using zsh-ish globbing there.
That’s not something I use so I didn’t even think of the case where recursing could be so simple.
It was a bit of an overlook on my part not to have the option to output to the same directory as the video, probably because recursion always required a wrapper in my head.
249TO-DOLowAdd libav as possible capturerAssigned
0%
1.14 Task Description

No need for description

227TO-DOLowFailed blank frame evasion should go back to original t...Assigned
0%
1.14 Task Description

When a frame evasion is tried and given up, the chosen timestamp should be the original instead of the last attempt

200TO-DOVery LowRelease 2.0Assigned
0%
Meta: Release Cycle Task Description

This is a meta-item depending on bugs/features required to complete before releasing vcs 2.0.

v2.0 will be a rewrite in Python.

Previous: FS#153

197TO-DOHighMove away from /dev/shmAssigned
0%
1.14 Task Description

/dev/shm isn’t really intended as an alternate temporary location, and VCS’ temporary files can easily grow too large for it too.

As a possible alternative offer a first-run choice of temp-dir (maybe suggesting /dev/shm).

References:
http://wiki.debian.org/ReleaseGoals/RunDirectory#Why_put_.2BAC8-dev.2BAC8-shm_and_.2BAC8-tmp_under_.2BAC8-run.3F http://stackoverflow.com/questions/9745281/tmp-vs-dev-shm-for-temp-file-storage-on-linux

196TO-DOMediumffmpeg is deprecatedAssigned
0%
1.14 Task Description

See http://libav.org/, Jan 27 2012.
Also http://libav.org/index.html#fftools_rename for changes to the syntax.

Must change to avprobe/ffprobe and/or avconv.

194Feature RequestMediumFiles incorrectly reporting "too short" length aren't d...Researching
0%
? Task Description

As reported by Dirk Reiners (paraphrased)

Files incorrectly reporting too short length (unlike too long), pass the safe_length_measure check ⇒ This prevents correcting length.

178Submitted PatchLowffmpeg + piped mplayer dump can be used to identifyRequires testing
0%
1.14 Task Description

Originally suggested by Dean: http://outlyer.net/2010-08-24:vcs-1_12-2-released/

” [...]

Second, my dvd-drive is useless atm, but i remember previously piping dvd-ouput from mplayer into ffmpeg via a fifo and finding the info generated to be much better than mplayer-alone – for one thing, it won’t ‘downmix’ 6-channel audio automatically. Don’t know if that would be useful to you. The syntax was something like:-

mkfifo piped.vob &&
mplayer dvd:// -dumpstream -dumpfile piped.vob & \
ffmpeg -i piped.vob

…See what you think…

172TO-DOVery LowDon't autoload './vcs.conf'Assigned
0%
1.14 Task Description

See  FS#171 

164Bug ReportVery LowImplement instrumentationAssigned
0%
? Task Description

No need for description

163TO-DOVery LowMove rarely used features to pluginsAssigned
0%
? Task Description

No need for description

162TO-DOVery LowImplement pluginsAssigned
0%
2.0 Task Description

No need for description

155Bug ReportLowColourised messages are printed before colour disabling...Assigned
0%
Task Description

No need for description

153TO-DOVery LowRelease 1.14Limbo
0%
Meta: Release Cycle Task Description

This is a meta-item depending on bugs/features required to complete before releasing vcs 1.14

Previous:  FS#152   FS#218   FS#224   FS#250   FS#366 

151TO-DOLowOverride-able variables cleanup: Removal of deprecated ...Assigned
0%
1.14 Task Description

Introduce new names in 1.12 ( FS#120 )

Remove old names in 1.13 or 1.14 (this)

147Feature RequestMediumConfiguration options revampAssigned
90%
1.14
137Bug ReportMediumHang with RM filesUnconfirmed
0%
126Feature RequestVery LowEdge detection / blur evasion (mtn feature)Deferred
0%
125Feature RequestVery LowBlank screen evasion (mtn feature)Deferred
90%
1.14
124Feature RequestLowBetter looking timestampsAssigned
0%
118Feature RequestLowCreate manpageDeferred
0%
109Bug ReportMediumFailure to capture with packed B-frames in AVIUnconfirmed
0%
104Feature RequestVery LowAccept percentages in --from and --toDeferred
0%
101Bug ReportLowHeading bleeds into left side of contact sheet when tit...Deferred
0%
95Bug ReportLowRunning vcs from find fails on WMVs. They work directly...Unconfirmed
0%
93Bug ReportVery Lowgrep -o is not portableAssigned
0%
1.14
92Feature RequestVery LowSupport OpenSolaris/SunOSLimbo
0%
2.0
69Feature RequestVery LowImage modeLimbo
0%
56Feature RequestLowAdd transcode as possible capturerDeferred
0%
1.14
54Bug ReportLowminutes printed as hours with mplayerUnconfirmed
0%
53Bug ReportLowffmpeg doesn't accept file names with spacesUnconfirmed
0%
52Feature RequestVery LowAllow review of screenshots before composingLimbo
0%
?
50Feature RequestVery LowAllow setting text outlinesDeferred
0%
41Feature RequestLowAdjust timestamps size to capture sizeRequires testing
80%
32Bug ReportHighvcs gets stuck on first capture (or during probe)Researching
0%
5Bug ReportMediumMeta-information gets overlapped with small contact she...Assigned
0%
Showing tasks 1 - 46 of 46 Page 1 of 1

Available keyboard shortcuts

Tasklist

Task Details

Task Editing