Dowiedz się więcej

Jak ustawić koder dla transmisji na żywo IPTV?

Jak ustawić koder dla transmisji na żywo IPTV?

Mogąc streamuj wideo na żywo przez Internet jest złożonym przedsięwzięciem technicznym. Wymaga dobrego zrozumienia wielu działających części. Właśnie dlatego nasz blog jest tutaj - aby pomóc Ci zrozumieć te systemy, abyś mógł dokonać właściwych wyborów, gdy przyjdzie czas na ważną transmisję.

Blog skupi się na stronie kodowania transmisji na żywo. W szczególności zbadamy ustawienia, które powinieneś zaprogramować w swoim koderze. Ale najpierw przedstawmy bardzo krótkie wprowadzenie do tego, czym jest enkoder, dla tych, którzy chcą najpierw zbudować swoją podstawową wiedzę.

dziewczyna w niebieskiej sukience z aparatem

Cel enkodera transmisji strumieniowej na żywo

Strumieniowe przesyłanie cyfrowego wideo na żywo polega na kodowaniu. Kodowanie dotyczy kompresji wideo i formatów. W stanie surowym cyfrowe wideo składałoby się po prostu z szeregu nieruchomych obrazów, które byłyby wyświetlane sekwencyjnie podczas odtwarzania ścieżki dźwiękowej w tle.

Jednak ta metoda przesyłania strumieniowego wideo zajmuje dużo miejsca. Jedna minuta surowego lub nieskompresowanego materiału wideo w wysokiej rozdzielczości może zużyć wiele GB przestrzeni dyskowej. Kiedy materiał zaczyna otrzymywać 30, 60, 90 długości minut lub dłużej, rozmiary plików stają się zbyt duże, aby sobie z nimi poradzić.

Rozwiązaniem jest kompresja: matematyczna metoda „wyrzucania” niepotrzebnych danych. Kompresja wideo zmniejsza rozmiary plików, wyrzucając dane dla części filmu, które nie zmieniają się z klatki na klatkę. Na przykład, jeśli narożnik wideo jest czarny przez 10 minut prosto, większość tych faktycznych danych można odrzucić i zastąpić odniesieniem, np. „Uczyń ten narożnik czarnym na następne klatki 300”.

Koder przesyłania strumieniowego na żywo zmniejsza przepływność lub rozmiar przesyłanego strumieniowo wideo, aby umożliwić przesyłanie tych treści przez Internet.

Wysoki poziom kompresji może poważnie obniżyć jakość wideo, sprawiając, że będzie wyglądał na bardziej pikselowany. Przez lata opracowano wiele różnych „kodeków” (lub standardów kodowania / dekodowania skompresowanego wideo), które są dostępne w celu rozwiązania tego problemu.

Media zoptymalizowane pod kątem przesyłania strumieniowego

Istnieje jednak inny element, jeśli chodzi o kodowanie: strumieniowość. Ani surowe wideo, ani większość skompresowanych formatów wideo nie są zoptymalizowane do przesyłania strumieniowego przez Internet. Formaty strumieniowe używają specjalnych znaczników i pojemników, aby zapewnić, że wideo może być dostarczane kawałek po kawałku bez żadnych błędów i błędów. Dlatego kodery nie tylko kompresują wideo, ale także zmieniają je w formaty odpowiednie do przesyłania strumieniowego. Dzięki temu podstawowemu zrozumieniu jesteśmy gotowi skonfigurować koder dla transmisji na żywo.

Ustaw koder transmisji strumieniowej na żywo

Konfiguracja enkodera może być myląca, ale kiedy zrozumiesz, co oznaczają różne ustawienia dla twojego strumienia, jest to całkiem łatwe. W tym miejscu wymienimy kilka najczęstszych ustawień znalezionych na różnych platformach koderów.

Mogą się one różnić w zależności od aplikacji, więc jeśli napotkasz ustawienie, którego nie rozumiesz, wróć do dokumentacji swojej platformy. Alternatywnie, opublikuj tutaj w komentarzach, a my dołożymy wszelkich starań, aby pomóc Ci rozwiązać problem.

Jak wybrać źródło

Pierwszym elementem konfiguracji dowolnego kodera na żywo jest wybór nośnika źródłowego. Może to być kamera internetowa IP, wejście HDMI z kamery, a nawet statyczne pliki multimedialne znajdujące się na komputerze. Źródłami dźwięku będą podobnie mikrofony (samodzielne lub wbudowane w kamerę) lub pliki audio.

