
Tradycyjny Duży Bal Oficerski w Sewastopolu odbywa się w czerwcu, ale w tym roku przygotowania nie poszły zgodnie z planem. Organizatorzy postanowili uruchomić "Sewastopolski Bal Online". Ponieważ prowadzimy transmisję wydarzenia od kilku lat, nie było odwrotu. Widzowie na Facebooku, VKontakte i YouTube, 35 par tańczy u siebie w domach.
W ogóle, przez pewien czas zajmując się transmisjami online, zauważyliśmy tendencję, że prawie każdy projekt wymaga (lub my wymagamy od siebie) jakiegoś nowego rozwiązania. Czasem po raz pierwszy używamy SDI, czasem nadajnika wideo, transmitujemy sygnał za pomocą kilku modemów 4G z morza, nowego pilota, macierzy sygnałów, odbieramy wideo z drona, restreamujemy na 25 grup VK i tym podobne. Każdy nowy projekt zmusza nas do jeszcze głębszego zanurzenia się w świat streamów. Opowiadamy o tym na YouTube VidMK, postanowiliśmy także napisać o tym na Habr.
Zatem zadanie…
Bal taneczny odbywa się online z powodu epidemii. Jest para prowadząca, a pozostali uczestnicy tańczą, powtarzając za nimi, czyli muszą widzieć i słyszeć główną parę w rytm muzyki.

Na początku łączy się gubernator Sewastopola, aby otworzyć bal. Gotowa zarejestrowana transmisja jest emitowana na YouTube, Facebooku i VK.

Najbardziej oczywistym sposobem byłoby połączenie się w wideo czacie. Pierwszym, co przyszło mi do głowy, był Zoom, ale zazwyczaj staram się nie chwytać od razu za coś, co jest na topie, i szukam alternatyw. Może mają świetny marketing, a nawet jeśli narzędzie jest dobre, na pewno jest coś innego. W czacie AVstream kilka razy wspomniano o TrueConf, postanowiłem spróbować.
Warto powiedzieć, że jesteśmy na Krymie i wiele popularnych usług tutaj nie działa. Musimy szukać, a często alternatywy okazują się lepsze. Na przykład, zamiast zablokowanego Trello zaczęliśmy używać potężnego Planfix.
TrueConf natychmiast przyciągnął mnie możliwością uruchomienia własnego serwera. Teoretycznie oznaczałoby to, że nie jesteśmy zależni od ogólnego wzrostu obciążenia centrów danych w okresie izolacji, siedzimy sobie spokojnie w Sewastopolu, łączymy głównie lokalnych użytkowników i kilka z innych miast, i wszystko działa stabilnie. Poza tym, korzystanie z własnego serwera było korzystniejsze finansowo. A w przypadku naszych klientów specjalnie go udostępniono za darmo, ponieważ organizatorzy balu to NPO.
Ogólnie przetestowaliśmy produkt i zrozumieliśmy, że nam odpowiada. Chociaż nie przeprowadziliśmy testów z pełnym obciążeniem 35 osób, trochę obawialiśmy się, jak zachowa się stary komputer jako serwer. Wymagania systemowe są dość wysokie przy takim obciążeniu, dlatego przynieśliśmy komputer oparty na AMD Ryzen 7 2700, co znacznie uspokoiło sytuację.
Serwer fizycznie znajdował się tam, gdzie odbywała się transmisja balu. Główna aplikacja do wideokonferencji była podłączona do tej samej sieci co serwerem. To dodawało pewności, że obraz serwera napewno dotrze, a następnie zostanie przesłany online do pozostałych uczestników. Przy okazji, internet musi być dobry. Dla naszych 35 uczestników prędkość wysyłania osiągała 120 Mb/s, więc zwykły internet o prędkości 100 Mb/s nie wystarczy. Ogólnie serwer działa, idziemy zająć się transmisją…
Sygnał z kamery
Każdy czat wideo oferuje wybór kamery internetowej jako źródła obrazu oraz mikrofonu do dźwięku. Co zrobić, jeśli chcemy podłączyć profesjonalną kamerę wideo oraz dźwięk z dwóch mikrofonów wraz z podkładem? Krótko mówiąc, użyliśmy NDI.
Cały nasz event musieliśmy reżyserować i transmitować w mediach społecznościowych. W tym celu mieliśmy główny komputer jako mini-OB (mobilne studio telewizyjne). Cała praca odbywała się za pomocą programu vMix. To dość potężne oprogramowanie do organizacji transmisji różnego rodzaju i poziomu skomplikowania.

