VEAI Windows Command-Line Alpha 3.0.0.0a

Downloads: Windows | Source Code

Optional Download: HW Accelerated Commands - Substitute for run-me.bat with NVIDIA and AMD hardware acceleration + H.265 output.

Hello everyone,

The first alpha of the VEAI 3 command line tools is now available. A Mac version and a simplified install process will be available in an upcoming alpha. Thanks so much for all your help with testing!

Install & Usage Instructions

  1. Extract the downloaded zip file to a location of your choice
  2. Run the “run-me.bat” file.
  3. You will be prompted to confirm the auto-detected models location. In most situations, you should be able to just enter “Y”
  4. Follow the on-screen prompts to login to TopazLabs.com and enter your VEAI options
  5. VEAI will run on your files
  6. Once complete you can either exit the window, or type additional commands (see Advanced Usage)

Caveats

  • The veai_up filter is only for upscaling videos.
    • Use yadif filter before veai_up for using dione models to deinterlace videos.
    • A new filter for frame interpolation will be added soon.

Advanced Usage

  • If you have an existing models folder, you may select it by setting the VEAI_MODEL_DIR setting in your system environment variables. If you do not already have downloaded models in this folder, you will need to copy the model JSON files from the download into this folder. It will then be detected by run-me.bat
  • After run-me.bat finishes, you can execute additional VEAI sessions by running FFmpeg. See the end of run-me.bat for an example.
    • As an example: ffmpeg -hide_banner -i "input.mp4" -vf veai_up="scale=2:model=amq-12" "input-2x.mp4" would upscale input by 2x using AMQ 12, saving the output to input-2x.mp4

We would appreciate it if you could focus on the following areas for this initial test:

  • Quality of output
  • Ability to run multiple commands simultaneously
  • General performance

Note: FFmpeg is licensed under the GNU Lesser General Public License version 2.1 or later (LGPL v2.1+). A copy of this license can be found here.

7 Likes

Just did a first test using the demo command line provided.
test on a 720p 29.97 file using artemis medium quality. source of video : youtube. video cropped by myself at the source.
video : concert filmed not professionnally by one camera.
and comparing with 2.6.3.b2 beta.

quality of output : Bad for now. issue in the background like if there is hug decrase of color, and in front person has some weird grid effects on it. the same video with the same setting in 2.6.3.b2 run fine, with correct quality. certainly other features are added while processed in VEAI, and not or not yet or don’t know how to add them yet in the ffmpeg commande line. so just letting a first comment, but it’s certainly normal. I can provide input and output video if necessary.

all the best to the team and thanks for this hard work. the whole community is i’m pretty sure of that , certainly very excited about this new release !

1 Like

It’s not allowing spaces anywhere in the input path or filename, even if the entire thing is surrounded by quotes. The error says “E:\Video\Video” No such file or directory. (that path is truncated at the first space).

Can you email me the files and the model used.

Try running it directly from the directly by typing the following:

1 Like

I will be testing this very soon thank you. What is the expected behavior for chaining additional filters in terms of precedence? For exemple, using -vf crop, -vf fps or -vf scale are VEAI filters running after, or before built-in filters?

So far as I’ve tried, the CLI is, pardon me, completely useless. Can’t select libx264 codec through -c:v and -crf flag is not supported = no control over encoding and impossible to compare the quality of the result to the result of the application. Why remove most of the features from ffmpeg, is this for testing purposes? Sadly it’s impossible to use the same encoding parameters as the one from the application, so major issue here.

Processing speed using ahq11 scale 2 was 0.13x (about 4 fps), same as using the GUI, so that’s fine at least.

Okay, tried that. First time, it picked up an ffmpeg from elsewhere on my system, so I had to add the path to the VEAI ffmpeg. That got me further, but resulted in this:

Authentication Failure: login to your account using the login tool
[Parsed_veai_up_0 @ 0000029E7F8A6E40] Failed to configure output pad on Parsed_veai_up_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0

I did go to the veai ffmpeg folder and verified that I am logged in, but it can’t seem to authenticate me if I run it from outside that folder.

I’m now going to try moving a video file into the veai ffmpeg folder and see what happens.

First speed test with the same input file (640x480 fps=23.976 frames=1000) vs v2.6.2

model : GAIA-HQ5X2 , output : uncompressed 8 bits TIFF

CPU : AMD Threadripper 1950X
GPU : NVIDIA RTX 3090

V2.6.2 total time = 1m37s = 97 seconds
veai-ffmpeg-3.0.0.0a total time = 1m31s = 91 seconds

Interpolating to an hour of rendering this would save about 3.5 minutes per hour on the new version.

First the new VEAI skips the frame 0 and only 999 files have beeen processed
Then the outputs are differents despite the same model and uncompressed output.
VEAI 3.0a seems having a gamma shift in the shadows making them brighter so it looks washed out compared to v2.6 and the original file. Also the image looks more noisy and less detailed.
So there is not even a discussion V2.6 produces by far a better output.

