I’ve written code to do encoding with NVENC. The same code runs for both H265 and AV1, i.e. frameRateNum and frameRateDen are the same (60 and 1 respectively), for 60 fps. I’m writing out 60 frame GOPs, i.e. 1 second of video per file.
When I ffprobe each GOP, the H265 encoded files give:
Video: hevc (Main 10), yuv420p10le(tv), 1280x720, 60 fps, 60 tbr, 1200k tbn
but the AV1 encoded files give:
Video: av1 (Main), yuv420p10le(tv), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn
For some reason the AV1 is showing as 25 fps when I explicitly set it to 60. What mistake have I made? Setting enableTimingInfo in the av1Config structure doesn’t make any difference and I can’t find any other parameter. Is this just a quirk of ffmpeg or is 25 fps somehow baked into the stream?
Note: When I count packets with ffprobe, using the following I get 60 in both cases. I suppose this is an issue with ffmpeg/ffprobe and not my encoding?
ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 “1.av1”