Closed birdie-github closed 4 months ago
ffmpeg -i *webm -r 60 -f yuv4mpegpipe -hide_banner -loglevel error - | ./vvencapp --y4m -i - --preset slower -q 31 -o y4m.266 vvenc [info]: Input File : - (y4m) vvenc [info]: Bitstream File : y4m.266 vvenc [info]: Real Format : 3840x2160 yuv420p 60 Hz SDR vvenc [info]: Frames : encode 0 frame vvenc [info]: Internal format : 3840x2160 60 Hz SDR vvenc [info]: Threads : 8 (parallel frames: 4) vvenc [info]: Rate control : QP 31 vvenc [info]: Perceptual optimization : Enabled vvenc [info]: Intra period (keyframe) : 64 vvenc [info]: Decoding refresh type : CRA
Why does
vvenc
default to 64 frames keyframe interval instead of you know every second, i.e. 60?
If not instructed differently, vvenc allocates an intra frame at integer multiples of GOP size, which is 32. This is for coding efficiency reasons. If you want to have intra frames at frame-exact intervals, use eg. -ip 60
. Otherwise if you use -rs 1
(specifying intra period in seconds), it is an approximate and optimized for maximal efficiency.
Won't it make fast seeking problematic?
No, this is not at all a problem for noone.
And then weirdly
vvenc
prints stats every 60 frames regardless. Won't it make more sense to print them every 64 frames?
The stats are printed every second of input video. Its only 60 frames for 60fps content, would be 24 frames for 24fps content.
Why does
vvenc
default to 64 frames keyframe interval instead of you know every second, i.e. 60? Won't it make fast seeking problematic?And then weirdly
vvenc
prints stats every 60 frames regardless. Won't it make more sense to print them every 64 frames?