Prores4444 missing from Prores

I have a 10bpc 4:4:4 prores video without alpha that I’d like to upscale and export while maintaining maximum color fidelity, but there is no prores4444 output option. How come?
Using Topaz Video AI 5.3.5 on Windows 11 with RTX 4090.

ProRes 4444 is not available on Windows machines, you will only be able to go up to 422 HQ.

1 Like

Find C:\ProgramData\Topaz Labs LLC\Topaz Video AI\models\video-encoders.json
and insert:

{
“id”: “prores-444-xq-win”,
“encoder”: “ProRes”,
“profile”: “4444 XQ”,
“allowsAlpha”: 1,
“ffmpegOpts”: “-c:v prores_ks -profile:v 5 -pix_fmt yuva444p10le”,
“ext”: [
“mov”
],
“os”: “windows|linux”,
“minSize”: [1,1],
“maxSize”: [16386,16386],
“maxBitDepth”: 10,
“doNotScaleFullColorRange”: “transcode”
},

And then MediaInfo should tell you something like this:
Format: ProRes
Format version: Version 1
Format profile: 4444 XQ
Codec ID: ap4x
Chroma subsampling: 4:4:4

1 Like

Wrong, ProRes is available up to 4444 12b through ffmpeg and 4444 XQ through dedicated plugin

https://trac.ffmpeg.org/wiki/Encode/VFX

If “allowsAlpha”: 0 you won’t get the Alpha channel, so this will lead to a fake 4444
“allowsAlpha”:1 is correct for that while prores_ks is best codec and profil 4 to 5 are correct to get Alpha

1 Like

Our custom version of FFMPEG does not have it on Windows systems currently is what I was referring to. Sorry for the confusion.

1 Like

Oh ok ! So you did compile a custom version of ffmpeg for specific TVAI purpose right ?

Yes, we run a custom version under the hood for TVAI.

Thanks for being transparent Kyle

Now that I know, talking developer to developer, I strongly suspect that the TVAI ffmpeg core is the cause of many bugs

Reading the logs speaks of CUDA crashes, but also unexpected memory leaks, core failures, etc.

  • I had huge problems using TVAI ffmpeg with FFV1, while I had no problems with the full implementation of the latest ffmpeg
  • Several users complained about problems with ProRes
  • AV1 is almost unusable due to the lack of many useful parameters

It seems that only H265 Main10 works almost correctly

If the input is correct, ffmpeg publishes an ITU-R compliant file format, but this only happens when you set all the necessary optional parameters to “hard”, leaving them as default leads to a broken file inexorably. I’m afraid this is common practice

So you may also know that ffmpeg is under GPL license. If you modify it, you must provide us with the source files or at least make.bat so that we can verify the validity of its use, this in case you would make commercial use of it, which is the case of TVAI

Can you provide us with the source code of your ffmpeg implementation please?

Kind regards

As partial workaround you can do what I do since my processing workflow takes output from Topaz AI and into Vegas Movie Studio for actual editing. The format I need / want for Vegas Movie Studio is ProRes 4444. So my workaround (which actually doesn’t add much time in my case because I am using two machines so there is time spend with file transfers) is to output from Topaz in FFV1 format (lossless 444 10 bit in AVI container).

And then I have written a simple script to convert and copy at the same time that FFV1 into ProRes 444 10 bit.

The FFmpeg command you need for specific transcode would be:

ffmpeg -i input.avi -c:v prores_ks -profile:v 4 -vendor apl0 -bits_per_mb 8000 -pix_fmt yuv444p10le -an output.mov

where input.avi is your Topaz FFV1 output file and output.mov is the converted file in ProRes format.

Through (failed) experiments I have found that using the AVI container is necessary for the Topaz output in this case, otherwise if you try to write script to do multiple files as I have done, you will find the script stalls at the end of each file. But so long as you use the AVI container, a script for multiple files at ones works like a breeze.

1 Like

Very interesting, thanks for return and investigations.

I’ve got many issues using MKV container with FFV1, never thought that old AVI container would help

Checking with the team to get what they can share for you.

I’ve used mov container with FFV for years with no problems.

I’ve shared tons of info with FFV1 contained in MKV, no return since

Ok, so FFV1 works well with AVI and MOV container, I used the only one that cause problem (MKV) :confused:

As I mentioned, the MOV container in my case worked perfectly fine if I was just doing a single line command to transcode that MOV output to anything else. But I found that as soon as I tried to convert multiple FFV1 MOV files in succession using FFmpeg, the conversion would halt at the end of each file for a very long time. With the AVI container, however, each new file conversion would begin as soon as the previous one was done. This was when using a for /f do loop.

In my experience there does not seem to be any hard and fast rule as to what containers work in what situations - it is matter of trial and error. For example, I cannot use an MKV container for outputting from Lossless Cut into Hybrid for QTGMC deinterlacing. If I do that, Hybrid completely loses the plot and reports an impossible frame rate. That impossible frame rate then carries across into Topaz. For that, I have to use a MOV container into Hybrid but Hybrid needs to output an AVI container.

In my workflow I use MKV, AVI, MOV and MP4 containers not because I cannot settle on one or the other but because at each step, a particular container is the only one that will actually work properly!

I understand this, but the MKV container should work welle with a FFV1 codec level 3
I did check and it is fully compatible, where as using TVAI’s ffmpeg encoder it turns into tons of errors

They should focus on it, but it seems they did not.

I’m a little disillusioned with having to slalom between annoying codecs to get a “decent” file.

When I see the main TVAI window position bug back in latest alpha, I can’t imagine the mess in the code.

Thank you @Mr.YoloSwagger this seems to have worked! (I use Prores4444 instead of 4444 XQ, and MediaInfo is reporting the info correctly).

What version of Topaz AI are you using? I ask because that ProRes 4444 trick seems to have been blocked with every version I have ever used (which was version 4 onwards) in that it simply ignores the entries and still only offers ProRes 422.