FFmpeg może opublikować testowe źródło RTMP w przypisanym punkcie końcowym, ale poprawne zakończenie polecenia nie jest wynikiem odbioru. Użyj znanego wejścia, chroń URL i klucz, a następnie zweryfikuj aktywność nadawcy, zdekodowane media i wybraną ścieżkę odbiornika.
Najpierw wybierz tryb dostępu
W trybie kontrolowanym Nadawca i Odbiornik to osobne role dla tej samej skonfigurowanej nazwy strumienia i mogą używać tego samego URL RTMP. W trybie Gość celowo otwórz punkt końcowy i użyj niepustej nazwy strumienia; odbiornik musi użyć tej samej nazwy.
Przed publikacją
Pobierz z wdrożenia URL publikacji RTMP i klucz strumienia. Nie wklejaj prawdziwego klucza do historii powłoki, zgłoszenia ani artykułu. Potwierdź, że użyta kompilacja FFmpeg obsługuje RTMP: dokumentacja protokołów FFmpeg opisuje opcje protokołów, a dokumentacja formatów — zachowanie multipleksera.
ffmpeg -protocols | grep rtmp
Oczekiwany wynik: polecenie wyświetla wariant protokołu RTMP obsługiwany przez tę kompilację. Jeśli go nie ma, dostosuj test do zainstalowanej kompilacji, zamiast zakładać, że pakiet zawiera ten protokół.
Publikuj plik w czasie rzeczywistym
ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f flv "rtmp://INGEST_HOST:PORT/APP/STREAM_NAME_OR_KEY"
Oczekiwany wynik: FFmpeg stale raportuje postęp klatek, zamiast wysyłać plik tak szybko, jak pozwala pamięć masowa. -re odczytuje plik z jego natywną prędkością na potrzeby tego ograniczonego testu. Zastąp symbole zastępcze wartościami wydanymi dla nasłuchującego punktu; nie zmieniaj ścieżki aplikacji ani klucza.
Transkoduj, gdy wymaga tego kontrakt wyjściowy
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"
Oczekiwany wynik: odbiornik widzi ciągłego nadawcę z dekodowalnym obrazem i dźwiękiem. To przykład, a nie uniwersalna recepta kodowania: dobierz liczbę klatek, odstęp GOP/klatek kluczowych, bitrate, rozdzielczość i parametry audio do rzeczywistego odbiornika i procesu dystrybucji.
Zweryfikuj serwer, a potem zamierzony wynik
- Potwierdź, że RTMP Server zgłasza oczekiwanego nadawcę i bitrate wejściowy.
- Sprawdź obraz i dźwięk w skonfigurowanym odbiorniku lub punkcie monitorowania.
- Przetestuj jeden zamierzony wynik końcowy: nagrywanie, trasę lub odtwarzacz przeglądarkowy.
- Jednokrotnie przerwij proces i zweryfikuj stan odbiornika oraz plan odzyskiwania.
Dla urządzenia przechwytującego na żywo zastąp wejście plikowe udokumentowaną składnią wejścia FFmpeg i zachowaj te same serwerowe kontrole odbioru. Unikaj automatycznych pętli ponownego łączenia, dopóki nie wiesz, jak nasłuchujący traktuje zduplikowane sesje; pętla może ukryć pierwszy przydatny błąd.
Użyj protokołu dostarczonego dla punktu końcowego
Użyj protokołu punktu końcowego dostarczonego dla tego zadania. Callaba RTMP Server udostępnia nasłuchujący punkt, reguły dostępu i widok aktywności; oglądanie w przeglądarce korzysta z osobno skonfigurowanego wyjścia.
Powiązana konfiguracja
Skonfiguruj nasłuchujący punkt w Callaba RTMP Server, użyj przewodnika operatora do sprawdzania dostępu i stanu albo przejdź do RTMP do HLS, jeśli zamierzonym wynikiem jest dostarczanie w przeglądarce.
Lokalny diagnostyczny nadawca i odbiornik
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"
Oczekiwany wynik: FFmpeg raportuje klatki wideo z prędkością około 30 fps i jeden strumień audio; Callaba raportuje bitrate wejściowy. Wartość GOP 60 daje klatkę kluczową co dwie sekundy przy 30 fps — to praktyczny punkt wyjścia dla procesu z segmentami dwusekundowymi, a nie wymagane ustawienie serwera.
Kopiuj dopiero po sprawdzeniu wejścia: ffprobe -v error -show_entries stream=codec_name,codec_type -of default=nw=1 input.mp4. Użyj wyniku do porównania kodeka wejściowego i szczegółów audio z udokumentowanym kontraktem odbiornika. Kopiowanie jest rozsądne tylko wtedy, gdy są zgodne. Dla diagnostycznego odbiornika polecenie ffplay -fflags nobuffer "rtmp://RECEIVER_HOST:PORT/APP/STREAM_NAME_OR_KEY" powinno otworzyć obraz i ton po połączeniu odbiornika. Informacje znajdziesz w źródłach filtrów FFmpeg o testsrc2 i sine.
Następne kroki
Skonfiguruj nasłuchujący punkt w Callaba RTMP Server, a następnie zweryfikuj dostęp i aktywność w przewodniku operatora.