Thread: VirtualDub2
View Single Post
Old 14th May 2019, 09:26   #850  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Quote:
Originally Posted by shekh View Post
> Could we have ProRes presets updated so they better match official profiles

Any hint how to do this? proresenc_kostya.c has prores_quant_matrices, do you mean to change that?

> -metadata:s "encoder=Apple ProRes 422 (HQ)" -vendor apl0 -movflags write_colr -c:v prores_ks -flags "+bitexact"

From this I understand:
-movflags write_colr: ok
-vendor apl0: ok
"encoder=Apple ProRes 422 (HQ)": can you help with all possible strings?
-c:v prores_ks: this is what I used anyway
-flags "+bitexact": can you provide any background on what it means?

> -vf "setfield=1, fieldorder=tff" -top 1 -flags "+ildct+ilme+bitexact"

setfield: ok
fieldorder: ok
ildct+ilme: ok
top: as I read it belongs to chroma location which can have 7 different values. This is disturbing option.
I think it is better if it is understood by the pipeline. Wondering how big is this problem? Can you have in practice only 422-top or anything else?
Different profiles HQ, LT etc are basically encodes with specific Q level.
You control it with -profile:v flag. Options are here:
https://ffmpeg.org/ffmpeg-codecs.html#ProRes

If you specify both: profile and Q then Q overwrites profile (so for official profiles we want just profile flag). Q allows you to make any quality ProRes files up to almost lossless, but this is outside Apple official profiles (still useful to have as advanced mode). ProRes_ks better simulates Apple one as it has bitrate restrictions. Ffmpeg prores uses higher bitrate which provides bit better quality, but it rather poorly simulates official encoder. Maybe you can have both as an option. In this case use number for profiles as text naming doesn't work for prores encoder: [0 - apco, 1 - apcs, 2 - apcn (default), 3 - apch, 4 - ap4h, 5 - ap4x]. Apco is proxy profile, apcs is LT.

Strings for all official naming:

Proxy profile="Apple ProRes 422 Proxy"
LT profile="Apple ProRes 422 LT"
Standard profile= "Apple ProRes 422"
HQ profile= "Apple ProRes 422 HQ"
4444 profile="Apple ProRes 4444"
4444QX profile="Apple ProRes 4444 XQ"

bitexact will remove Software=Lavfxxxx metadata in MOV container. Can be useful, but not essential.

top is not about chroma location, but field order, so it basically tells ffmpeg to set field order flagging. It's somehow the same as fieldorder=tff and may be redundant, but it's safer to have it as well. Both should be aligned and have tff(1) as default (bff is needed very rarely).

Least note- color tags are written by the default based on resolution/fps. You can force them as well using correct flagging: https://trac.ffmpeg.org/wiki/colorspace. Default behaviour is fairly good though (at least for HD, PAL/NTSC SD formats).

Last edited by kolak; 14th May 2019 at 10:46.
kolak is offline   Reply With Quote