-f flv (RTMP Live Streaming) în FFmpeg

Transmite fluxul video și audio în timp real către servere RTMP (YouTube Live, Twitch, Kick, Facebook).

Sintaxă
ffmpeg -re -i video.mp4 -c:v libx264 -b:v 4500k -maxrate 4500k -bufsize 9000k -c:a aac -b:a 160k -f flv rtmp://a.rtmp.youtube.com/live2/cheie-secreta

Ce face -f flv (RTMP Live Streaming)

Muxerul -f flv împachetează fluxul multimedia în formatul Flash Video cerut de protocolul RTMP (Real-Time Messaging Protocol), standardul universal de ingestie folosit de toate marile platforme de streaming.

Pentru a emite un stream stabil fără erori de conexiune, se folosește întotdeauna codare H.264 cu profil main sau high, sunet AAC la 44.1 sau 48 kHz, GOP fix de 2 secunde (-g 60 la 30 fps) și parametrul -re dacă sursa este un fișier local.

Este comanda aflată în spatele multor unelte precum OBS Studio pentru broadcast automatizat.

Opțiuni și argumente

Opțiune / Parametru Descriere
-f flv Formatul de container cerut de protocolul RTMP.
rtmp://adresa/live/cheie URL-ul serverului de ingestie furnizat de platforma de streaming.

Ce returnează

Conectarea socket-ului TCP și trimiterea continuă de cadre în timp real.

Exemple

Exemplul 1: Transmisie live pe YouTube cu rată fixă de 5 Mbps

Configurează parametrii VBV pentru o transmisie fără sacadări.

ffmpeg -re -i emisiune.mp4 -c:v libx264 -preset veryfast -b:v 5000k -maxrate 5000k -bufsize 10000k -g 60 -c:a aac -b:a 160k -f flv "rtmp://a.rtmp.youtube.com/live2/XXXX-XXXX-XXXX-XXXX"

Ieșire în terminal

Output #0, flv, to 'rtmp://a.rtmp.youtube.com/live2/XXXX-XXXX-XXXX-XXXX':
frame=   450 fps= 30 q=21.0 size=    9210kB time=00:00:15.00 bitrate=5028.1kbits/s speed=1.0x

Greșeli frecvente

  • Omiterea ghilimelelor în jurul adresei RTMP când cheia conține caractere speciale sau ampersand (&).
  • Încercarea de a trimite codecuri incompatibile cu containerul FLV (cum ar fi video VP9 sau subtitrări text).

Comenzi înrudite