Blog StreamHousestream 24/7 vps

Stream 24/7 na VPS czy zarządzana usługa w chmurze?

Stream 24/7 na VPS z FFmpeg wygląda prosto, dopóki playlista nie zacznie się od nowa, proces nie padnie w nocy albo drugi cel transmisji nie podwoi ruchu wychodzącego. Oto, z czym naprawdę wiąże się DIY i kiedy zarządzana usługa ma więcej sensu.

Około 6 min czytania

Na tej stronie

Stream 24/7 na VPS z FFmpeg jest jak najbardziej możliwy: wrzucasz filmy na wynajęty serwer, piszesz playlistę concat i zapętlasz ją na adres RTMP platformy. To działa i może być świetnym projektem do nauki. Prawdziwym kosztem jest jednak twój czas, który pochłaniają kodowanie, podnoszenie procesu po awariach, monitoring i planowanie transferu.

Oto, z czym naprawdę wiąże się DIY i kiedy zarządzana usługa lepiej wykorzysta twoje godziny.

Najważniejsze informacje

  • Podstawowa pętla FFmpeg powstaje szybko; prawdziwa praca to utrzymanie jej przy życiu przez miesiące.
  • Niezgodne liczby klatek lub znaczniki czasu mogą wywalić playlistę w trybie copy i cofnąć ją na początek.
  • FFmpeg sam się nie zrestartuje ani cię nie powiadomi.
  • Każdy dodatkowy cel transmisji dokłada pełny bitrate do ruchu wychodzącego.

Jak wygląda konfiguracja DIY na VPS

Typowy stos na własnym serwerze składa się z czterech elementów:

  1. Linuksowy VPS z miejscem na dysku na twoją bibliotekę i transferem wychodzącym dla streamu, który nigdy się nie zatrzymuje.
  2. Twoje pliki wideo, wgrane przez SFTP lub zsynchronizowane z magazynu.
  3. Plik playlisty dla demuxera concat w FFmpeg.
  4. Polecenie FFmpeg, które czyta playlistę w czasie rzeczywistym, zapętla ją i wypycha na adres ingest, np. rtmp://a.rtmp.youtube.com/live2 plus twój klucz.

Większość poradników używa trybu stream copy, w którym FFmpeg przepuszcza obraz i dźwięk bez ponownego kodowania. Zużycie CPU jest znikome, więc wystarczy mały serwer, a pierwszy stream naprawdę uruchamia się szybko.

Haczyk: tryb copy działa płynnie tylko wtedy, gdy wszystkie pliki są technicznie spójne, i właśnie tu idzie większość długoterminowego wysiłku.

Kodowanie i znaczniki czasu: dlaczego playlisty FFmpeg zaczynają się od nowa

W trybie stream copy FFmpeg skleja pliki takie, jakie są, więc jeden nietypowy plik psuje przejścia. Najczęstsi winowajcy:

  • Niezgodna liczba klatek, np. eksport w 29,97 fps obok plików 30 fps albo nagranie z telefonu ze zmienną liczbą klatek.
  • Różne rozdzielczości lub formaty audio, np. klip 720p wśród plików 1080p.
  • Dziwne timebase'y lub brakujące znaczniki czasu zostawiane przez niektóre edytory i programy do nagrywania ekranu.

Objawy to wszystko od ostrzeżeń w logach, przez zamrożony obraz, po zamknięcie FFmpeg. Po restarcie playlista startuje od pierwszego filmu, więc widzowie w kółko oglądają tę samą pierwszą godzinę.

Rozwiązanie to przekodowanie wszystkiego do jednego profilu, zanim trafi na playlistę: ta sama rozdzielczość, stała liczba klatek, ten sam interwał klatek kluczowych i ten sam format audio. Zobacz ustawienia kodowania dla streamingu 24/7.

Awarie, restarty i monitoring na własną rękę

FFmpeg jest znakomity, ale to pojedynczy proces, któremu nie zależy na tym, żeby działać dalej. Gdy platforma zerwie połączenie, sieć na chwilę zniknie albo jakiś plik wywoła błąd, proces się kończy i nic go nie przywróci, chyba że zbudowałeś:

  • Nadzorcę procesu, np. usługę systemd z automatycznym restartem.
  • Śledzenie pozycji, żeby restart nie zaczynał playlisty od góry.
  • Kontrole stanu potwierdzające, że platforma odbiera obraz, bo działający proces wciąż może pokazywać offline.
  • Alerty na telefon, żeby awaria o 3 w nocy nie trwała do śniadania.

Do tego dochodzi utrzymanie: aktualizacje, restarty serwera, dyski zapychane logami i klucze transmisji zapisane otwartym tekstem w skryptach. Nic z tego nie jest trudne osobno; razem to praca na pół etatu. Zajrzyj do tekstu o monitorowaniu stanu i dostępności streamu, żeby wiedzieć, na co patrzeć.

