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
-f hls (HTTP Live Streaming): Generează playlist-ul m3u8 și segmentele video necesare pentru streaming adaptiv pe web și iOS/Android.libx264 (Codec H.264 / AVC): Standardul universal de compresie video H.264, compatibil cu 99.9% din toate dispozitivele și browserele.-ss (Seek / Punct de start): Sare direct la un moment specific din fișier (fast seek înainte de -i vs frame-accurate seek după -i).