Question : Why your ffmpeg built doesn’t support Avisynth inputs when other generals FFmpeg builts do ?

D:\veai-ffmpeg-3.0.0.0a>ffmpeg -hide_banner -i "I:\t0.avs" -vf veai_up="scale=2:model=ghq-5" "input-2x.mp4"
[mpegts @ 000001BA45737780] Format mpegts detected only with low score of 2, misdetection possible!
[mpegts @ 000001BA45737780] Could not detect TS packet size, defaulting to non-FEC/DVHS
Input #0, mpegts, from 'I:\t0.avs':
  Duration: N/A, bitrate: N/A
Output #0, mp4, to 'input-2x.mp4':
Output file #0 does not contain any stream

And on my FFmpeg installed built it works OK (ffmpeg version 4.4.1-full_build-www.gyan.dev)

Input #0, avisynth, from 'I:\t0.avs':
  Duration: 00:12:08.63, start: 0.000000, bitrate: 0 kb/s
  Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 640x480, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc

The proteus-auto-1 model seems to have an error in the json file and will not work from command line.

ghq-5 does work - 1.9 fps, W6800, 7239 GB Memory Load -Very high GPU Load.

1080p to 4K.

The output Quality is very bad, Video is very strong compressed.


following error belongs to “ahq-12”


Stream mapping:
Stream #0:0#0:0 (h264 (native) → mpeg4 (native))
Stream #0:1#0:1 (aac (native) → aac (native))
Press [q] to stop, [?] for help
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1BB5040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1BCC400] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1BF5B80] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1C2DD00] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1C60400] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1C6FE40] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1CBED40] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1CE1000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1CFB940] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1D5BE40] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1D68E00] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF23BD400] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF23EA400] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2413840] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2422700] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF245CA40] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF24A6E00] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF24B3DC0] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF24CB200] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2544BC0] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2571B80] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF257EB80] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF258BB40] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF25B8B40] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF25C5B40] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF25F2B00] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF25FFB00] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF26A2040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF26AF000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF26BC000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF26F9000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2705FC0] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF27B1040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF27BE040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF27CB000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF27D8000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF27E4FC0] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2833040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2840000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF284D000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2859FC0] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF28A8040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF28B5000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2916040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2943040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF2950000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF299E040] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF29AB000] No accelerated colorspace conversion found from yuv420p to bgr48le.
[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF29B8000] No accelerated colorspace conversion found from yuv420p to bgr48le.
Invalid value ahq-12 for model, model should be in the following list:
aaa-9 : Artemis Aliased & Moire v9
ahq-11 : Artemis High Quality v11
alq-12 : Artemis Low Quality v12
alqs-1 : Artemis Strong Dehalo v1
amq-12 : Artemis Medium Quality v12
amqs-1 : Artemis Dehalo v1
chr-1 : Chronos Slo-Mo / FPS Conversion v1
ddv-2 : Dione Interlaced DV v2
dtd-3 : Dione Interlaced Robust v3
dtds-1 : Dione Interlaced Robust Dehalo v1
dtv-3 : Dione Interlaced TV v3
dtvs-1 : Dione Interlaced Dehalo v1
gcg-5 : Gaia Computer Graphics v5
ghq-5 : Gaia High Quality v5
prap-1 : ERR v1
prob-1 : Proteus 6-Parameter v1
thd-3 : Theia Fine Tune Detail v3
thf-4 : Theia Fine Tune Fidelity v4
[Parsed_veai_up_0 @ 0000022EEBBE7FC0] Failed to configure output pad on Parsed_veai_up_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
[aac @ 0000022EEB670AC0] Qavg: 2153.880
[aac @ 0000022EEB670AC0] 2 frames left in the queue on closing
Conversion failed!


If you are on windows you better add as said in the introducing message, VEAI_MODEL_DIR setting in your system environment variables pointing to your existing model path, and then no need to re-download the models. But your error indicates a possible firewall issue. I had it too first and then i realized that the models have to be redownload on the models folder. So adding the environment variable skip to redownload the models.
It will just ask again the next time your login/password to create the “auth.tpz” file on your existing models folder.

I tried same file (~1500 frames) 3x with different processing models. All 3 crashed after ~400frames processed with “ffmpeg.exe” failure

got this message as well :

[swscaler @ 0000022EF1AD9640] [swscaler @ 0000022EF1BB5040] No accelerated colorspace conversion found from yuv420p to bgr48le.

try a different model, ghq-5 workend for me.

but the upscal worked , even if it gave a bad picture result. just sent the videos to suraj.

1 Like

I hadn’t even gotten around to trying AVS scripting yet considering the issues I already talked about but I’d like to point out that this is another big issue if AVS scripts are not supported. It’s puzzling considering the VEAI supports AVS input too. I think this is an issue with the fork of ffmpeg the team has used, they built it with most features turned off.

I have a feeling doing that might break the two existing VEAI products I already have, the latest release and the latest beta, so I’m not going to put an environment variable in at this time.

@gregory.maddra does command line accept prorez?