Zum Inhalt

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).

Praxis-Guide: FFmpeg HLS Video Streaming & DASH Packaging

HTTP Live Streaming (HLS) teilt Videos in kleine .ts / .m4s Abschnitte auf und generiert eine .m3u8 Playlist für adaptive Bitraten-Wiedergabe im Web (HTML5 Video Player).


graph LR
    Input["🎬 Master MP4 Video"] --> FFmpeg["⚡ FFmpeg HLS Encoder"]
    FFmpeg --> Segment1["📹 stream_720p.m3u8 + .ts Segmenten"]
    FFmpeg --> Segment2["📹 stream_1080p.m3u8 + .ts Segmenten"]
    FFmpeg --> MasterPlaylist["📜 master.m3u8 Playlist"]
    MasterPlaylist --> Player["🌐 Web Player (hls.js / Video.js)"]

⚡ 1. HLS-Playlist aus MP4 generieren

ffmpeg -i input.mp4 \
  -codec:v libx264 -crf 21 -preset fast \
  -codec:a aaa -b:a 128k \
  -hls_time 6 \
  -hls_playlist_type vod \
  -hls_segment_filename "segment_%03d.ts" \
  stream.m3u8

🌐 2. Nginx Konfiguration für HLS-Streaming

In /etc/nginx/conf.d/hls.conf:

server {
    listen 80;
    server_name media.beispiel.de;

    location /hls/ {
        alias /var/www/hls/;

        # HLS CORS-Header für Web-Player erlauben
        add_header Access-Control-Allow-Origin *;

        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
    }
}

🔗 Verwandte Themen

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).