1

Długo się zastanawiałem, czy o tym pisać ale ostatecznie doszedłem do ślepego zaułku i dalej kompletnie nie wiem, co mam o tym myśleć. No to od początku.

Na przestrzeni kilku lat moich zabaw ze streamingiem live naszych wspaniałych oto komputerków trafiałem na wiele problemów z których większość udawało się z czasem zwalczyć - albo sprzętowo, albo software'owo. Były zagwostki z grabberami, upscaler'ami ... były zagwostki z obróbką live trybów "interlace", prawidłowego wyświetlania 50FPS, oraz dlaczego YT wali w pręta i nie da się przestawić np. takiego streamingu YT w tryb 50fps i wszystkie poziome "scrolle" skaczą jak głupie ... ale jak film 50fps wrzucicie na YT, to już się nagle da itd. Ok, wiadomo co było trudne, wiadomo co się da, i wiadomo czego się nie da, ALE.

Od jakiegoś czasu miałem dość nietypowy problem z audio, w zasadzie można powiedzieć że biorąc na podorędzie Atari małe, to problem objawia się szczególnie na POKEY'u i chiptune. I to wychodzi na to, że nie objawia się w czasie odsłuchu live u mnie w czasie streamingu, objawia się natomiast po przetworzeniu danych live na YT. Nie wiem na czym by mógł polegać taki problem bo np. - sample z tego samego komputera grane covoxem grają czysto, ale dla odmiany chip'y pozornie grają ok ... pozornie, bo jeśli przysłuchać się temu dokładniej to im niższa częstotliwość instrumentu tym przybywa więcej zakłóceń. Coś, jak by skwarki na patelni smażył. Za cholerę tego nie rozumiem. Jak to wygląda dokładnie - słychać w poniższym filmiku od 22:30, tam problem jest najbardziej słyszalny. Trzeba niestety posłuchać tego głośniej, w przykładzie grając nutą C1 w tle słychać "skwarki", mniej jest ich dla C2. Przypominam, od 22:30

https://www.youtube.com/watch?v=mSzg4jyFDTY

Proszę nie oglądać filmu bez przeczytania informacji powyżej ;)

Wcześniej, na początku filmiku lecą sobie rożne rzeczy, pozornie wydaje się że jest wszytko ok. Ale nie jest. Test na końcu jasno to wykazuje.

Teraz pytanie, bo jeśli u mnie na odsłuchu to, co ode mnie wychodzi GRA CZYSTO a na YT już nie; to jaka tu może być przyczyna? Sprawa druga którą testowałem to jak zamiast streamingu zapisałem ten sam strumień do pliku z poziomu PC to wszystko jest ok. Czyli to niby potwierdza fakt, że strumień ode mnie wychodzi poprawny. Być może, albo taką mam nadzieję.

Pierwszego do tablicy wzywam ... LARKADIUSZA ;). Larku?

Kontakt: pin@usdk.pl

2

aha, najważniejsze. Od strony PC jest OBS studio, tutaj strumień renderowany przez CPU (x264), 6000kbps, audio 320kbps, mix 44100hz stereo.

Kontakt: pin@usdk.pl

3 Ostatnio edytowany przez Adam Klobukowski (2022-09-24 09:15:52)

Ja mam kwadratowe ucho co zostało wykazane doświadczalnie więc o "czystości" dżwięków się nie wypowiem, ale widzę dwie opcje:
1) artefakty kompresji audio
2) artefakty konwersji częstotliwości

Problemu pierwszego raczej nie zwalczysz, bo jutub "tak ma". Możesz zweryfikować odsłuchując w niższych jakościach filmu, problem powinien się zmieniać.

Problem drugi w teorii mógłbyś zwalczyć, ale podejrzewam że łatwo nie będzie. Może być tak że po drodze robiona jest konwersja częstotliwości audio i ona wprowadza te zakłócenia bo niekoniecznie jest dobrze przystosowana do czipów. Rozwiązaniem byłaby własna wstępna konwersja na docelową częstotliwość o zweryfikowanej jakości, tak aby jutub już nie musiał tego robić.

Jak klikniesz prawym przyciskiem na video, to w popapie masz opcję "statystyki dla nerdów" gdzie masz informacje o kodekach itp. Puszczaj video z różną jakością - może coś ci się skoreluje.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

4

brzmi to dziwnie, wrzuciłbyś dla porównania to samo ale dobrze brzmiące?

