Hi. I’m testing out the Topaz tools on a Windows 11 Virtual Machine inside Linux Mint. I run the Juice service to relay GPU jobs from the VM to the host OS in control of the GPU, and this runs fine with the Topaz Photo AI.
Just testing so far, I open Powershell in the Windows VM, cd to C:\Program Files\Topaz Labs LLC\Topaz Photo AI and (with the path to jucify being set in the Path variable) run
juicify ‘.\Topaz Photo AI.exe’
And voila, my room gets hot testing Photo AI on old images from the archive without even really touching the CPU.
Video AI, however, is another matter.
Trying the same trick, running
juicify ‘.\Topaz Video AI.exe’
from the C:\Program Files\Topaz Labs LLC\Topaz Video AI\ folder is another matter.
First issue is that while I can log in and register the app just fine without the juicify container, Video AI will neither recognize an already registered login nor open a web browser so that I can register the app anew.
And while I’m not surprised that Video AI will throw an error when it cant find a GPU in a VM without the juicify container, the redirection-of-GPU-tasks-over-network-to-the-host-OS magic that juicify normally does can throw an error here. Video playback works fine, and the PowerMizer in the NVIDIA setting panel for my RTX 4090 shows that the GPU really works, but as soon as I try to do a preview (such as here, using the NYX denoiser on H265 video from a Sony FX30 having captured northern lights in slow motion, ISO cranked up to max), you get the error I have appended in the logs here.
Since this works well in Photo AI and I suppose you don’t have wildly different setups for these apps, I hope it shouldn’t be too hard to fix? logsForSupport.zip (89.7 KB)
That’s an interesting question.
I have downloaded the ffmpeg 6.0 fulll release build from gyan.dev, installed and added to path, and tried to encode these same video files to av1. Using the libaom-av1 encoder with the native h265 decoder seems to work fine, it’s just so unbearably slow that I never bothered to finish. Both when using the juicify container and not.
Trying to engage the av1_nvenc encoder, however, throws an error:
[av1_nvenc @ 0000025ed351c340] Cannot load cuGetErrorString
exit status 0xc0000005
It took some while before I got ffmpeg 6.0 with nvidia support compiled and working on the Linux host as well, but the error message definitely belongs to the windows setup.
ffmpeg -i FX30a_20230323_0209.MP4 -pix_fmt yuv420p -c:v av1_nvenc FX30a_20230323_0209.mkv
works fine on the Linux host but
juicify ffmpeg -i FX30a_20230323_0209.MP4 -pix_fmt yuv420p -c:v av1_nvenc FX30a_20230323_0209.mkv
on the Windows client does not. Perhaps I should contact the Juice developer?
Ah, I didn’t think of that.
Have tested now, and the result is essentially the same. They’re both fairly recent copies of ffmpeg, so they behave pretty much the same. A little more chatty, that’s all:
[av1_nvenc @ 0000022B19E460C0] Cannot load cuGetErrorString
[vost#0:0/av1_nvenc @ 0000022B19E45E00] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.
Error while filtering: Operation not permitted
[out#0/matroska @ 0000022B19C49D80] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=N/A bitrate=N/A speed=N/A
Conversion failed!
exit status 0xffffffff
I have raised an issue over at the Juice site, and hope they can fix the issue there as it’s pretty common to use ffmpeg in the backroung this way.