Jest to krótki przewodnik dla HLS strumieniowe z dowolnego pliku wejściowego lub strumienia:
śledzę podejścia user1390208, więc używam FFMPEG tylko do wytworzenia strumienia RTMP co mój serwer odbiera następnie dostarczyć HLS. Zamiast Unreal/Wowza/Adobe używam darmowego serwera nginx z modułem rtmp, który jest dość łatwy w konfiguracji. Oto, jak to zrobić w skrócie: Any input file or stream -> ffmpeg -> rtmp -> nginx server -> HLS -> Client
lub bardziej szczegółowe:
wejściowy plik wideo lub strumień (http, rtmp, cokolwiek) -> ffmpeg transkoduje na żywo do x.264 + aac, wyjścia do rtmp -> nginx pobiera rtmp i wyświetla HLS użytkownikowi (klientowi). Po stronie klienta można użyć VLC lub cokolwiek innego i połączyć się z plikiem .m3u8 dostarczonym przez nginx.
- Podążyłem za instrukcją instalacji dla nginx this.
- This to mój plik konfiguracyjny nginx.
ten sposób używam ffmpeg przekodować mój plik wejściowy do RTMP: (! .mkv jest 1080p z dźwiękiem 5.1, w zależności od danych wejściowych, należy użyć niższych bitrate)
ffmpeg -re -i mydirectory/myfile.mkv -c:v libx264 -b:v 5M -pix_fmt yuv420p -c:a:0 libfdk_aac -b:a:0 480k -f flv rtmp://localhost:12345/hls/mystream;
Skąd masz strumień rtmp?
- Plik? Wtedy możesz użyć dokładnie mojego podejścia.
Dowolny serwer X ze strumieniem Y? Następnie trzeba zmienić polecenie ffmpeg do:
ffmpeg -re -i rtmp://theServerX/yourStreamY -c:v libx264 -b:v 5M -pix_fmt yuv420p -c:a:0 libfdk_aac -b:a:0 480k -f flv rtmp://localhost:12345/hls/mystream;
lub jeśli strumień rtmp jest już H.264/AAC zakodowane, można spróbować użyć opcji copy
w ffmpeg do przesyłania zawartości bezpośrednio do nginx.
Jak widać w moim pliku config nginx:
- Serwer rtmp ma "wniosek" o nazwie "HLS". Jest to część opisująca, gdzie nginx nasłuchuje strumienia rtmp ffmpeg i dlatego strumienie ffmpeg do
rtmp://localhost:12345/hls/mystream;
- Mój serwer http ma
location /hls
. Oznacza to, że w VLC mogę połączyć się z http://myServer:80/hls/mystream.m3u8
, aby uzyskać dostęp do strumienia HLS.
Czy wszystko jest jasne? Szczęśliwy streaming!
czy ten strumień http działa dla iPhone'a i Androida ????? –
To bardzo przydatna odpowiedź. – scaryguy
Świetna odpowiedź! Dokładnie to, czego potrzebowałem. –