swoją drogą słychać na nagraniu kompresję dźwięku, najwyraźniej na Igorrrze, pompowanie niskich tonów , falowanie w górnych rejestrach, np. brzmienie przejść w 21:00 i falujący hihat i blachy. Być może jest tak jaka Adam wspomniał, że w 22:30 to są artefakty kompresji dźwięku

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

5 Ostatnio edytowany przez Adam Klobukowski (2022-09-24 09:14:54)

Jeszcze tylko dodam, że podczas strima tego nie ma bo jutub przy strimach idzie po najniższej linii oporu i strimuje dokładnie to samo co dostaje ze źródła (oczywiście nie zawsze, ale generalnie). Natomiast "film" ze strima na 100% jest przetwarzany przez jutuba.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

6

Cyprian napisał/a:

np. brzmienie przejść w 21:00

materiał źródłowy był tak skompresowany.

Co do samego testu, spróbuję wieczorem zrobić zrzut polegający na zapisaniu jakiegoś MP4 z C1 - C2 i zrobię upload tego do YT celem porównania ilości zakłóceń. No i ciekawe jak to będzie z kodekami YT w tym przypadku.

Kontakt: pin@usdk.pl

7

Może to był foch YT za ten metal, który puściłeś wcześniej? ;-)
A serio - ciekawe, czy nie zaprzęgli do obróbki jakiejś AI, która poległa na takiej kombinacji dźwięków.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

8

albo kodek głupieje z tym charakterystycznym prostokątem z połową sinusa w przypadku pokey'a :)

Kontakt: pin@usdk.pl

9

Nie da się ukryć, że prostokąt się fatalnie kompresuje bo źle się przybliża sinusami. Ale żeby aż takie artefakty z tego powychodziły...

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

10 Ostatnio edytowany przez Pin (2022-09-25 13:26:36)

Ok. Test taki. (ten sam kodek w przypadku zapisu do pliku, jak i streamingu)

1. OBS i grab do pliku, następnie upload do YT:

https://www.youtube.com/watch?v=QAQgm6pPfJU

2. OBS i streaming do YT:

https://www.youtube.com/watch?v=9cYBi2X3oBc


... tak w sumie, to jak by się dokładnie przysłuchał temu, to w przypadku zapisu do pliku też minimalnie słyszę wspomniane tu gdzieś "skwarki" ale - jest to jakkolwiek akceptowalne. To samo jednak w przypadku streamu ... masakra. Teraz, to już zgłupiałem i nie wiem gdzie szukać przyczyny.

Próbowałem też ustawić cały system audio oraz OBS w 48khz ... ale niestety o ile OBS ma opcje do takiego trybu pracy tak w takim ustawieniu staje się "bezdźwięczny".

Kontakt: pin@usdk.pl

11

Wstępne wnioski są nieco zaskakujące. Testowo zrezygnowałem z renderowania strumienia poprzez GPU i wróciłem do CPU, które kiedyś tam po prostu nie "wyrabiało". Przestało wyrabiać po instalacji VScode jak musiałem do Fujineta przekompilować wsad ... no ale po drodze robiłem reinstalkę windy, więc poszło to wszystko w kosmos i generalnie jest teraz czasowo jakby trochę więcej luzu. Trochę oznacza mniej więcej tyle, ze jak wcześniej średni czas renderowania klatki przez GPU w OBS miałem w przedziale 9-12ms przy jakości umownie średniej, tak teraz co mnie mocno zdziwiło - poprzez CPU mam w granicach 2.5-3ms i to w najwyższej jakości plus audio na poziomie 320kbps i strumień na 6000kbps. Jakościowo różnica dość znaczna. Ha, no i te 3ms to mam z równoległym zapisem streamu do pliku na dysk - to jest lol.

Przy okazji zaorałem wszystkie sterowniki audio i zainstalowałem to jeszcze raz. Czyli sterownik do Presonusa 1818vsl i całe ASIO, plus wirtualny kabel - "carla". Nie chciałbym chwalić dnia przed zachodem słońca (choć jest już jakby mocno ciemno) ale po 2.5h testowego streamingu wygląda to mocno obiecująco.

Reasumując, jeśli to zadziała to być może zrobię stream z Grawitacji i Krakowskich Retrospekcji. Jeśli nie, to najkrótszą drogą wy*** te graty do najbliższego punktu zbiórki elektrozłomu i chyba dam sobie siana, bo mam obecnie mocno zerowe fundusze na tę zabawę.

