Přejít na obsah
Callaba

Publikujte RTMP stream pomocí FFmpeg a ověřte jej

Na této stránce

FFmpeg může publikovat testovací zdroj RTMP do přiděleného koncového bodu, ale dokončení příkazu není výsledkem akceptace. Použijte známý vstup, chraňte URL a klíč a poté ověřte aktivitu publikujícího, dekódovaná média a zvolenou cestu přijímače.

Nejprve zvolte režim přístupu

V řízeném režimu jsou Publisher a Receiver samostatné role na stejném nakonfigurovaném názvu streamu a mohou používat stejnou RTMP URL. V režimu Guest záměrně otevřete koncový bod a použijte neprázdný název streamu; přijímač musí použít stejný název.

Před publikováním

Získejte RTMP URL pro publikování a klíč streamu z nasazení. Skutečný klíč nevkládejte do historie shellu, tiketu ani článku. Potvrďte, že vaše sestavení FFmpeg podporuje RTMP: dokumentace protokolů FFmpeg popisuje volby protokolů; její dokumentace formátů pokrývá chování muxeru.

Command
ffmpeg -protocols | grep rtmp

Očekávaný výsledek: příkaz vypíše variantu protokolu RTMP podporovanou daným sestavením. Pokud ji nevypíše, přizpůsobte test nainstalovanému sestavení namísto předpokladu, že balíček protokol obsahuje.

Publikujte soubor v reálném čase

Command
ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f flv "rtmp://INGEST_HOST:PORT/APP/STREAM_NAME_OR_KEY"

Očekávaný výsledek: FFmpeg nadále hlásí postup snímků, místo aby soubor odeslal tak rychle, jak dovoluje úložiště. -re pro tento vymezený test čte soubor nativní rychlostí. Zástupné hodnoty nahraďte hodnotami vydanými pro listener; neměňte cestu aplikace ani klíč.

Překódujte, když to vyžaduje výstupní kontrakt

Command
ffmpeg -re -stream_loop -1 -i input.mov -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -ar 48000 -b:a 128k -f flv "rtmp://INGEST_HOST:PORT/APP/STREAM_NAME_OR_KEY"

Očekávaný výsledek: přijímač vidí nepřetržitého publikujícího s dekódovatelným videem a zvukem. Jde o příklad, nikoli univerzální předpis kódování: snímkovou frekvenci, interval GOP/klíčových snímků, datový tok, rozlišení a parametry zvuku zvolte pro skutečný přijímač a doručovací pracovní postup.

Ověřte na serveru a potom u zamýšleného výsledku

  1. Potvrďte, že RTMP Server hlásí očekávaného publikujícího a příchozí datový tok.
  2. Zkontrolujte obraz a zvuk z nakonfigurovaného přijímače nebo monitorovacího bodu.
  3. Otestujte jeden zamýšlený následný výstup: záznam, trasu nebo přehrávač v prohlížeči.
  4. Jednou proces přerušte a ověřte stav přijímače a plán obnovy.

U živého snímacího zařízení nahraďte vstup souboru jeho zdokumentovanou vstupní syntaxí FFmpeg a zachovejte stejné kontroly akceptace na straně serveru. Vyhněte se smyčkám automatického opětovného připojení, dokud nevíte, jak listener zachází s duplicitními relacemi; smyčka může zakrýt první užitečnou chybu.

Použijte protokol dodaného koncového bodu

Použijte protokol koncového bodu dodaný pro tuto úlohu. Callaba RTMP Server poskytuje listener, pravidla přístupu a přehled aktivity; prohlížení v prohlížeči používá samostatně nakonfigurovaný výstup.

Související konfigurace

Nakonfigurujte listener v Callaba RTMP Server, pro kontroly přístupu a stavu použijte příručku pro operátory nebo postupujte podle RTMP do HLS, pokud je zamýšleným výsledkem doručení do prohlížeče.

Místní diagnostický odesílatel a přijímač

Command
ffmpeg -re -f lavfi -i testsrc2=size=1280x720:rate=30 -f lavfi -i sine=frequency=1000:sample_rate=48000 -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -b:a 128k -f flv "rtmp://INGEST_HOST:PORT/APP/STREAM_NAME_OR_KEY"

Očekávaný výsledek: FFmpeg hlásí video snímky rychlostí přibližně 30 fps a jeden zvukový stream; Callaba hlásí vstupní datový tok. Hodnota GOP 60 poskytuje klíčový snímek každé dvě sekundy při 30 fps, což je praktický výchozí bod pro pracovní postup se dvousekundovými segmenty, nikoli povinné nastavení serveru.

Kopírujte až po kontrole vstupu: ffprobe -v error -show_entries stream=codec_name,codec_type -of default=nw=1 input.mp4. Tento výstup použijte k porovnání vstupního kodeku a podrobností o zvuku se zdokumentovaným kontraktem přijímače. Kopírování je rozumné pouze poté, co se shodují. U diagnostického přijímače by příkaz ffplay -fflags nobuffer "rtmp://RECEIVER_HOST:PORT/APP/STREAM_NAME_OR_KEY" měl po připojení přijímače otevřít obraz a tón. Ve zdrojích filtrů FFmpeg najdete informace o testsrc2 a sine.

Další kroky

Nakonfigurujte listener v Callaba RTMP Server a potom ověřte přístup a aktivitu v příručce pro operátory.