Jeśli pracujesz w trybie z wieloma kamerami, źródłem może być pojedyncze źródło pochodzące z urządzenia przełączającego na żywo. Alternatywnie platforma kodera może samodzielnie obsługiwać przełączanie na żywo - na przykład platformy vMix obsługują przełączanie na żywo.

Tak czy inaczej, pamiętaj, aby wybrać odpowiednie źródła wideo i audio dla treści, które chcesz nadawać. Częstą pułapką, której należy tutaj unikać, jest wybranie niewłaściwego źródła, na przykład wybranie wbudowanego mikrofonu w laptopie jako źródła dźwięku dla transmisji.

Niektóre nadchodzące kodeki wideo

Podstawowy RGB

Następnym wyborem do rozważenia jest to, jaki „kodek” (lub schemat kompresji) chciałbyś, aby Twój koder tworzył i nadawał. Najpopularniejszy kodek do przesyłania strumieniowego na żywo jest nazywany H.264 i jest obsługiwany na prawie każdym nowoczesnym urządzeniu obsługującym wideo. Niektóre nadchodzące kodeki, które obiecują zmniejszyć rozmiar pliku przy zachowaniu jakości, to H.265 i VP10.

Jednak trzymanie się standardowego H.264 jest na razie najlepszym wyborem. Jedna z odmian, którą możesz zobaczyć, nazywa się x264. Jest to po prostu szczególna metoda kodowania wideo H.264. Kodowanie za pomocą x264 często zużywa mniej zasobów procesora niż inne metody, ale możesz to przetestować przed rozpoczęciem.

Uwaga na wiele strumieni

Pamiętaj, że wiele ustawień opisanych poniżej dotyczy użytkowników o różnych prędkościach połączenia z Internetem. Wiele współczesnych streamerów na żywo decyduje się na emisję wielu jednoczesnych strumieni tej samej treści, z których każdy jest kodowany z inną szybkością transmisji (ilość danych wysyłanych na sekundę). Mogą być one dostarczane użytkownikom z powolnymi, średnimi i szybkimi połączeniami internetowymi, aby zapewnić każdemu z nich jak najlepsze wrażenia.

Audio Codec

Musisz także wybrać kodek audio, który chcesz wysłać w swoim strumieniu. Najczęstsze ustawienia to MP3 i AAC, formaty audio, które obsługuje prawie każde urządzenie. Zalecamy AAC w prawie każdym przypadku, ponieważ jest to wymagane przez urządzenia Apple z systemem iOS.

Częstotliwość próbkowania audio

Innym powszechnym ustawieniem audio, które należy wybrać, jest „częstotliwość próbkowania audio”. Odnosi się to po prostu do liczby pomiarów audio wykonanych na sekundę podczas danego nagrania. Zalecamy ustawienie częstotliwości próbkowania na 44100 KHz dla każdego strumienia na żywo. Jest to standard w większości urządzeń audio i nagrań.

Rozdzielczość przesyłania strumieniowego wideo

Rozdzielczość twojego strumienia odnosi się do wielkości (mierzonej w pikselach) ramki wideo. Najpopularniejsze obecnie używane rozmiary wideo to:

  • 426 x 240 (240p)
  • 640 x 360 (360p, niska rozdzielczość)
  • 854 x 480 (480p, Standard Definition lub SD)
  • 1280 x 720 (720p HD)
  • 1920 x 1080 (1080p lub Full HD)
  • 3840 x 2160 (znany jako 4K lub Ultra HD)

Rozdzielczość wybrana dla Twojego filmu zależy od kilku czynników. Po pierwsze, wszystkie urządzenia muszą obsługiwać maksymalną wybraną rozdzielczość, w tym prędkość i miejsce do przechowywania. Materiał o wyższej rozdzielczości wymaga o wiele większej mocy przetwarzania do zakodowania.

Po drugie, prędkość Internetu musi być w stanie pomieścić wybraną rozdzielczość. Chociaż rozdzielczość nie jest ściśle związana z przepływnością, filmy o wyższej rozdzielczości wymagają większej przepustowości, aby dobrze wyglądać. Nie ma sensu wysyłać połączenia wideo HD, jeśli przepustowość nie jest w stanie obsłużyć tego poziomu jakości przy tej rozdzielczości.

Film Frame Rate

Liczba klatek na sekundę odnosi się po prostu do liczby zdjęć zarejestrowanych przez aparat na sekundę. Zazwyczaj są to ramki 29.97 na sekundę (zaokrągla w górę do 30 fps), ale 25 i 24 fps są również powszechne. Niektóre wydarzenia sportowe i inne transmisje dotyczące szybkich ruchów decydują się na transmisję w 60 fps, aby akcja wyglądała na bardziej wyraźną. W razie wątpliwości trzymaj się 30 fps.