Kontakt: pin@usdk.pl

12

Jest jakby lepiej:

https://www.youtube.com/watch?v=w4LOYQHxD-I

prywatny live, teraz.

Kontakt: pin@usdk.pl

13 Ostatnio edytowany przez Pin (2022-09-26 23:27:49)

ehhh, teraz widzę ze masę błędów popełniałem. Posiedziałem trochę z tym OBS'em i zoptymalizowałem jego działanie pod kątem możliwości sprzętowych PC. Zwiększyłem też o 40% bitrate generowanego strumienia, co przełożyło się na jakość zwłaszcza obrazu. Dodatkowe spostrzeżenie to fakt, że jeśli coś ma być płynne w 50fps a chodzi nam np. o projektor wpięty pod dualhead'a (na jakimś party) to na czas projekcji polecam zrzucanie OBS'a na pasek tak, by na dwóch ekranach nie trzeba było renderować tej samej treści. Do wydajności renderowania jakoś to znaczenia bardzo nie ma - ale ma znaczenie w przypadku chęci utrzymania stabilnie płynnego wyświetlania np. SCROLLI - szczególnie tych przesuwanych poziomo ;) grabber rozdziałka do proporcji 4:3, tyle fps co strumień wyjściowy, wyjściowy na 50fps (co i tak nie jest dokładnie tym co wychodzi z Atari, jakieś 49.86 czy jakoś tak) i filtr na źródło z grabbera deinterlace Yadifx2 z początkiem od górnej linii. Zakres kolorów "pełny". Chyba nic więcej lepszego nie da się zrobić.

Kontakt: pin@usdk.pl

14

No nie jest źle. Ewentualnie poza tym, że jak bym miał jakiś grabber lepszy to przechwicił bym to w znacznie większej rozdziałce. Choć teraz jest taki feeling jak z crt nieco.

Obowiązkowo oglądając to intro monitorki uprasza się o przełączenie w 50FPS!

https://www.youtube.com/watch?v=ZXKz6G0NhZk

Kontakt: pin@usdk.pl

15

Wyższa rozdzielczość na zgrabowanie sygnału, który ma małą rozdzielczość... Po co? Za mało być nie może bo YT nie przyjmie tego w 50fps ale bez przesady.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

16

To wyszło jakby "ogranoleptycznie" i sumarycznie jakość odbioru jest wówczas najwyższa. Poza tym, jeśli na streamie montujesz w jakieś mniejsze okno przechwytywany obraz a na "programie" masz dodatkowo jeszcze jakiś livechat czy inne dziadostwo to nie ma sensu schodzić poniżej fhd.

Jakościowo najlepiej by było grabować wielokrotność rozdzielczości materiału źródłowego i to dawało mi w testach dość wierne odwzorowanie i ostrość obrazu, jednakże mój cudowny grabber przechwyci wówczas max 30fps. A to już sensu żadnego nie ma.

Kontakt: pin@usdk.pl

17

Wypluwasz obraz z Medusy, jak sądzę. To pod nią trzeba się z grabber em dopasować a nie pod dane źródłowe. Medusa ma wystarczającą jakość obrazu, żeby nie było potrzeby robić oversamplingu - tak sądzę. Poza tym, jak wspomniałeś, taki obraz "wkładasz" potem w OBS, gdzie masz inne rzeczy więc o ile wyjściowy strumień powinien mieć HD, to z grabbera aż tyle wyjść nie musi. Tak ja to widzę. Również na podstawie moich zabaw z grabowaniem obrazu z Medusy tanim ustrojstwem HDMI-USB, które 50 FPS ogarnia jeszcze dla 720p (na szczęście) ale więcej już nie.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

18 Ostatnio edytowany przez Pin (2022-09-27 17:03:16)

to zrób sobie test w którym zgrabujesz po Meduzie obraz z Atari w rozdzielczości 1024/768 i porównaj jakość obrazu do grabu w FHD (pomijając proporcje obrazu powiedzmy tu). W niskiej rozdzielczości grabbera obraz będzie rozmyty - nie ostry w FHD już nie, no i można to już dowolnie skalować potem.

Kontakt: pin@usdk.pl

19 Ostatnio edytowany przez perinoid (2022-09-27 17:28:27)

Oczywiste jest, że w 720p rozmycie będzie większe niż w 1050p :-) Bo częstotliwość próbkowania obrazu większa w 1050p (powierzchniowo, nie czasowo).

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.