Ce face -f hls (HTTP Live Streaming)
HTTP Live Streaming (HLS) este protocolul universal dezvoltat de Apple și adoptat de întreaga industrie pentru livrarea de conținut video la cerere (VOD) sau live pe web.
În loc să descarce un fișier uriaș MP4, browserul sau aplicația mobilă descarcă un fișier text playlist (.m3u8) și cere succesiv mici fragmente de 4–6 secunde (.ts sau .m4s).
Permite comutarea automată a rezoluției în funcție de viteza conexiunii de internet a vizitatorului (Adaptive Bitrate Streaming).
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-f hls |
Activează muxerul HLS. |
-hls_time <secunde> |
Durata țintă a fiecărui segment video (recomandat: 4–6 secunde). |
-hls_playlist_type vod|event |
Tipul playlistului (vod = conținut complet la cerere). |
-hls_segment_filename <tipar> |
Numele segmentelor generate (ex: segment_%03d.ts). |
Ce returnează
Generarea fișierului index .m3u8 și a colecției de segmente video pe disc.
Exemple
Exemplul 1: Pregătirea unui videoclip pentru playerul web Video.js sau Hls.js
Segmentează videoclipul în calupuri de 6 secunde cu playlist VOD complet.
ffmpeg -i film.mp4 -c:v libx264 -crf 22 -c:a aac -b:a 128k -f hls -hls_time 6 -hls_playlist_type vod playlist.m3u8
Ieșire în terminal
[hls @ 0x14800] Opening 'playlist0.ts' for writing
[hls @ 0x14800] Opening 'playlist1.ts' for writing
[hls @ 0x14800] Opening 'playlist.m3u8' for writing
Greșeli frecvente
- Setarea unui hls_time care nu este multiplu al intervalului de cadre cheie (GOP), provocând segmente cu durate inegale.
- Omiterea parametrului -hls_playlist_type vod pentru fișiere pre-înregistrate, determinând FFmpeg să creeze un playlist live glisant care șterge segmentele vechi.
Comenzi înrudite
-g și -keyint_min (Interval GOP / Cadre cheie): Stabilește distanța maximă și minimă dintre cadrele cheie I-Frames (Group of Pictures).Segmentare automată (-f segment): Împarte automat un fișier video lung în segmente egale de timp fără re-encodare.-movflags +faststart (Web Streaming): Mută indexul moov la începutul fișierului MP4 pentru a permite redarea instantanee în browser înainte de descărcare.