Nasza para taneczna była nagrywana przez jeden komputer, więcej po prostu nie było potrzeba. Sygnał z kamery przechwyciliśmy za pomocą wewnętrznej karty BlackMagic Intensity Pro. Moim zdaniem, to aktualna karta do przechwytywania jednego sygnału HDMI. Ten sygnał trzeba było wysłać jako kamerę internetową do TrueConf. Można było od razu przekonwertować strumień na kamerę internetową za pomocą vMix, ale nie chciałem obciążać wszystkiego na jednym komputerze. Dlatego do wideo konferencji TrueConf użyliśmy oddzielnego laptopa.
Jak uzyskać sygnał z kamery na laptopie? Można stworzyć wirtualny sygnał wideo na jednym komputerze i odbierać go na każdym innym komputerze w lokalnej sieci tak często, jak to jest potrzebne. To jest NDI (Network Device Interface). W zasadzie jest to rodzaj wirtualnego kabla, który nie wymaga specjalnej administracji. Szerokość jednego strumienia dla 1080p25 wynosi prawie 100 Mbit, dlatego dla stabilnej pracy wymagana jest sieć 1 Gbit lub Wi-Fi o prędkości powyżej 150 Mbit. Lepiej jednak używać kabla. Takich sygnałów NDI może być wiele w jednej lokalnej sieci, pod warunkiem, że wystarcza szerokości kanału.
Zatem na głównym komputerze w vMix widzimy sygnał z kamery, wysyłamy go do sieci jako sygnał NDI. Na laptopie-rozmówcy odbieramy ten sygnał za pomocą programu NDI Virtual Input z pakietu NDI Tools (jest darmowy). Ta mini-program tworzy wirtualną kamerę internetową, do której podłączamy odpowiedni sygnał NDI. W zasadzie to wszystko, nasza kamera HDMI poprzez NDI pojawia się w TrueConf.
Co z dźwiękiem?

Dźwięk z dwóch mikrofonów radiowych i podkład muzyczny zbieramy za pomocą dobrego miksera audio i wprowadzamy zewnętrzną kartę dźwiękową do vMix. To właśnie tę sumę audio wysyłamy na antenę i do naszego strumienia NDI dla TrueConf. Tam zamiast mikrofonu laptopa wybieramy NewTek NDI Audio. Teraz wszyscy nasi tancerze widzą i słyszą na rozmowie nasz piękny obraz i wysoką jakość dźwięku.
Obraz w eterze
W TrueConf wybraliśmy zwykły tryb rozmowy, w którym wszyscy widzą wszystkich. Była również opcja, w której my widzimy wszystkich, a inni widzą tylko prowadzących. To jest bardziej efektywne, ale wtedy nie byłoby efektu masowego.

W formacie rozmowy "wszyscy widzą wszystkich" można wybierać dowolne okno, które ma być powiększone. Uczestnicy widzieli parę prowadzącą, a my stworzyliśmy dodatkowego użytkownika, z którego konta przekazywaliśmy obraz na antenę i przełączaliśmy się między parami. Klikaliśmy na potrzebną parę i powiększaliśmy ich ekran, podczas gdy pozostałe pary były małe na dole. Czasami wyświetlaliśmy wszystkie ekraniki, aby pokazać, jak wiele osób tańczy synchronizując się.
Teraz o synchronizacji
Na pewno zadaliście sobie pytanie o opóźnienie. Tak, było, wynosiło około 1-2 sekundy w obie strony. Tutaj gra muzyka, a dźwięk dociera do uczestników później, tańczą w tym rytmie, a ich obraz wraca do nas jeszcze później. Postanowiliśmy zrezygnować z tego w ramach formatu i mimo wszystko wyglądało to monumentalnie i interesująco.
Rozwiązać problem synchronizacji dla widzów można poprzez sztuczne opóźnienie dźwięku w naszym programie dla mediów społecznościowych. Dzięki temu widz streamu będzie widział, jak uczestnicy tańczą w idealnym rytmie muzyki. Jednak nie ma pewności, że obraz od wszystkich przychodzi z takim samym opóźnieniem. To kolejne utrudnienie w schemacie transmisji, na pewno zrobimy to następnym razem.
A propos, w pakiecie NDI Tools jest jeszcze jeden mini-program — Scan Converter. Tworzy on sygnał NDI, przechwytując twój ekran lub kamerę internetową. W ten sposób łatwo można zorganizować transmisję, na przykład, zawodów e-sportowych w obrębie lokalnej sieci, mając tylko tę sieć i kamery internetowe. Żadne inne urządzenia nie są potrzebne.

Dla nas był to kolejny projekt, w którym musieliśmy wypróbować nowe rozwiązania, z którymi jeszcze nie spotkaliśmy się w transmisjach na żywo. Z przyjemnością odpowiem na wszystkie wasze komentarze, bacznie i z zainteresowaniem zapoznam się z sugestiami i rekomendacjami, jeśli wiecie, jak można było to zrobić lepiej. Świat streamów jest nieskończony, wiele technologii pojawia się na naszych oczach i można uczyć się razem szybciej. Poniżej można obejrzeć przeglądowe wideo z miejsca wydarzenia.

Źródło: habr.com