Protokół przesyłania strumieniowego na żywo: HLS, RTMP

Pojęcie przestępczości komputerowej

Transmisje wideo na żywo są wysyłane za pośrednictwem szeregu protokołów, które ewoluują z czasem. Najczęstszym i długotrwałym z nich jest RTMP. RTMP (Real Time Messaging Protocol) to standard Macromedia (Adobe) do przesyłania strumieniowego wideo, audio i metadanych przez Internet w czasie rzeczywistym. Większość koderów, w tym kodery z projektu OBS, Wirecast, vMix oraz własny koder Flash Media Live Adobe, może używać RTMP.

RTMP jest elastycznym i solidnym standardem, ale dzisiaj nie zawsze jest wystarczający. Jest tak, ponieważ wymaga od widzów korzystania z urządzeń, na których zainstalowany jest Flash Player. Coraz częściej Flash jest wycofywany na rzecz bardziej niezawodnych i bezpiecznych protokołów dostarczania wideo, a wiele platform mobilnych - w szczególności iOS na iPhone'ach i iPadach - nie obsługuje Flasha.

Jednak kanały RTMP są nadal standardową metodą przesyłania strumienia z kodera na serwery dystrybucyjne. Dzięki właściwemu hostowi do przesyłania strumieniowego wideo pojedynczy kanał RTMP z kodera można automatycznie konwertować na inne, bardziej kompatybilne standardy, takie jak HLS i HDS, automatycznie po stronie serwera.

W DaCast używamy do tego procesu Pakowania strumieniowego Akamai do usługi Universal Streaming. Pakiet Stream Stream firmy Akamai pobiera strumień RTMP z kodera i automatycznie transkoduje go zarówno do HLS, jak i HDS w czasie prawie rzeczywistym, przygotowując strumień na dowolny format urządzenia. Ten proces powoduje minimalne drugie opóźnienie 30-45 na kanale.

Szybkość transmisji wideo

Być może najważniejszym ustawieniem w całym procesie kodowania jest szybkość transmisji. Szybkość transmisji jest dolną linią, która określa, ile danych zużyje Twoja transmisja. Niezależnie od tego, na jaką ustawisz maksymalną przepływność, szybkość transmisji danych nie wzrośnie.

Szybkości bitów są mierzone w bitach na sekundę, ale częściej w kilobitach na sekundę (8 Kilobits = 1 kilobajt). Szybkość transmisji zasadniczo określa, ile przepustowości zużyje Twoja transmisja. Większa liczba kilobitów na sekundę zużywa więcej danych. Jest to krytyczne z wielu powodów związanych z prędkością Internetu.

Po pierwsze, prędkość wysyłania musi być wystarczająco duża i stabilna, aby utrzymać przesyłanie z tą prędkością przez cały czas trwania transmisji. Zasadniczo zalecamy, aby prędkości przesyłania były w stanie osiągnąć prędkości co najmniej dwukrotnie więcej niż oczekujesz.

Oto wspólne rekomendacje dla przepływności dla różnych rozdzielczości wideo:

  • Wideo 360p: 400 Kbps - 1000 Kbps
  • Wideo 480p: 500 Kbps - 2 Mbps (1 Mbps = 1000 Kbps)
  • Wideo 720p: 1.5 - 4 Mb / s
  • Wideo 1080p: 3 - 6 Mb / s

Pamiętaj też, że całkowite wymagania dotyczące przepustowości będą sumą wszystkich strumieni dodanych razem. Jeśli więc przesyłasz strumieniowo strumień 360p, strumień 720p i strumień 1080p, a także dźwięk dla każdego z nich, możesz przesyłać strumieniowo w sumie prawie 12 Mb / s danych. Oznacza to, że twoje połączenie internetowe musi być zdolne do utrzymywania prędkości przesyłania 24 Mbps.

Szybkość transmisji CBR vs. szybkość transmisji VBR

Jedno pytanie dotyczy tego, czy zastosować stałą przepływność (CBR) czy zmienną przepływność (VBR). Korzystanie z VBR oznacza, że ​​wykorzystanie danych spadnie, jeśli zawartość wideo przesyłana w danym momencie nie zawiera zbyt wielu informacji. Natomiast użycie danych będzie większe, jeśli na ekranie będzie dużo akcji.