Transfer i wiele celów transmisji z jednego serwera

Stream nadawany bez przerwy zużywa więcej danych, niż się ludziom wydaje. Jeden stream 6 Mb/s działający przez 30 dni wysyła około 1,9 TB. Wyślij go na trzy platformy, a serwer będzie wypychał około 18 Mb/s całą dobę, czyli blisko 6 TB miesięcznie. Sprawdź limit transferu wychodzącego u swojego dostawcy i warunki za jego przekroczenie.

FFmpeg z wieloma celami ma własne dziwactwa. Jeden proces na platformę oznacza kilka procesów do pilnowania. Muxer tee w FFmpeg wysyła jedno wejście na kilka wyjść, ale pojedynczy padający cel, np. platforma odrzucająca nieaktualny klucz, może położyć cały proces, jeśli każde wyjście nie jest skonfigurowane tak, by tolerować błędy.

Osobliwości platform też są na twojej głowie, jak 12-godzinny limit archiwum YouTube, który zwykła pętla po prostu ignoruje.

Kiedy stream DIY na VPS to dobry wybór

Własny serwer ma sens, gdy większość z tych punktów się zgadza:

  • Dobrze czujesz się w linuksowym terminalu i lubisz utrzymywać systemy.
  • Streamujesz na jeden cel albo jesteś gotów zbudować obsługę błędów dla kilku.
  • Twoja biblioteka jest mała i stabilna, a ty kontrolujesz eksport każdego pliku.
  • Okazjonalny restart od początku playlisty nie jest dla twojej widowni wielkim problemem.
  • Chcesz się nauczyć, jak streaming działa od środka.

Zarządzana usługa ma więcej sensu, gdy stream wspiera twoje dochody lub markę, często dodajesz filmy, potrzebujesz kilku platform albo twój czas lepiej wykorzystasz na tworzenie treści. Uczciwe porównanie to rachunek za serwer plus godziny konfiguracji i nocnych poprawek kontra usługa, która te problemy już rozwiązała.

Ta sama pętla 24/7, ale na StreamHouse

StreamHouse zastępuje każdy element tego stosu. Wgrane pliki są wcześniej przygotowywane do jednego spójnego profilu kodowania, co utrzymuje stały bitrate i znaczniki czasu, więc niepasujący plik nie restartuje ci playlisty. Budujesz playlistę w przeglądarce, dodajesz cele takie jak YouTube, Twitch, Rumble, Facebook, własny RTMP czy SRT i klikasz Start albo planujesz godzinę.

Pętla działa 24/7 w chmurze i automatycznie łączy się ponownie po czkawkach platformy lub sieci. Dodawaj, usuwaj i zmieniaj kolejność filmów w trakcie transmisji na żywo; zmiany wchodzą od następnego filmu. Dodatkowe cele nie zużywają dodatkowych slotów streamów, a przy podłączonym kanale YouTube ochrona nagrania może zamknąć pierwszą transmisję w wybranym przez ciebie momencie i kontynuować w nowej bez restartu playlisty.

Porównaj subskrypcje i kredyty pay-as-you-go na stronie z cennikiem.

Najczęściej zadawane pytania

Czy mogę prowadzić stream 24/7 na YouTube z FFmpeg na VPS?

Tak. Zapętlone polecenie FFmpeg skierowane na adres RTMP YouTube utrzyma kanał na żywo. Trudna część to utrzymanie go w dobrym stanie przez tygodnie: spójne kodowanie, automatyczne restarty, monitoring i archiwizacja długich transmisji spadają na ciebie.

Dlaczego moja playlista FFmpeg ciągle zaczyna się od początku?

Zwykle jeden plik nie pasuje do reszty: ma inną liczbę klatek, rozdzielczość lub format audio. W trybie copy znaczniki czasu się psują, FFmpeg się zamyka i startuje od pierwszego filmu. Przekoduj każdy plik do jednego stałego profilu.

Ile transferu zużywa stream 24/7 miesięcznie?

Około 1,9 TB dla jednego streamu 6 Mb/s działającego bez przerwy przez 30 dni i proporcjonalnie więcej przy wyższym bitrate lub dodatkowych celach. Trzy platformy przy tym bitrate to blisko 6 TB, więc najpierw sprawdź limit transferu swojego serwera.

Czy do streamu 24/7 potrzebuję mocnego VPS?

Nie, jeśli wcześniej przekodujesz pliki i użyjesz stream copy, który potrzebuje bardzo mało CPU. Kodowanie 1080p w czasie rzeczywistym na serwerze to inna sprawa: wymaga dedykowanych rdzeni, a małe współdzielone plany często nie nadążają z prędkością czasu rzeczywistego.

Co dalej