-g și -keyint_min (Interval GOP / Cadre cheie) în FFmpeg

Stabilește distanța maximă și minimă dintre cadrele cheie I-Frames (Group of Pictures).

Sintaxă
ffmpeg -i intrare.mp4 -c:v libx264 -g 60 -keyint_min 60 -sc_threshold 0 iesire.mp4

Ce face -g și -keyint_min (Interval GOP / Cadre cheie)

Un videoclip comprimat este format din trei tipuri de cadre: I-frames (cadre cheie complete), P-frames și B-frames (cadre parțiale care stochează doar diferențele de mișcare). Un vizitator poate căuta (seek) sau începe redarea doar la un cadru cheie I-frame.

Opțiunea -g stabilește dimensiunea maximă a grupului de cadre (GOP). De exemplu, la 30 fps, o valoare -g 60 garantează inserarea unui cadru cheie cel puțin o dată la fiecare 2 secunde.

Pentru streaming adaptiv HLS sau DASH, inserarea cadrelor cheie la intervale fixe și predictibile (GOP închis) este obligatorie pentru ca segmentele video (.ts / .m4s) să poată fi comutate fără cusur între rezoluții.

Opțiuni și argumente

Opțiune / Parametru Descriere
-g <număr> Numărul maxim de cadre dintre două cadre cheie I-Frame.
-keyint_min <număr> Distanța minimă dintre cadrele cheie.
-sc_threshold 0 Dezactivează inserarea automată de cadre cheie la schimbarea scenelor (GOP fix).

Ce returnează

Alinierea structurii temporale a cadrelor I/P/B.

Exemple

Exemplul 1: Configurarea unui GOP fix de 2 secunde pentru streaming HLS (la 30 fps)

Generează cadre cheie regulate ideale pentru segmentare.

ffmpeg -i intrare.mov -c:v libx264 -g 60 -keyint_min 60 -sc_threshold 0 hls_ready.mp4

Ieșire în terminal

frame= 1800 fps= 48 q=23.0 Lsize=   24500kB time=00:01:00.00 bitrate=3345.6kbits/s speed=1.6x

Greșeli frecvente

  • Setarea unui interval GOP uriaș (ex: -g 600 la 30 fps = 20 secunde), ceea ce va face căutarea (scrubbing/seek) în player extrem de lentă și imprecisă.
  • Omiterea alinierii GOP pe profiluri HLS multi-bitrate, ducând la desincronizări la schimbarea automată a calității.

Comenzi înrudite