Korzystanie z CBR prowadzi do uzyskania bardziej stabilnego, niezawodnego strumienia, ponieważ VBR może powodować duże skoki wykorzystania danych. Korzystanie z VBR może jednak zmniejszyć całkowite wykorzystanie przepustowości, co może obniżyć koszty. Zalecamy korzystanie z CBR, chyba że naprawdę martwisz się kosztami przepustowości.

Jak ustawić szybkość transmisji audio

Szybkość transmisji audio jest również czymś, co trzeba ustawić. Zalecamy następujące ustawienia:

  • W przypadku wideo 360p: dźwięk 64 Kb / s, mono
  • W przypadku wideo 480p: 128 Kb / s, stereo
  • W przypadku wideo 720p: 128 Kb / s, stereo
  • W przypadku filmów 1080p i nowszych: 256 Kb / s, stereo

„Mono” lub „stereo” odnosi się do liczby kanałów audio: jednego lub dwóch. To ustawienie można nazwać „kanałem”. Wybierz ustawienia odpowiednie dla swojej rozdzielczości, jak podano powyżej.

Rozmiar bufora

To zaawansowane ustawienie dotyczy sposobu buforowania danych wideo w krótkich chwilach przed ich nadaniem. Większy rozmiar bufora może zwiększyć jakość ruchu, ale może faktycznie zwiększyć szybkość transmisji danych w danym momencie powyżej wybranej szybkości transmisji.

Chociaż nie wpłynie to na ogólną szybkość transmisji (algorytmy zrekompensują zmniejszenie zużycia danych w innym czasie), może powodować problemy z jakością dla niektórych przeglądających. Zalecamy ustawienie wielkości bufora na taką samą, jak szybkość transmisji, aby zapewnić płynną transmisję i brak skoków wykorzystania danych.

Łączenie z hostem wideo na żywo

Teraz, gdy nauczyłeś się konfigurować ustawienia wideo i audio w koderze, ostatnim krokiem jest połączenie enkodera z serwerem przetwarzania. Na platformie DaCast podczas tworzenia strumienia otrzymasz cztery informacje: „nazwę strumienia”, „URL strumienia”, kod logowania i hasło. Możesz wprowadzić te informacje do kodera, aby połączyć się z serwerami DaCast i rozpocząć przesyłanie.

Inne ustawienia

Podczas konfigurowania kodera możesz napotkać kilka innych ustawień. Oto wyjaśnienie niektórych ustawień znalezionych w programie Adobe Flash Media Live Encoder. Inne enkodery powinny mieć podobne ustawienia.

  • „Rozmiar wejściowy” i „Rozmiar wyjściowy” odnoszą się do rozdzielczości wideo przychodzącego z kamery (kamer) i rozdzielczości, którą wolisz wyprowadzać jako strumień na żywo.
  • „FMS URL” to adres URL serwera przetwarzania multimediów.
  • „Strumień” to często pole, w którym należy wpisać „nazwę strumienia”.
  • „Zapisz do pliku” umożliwia jednoczesne zapisanie transmisji na dysku.

Sprzęt a kodery oprogramowania

Istnieje wiele rodzajów koderów, które można podzielić na dwie główne kategorie: sprzęt i oprogramowanie. Kodery sprzętowe to dedykowane urządzenia służące do kodowania strumieni na żywo. Są wydajne, niezawodne i mogą mieć wspaniałe funkcje, takie jak wbudowane oprogramowanie do miksowania na żywo. Czołowi dostawcy koderów sprzętowych to VMix i Teradek. Są one jednak często bardzo drogie.

Kodery oprogramowania są świetną alternatywą dla mniejszych budżetów. Kodery oprogramowania to po prostu aplikacje, takie jak inne, które można zainstalować na komputerze stacjonarnym lub laptopie. Musisz upewnić się, że ten komputer ma wystarczającą moc, aby obsłużyć strumień wideo na żywo, zanim zaczniesz na nim polegać podczas transmisji. Jak zawsze mówimy: testuj, testuj, testuj!

Jednym z darmowych przykładów koderów programowych jest Adobe Flash Media Live Encoder. Ten pakiet oprogramowania zawiera wiele narzędzi umożliwiających uruchomienie transmisji na żywo. Innym przykładem jest OBS lub Open Broadcaster Software. Ten pakiet jest wydajny, konfigurowalny i można go zainstalować na prawie każdym komputerze. Możesz dowiedzieć się więcej o OBS i pobrać aplikację na ich strona internetowa projektu.

Udostępnij

Dodaj komentarz