-f hls (HTTP Live Streaming) în FFmpeg

Generează playlist-ul m3u8 și segmentele video necesare pentru streaming adaptiv pe web și iOS/Android.

Sintaxă
ffmpeg -i intrare.mp4 -c:v libx264 -c:a aac -f hls -hls_time 6 -hls_playlist_type vod -hls_segment_filename "segment_%03d.ts" stream.m3u8

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