Hi,

I am trying to investigate GoP size changes based on scene changes in video.

i've used x265 to encode a y4m (raw) file to hevc bitstream. A standard soccer/football match : It has scene changes, based on which camera is being used (field camera perspective, close-ups, etc). So I was hoping to get highly varying scene changes.

I used this command:

./x265 --input ../../../../ffmpeg_work/vids/originals/FootballMatch.y4m -F 0 -o FootballMatch_x265.bin --csv FootballMatch_x265.csv --csv-log-level 2

// -- more info --

y4m [info]: 312x176 fps 25/1 i420p8 frames 0 - 15500 of 15501
raw [info]: output file: FootballMatch_BarcelonaRealMadrid_312_x265.bin
x265 [info]: HEVC encoder version 1.7+431-f63273fa3137
x265 [info]: build info [Linux][GCC 4.8.4][64 bit] 8bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
x265 [info]: Main profile, Level-2 (Main tier)
x265 [info]: Thread pool created using 4 threads
x265 [info]: frame threads / pool features : 2 / wpp(3 rows)
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut : 25 / 250 / 40
x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0
x265 [info]: References / ref-limit cu / depth : 3 / 0 / 0
x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=0.30 signhide tmvp strong-intra-smoothing
x265 [info]: tools: deblock sao
x265 [info]: frame I: 2, Avg QP:27.50 kb/s: 919.70
x265 [info]: frame P: 82, Avg QP:29.56 kb/s: 170.33
x265 [info]: frame B: 195, Avg QP:35.66 kb/s: 27.40
x265 [info]: Weighted P-Frames: Y:1.2% UV:1.2%
x265 [info]: consecutive B-frames: 9.3% 18.6% 12.8% 44.2% 15.1%


// ---------


So very basic, using only the defaults.

I then investgate the csv file, and check the I-SLICE to I-SLICE frame gap (I assume I-Slice --> I-Slice is a GOP)

They all seem around 246 to 252 frames per GoP. I was hoping to get drastic GoP changes : e.g. GoP sizes 25, 36, 100 .. 250 etc.

Any thoughts why the difference are so small ?

Many thanks