05.08.2026 20:25

Okno renderu w Moonlight Animate: koniec zgadywania, jak wyeksportować film

⏱️ 4 min read
Share:

Eksport to ostatni krok i najłatwiejszy do zepsucia. Wszystko jest gotowe, wybierasz preset, czekasz dwadzieścia minut i dostajesz plik, który wygląda gorzej niż to, co widziałeś w programie — albo waży cztery razy za dużo. W Moonlight Animate okno eksportu miało już sporo: wybór kontenera, kamerę, zakres klatek, sterowanie bitrate'em, kanał alfa, metadane i kolejkę zadań. Brakowało tego, co faktycznie decyduje o jakości pliku.

Najpierw sprawdziliśmy, co program naprawdę umie

Zanim dołożyliśmy do okna choć jedno pole, napisaliśmy narzędzie, które wypisuje, co nasza warstwa kodowania naprawdę wystawia: jakie kontenery, jakie kodeki, jakie formaty pikseli, jakie profile i jakie parametry. Brzmi jak formalność. Nie była.

Okazało się, że program w trzech miejscach twierdził coś, co nie było prawdą:

  • Lista kodeków dźwięku oferowała dwa, których w naszej wersji w ogóle nie ma. Efektywnie zostawał sam AAC, a użytkownik nie miał jak się dowiedzieć dlaczego.
  • Lista kodeków dla transmisji na żywo wymieniała trzy warianty sprzętowe, których również nie ma.
  • Przełącznik kodowania dwuprzebiegowego był na stałe wyszarzony dla najlepszego kodeka H.264, jakim dysponujemy. Kod sprawdzał tylko jeden ze sposobów prowadzenia statystyk między przebiegami — a ten kodek używa drugiego. Funkcja istniała, była zaimplementowana i nikt nie mógł jej włączyć.

Wniosek jest ogólniejszy niż te trzy błędy: lista opcji zapisana ręcznie w kodzie zawsze się w końcu rozjedzie z tym, co program potrafi. Teraz każda lista w oknie renderu powstaje z odpytania warstwy kodowania przy starcie. Kodek, którego nie ma, nie pojawia się wcale. Opcja, której dany kodek nie obsługuje, znika razem z nim. Nie ma pól, które wyglądają jak działające, a nie robią nic.

Co doszło

Jakość stała. Zamiast podawać bitrate i liczyć, że trafiłeś, podajesz jakość, a koder wydaje na nią tyle danych, ile trzeba. Trudna scena dostanie więcej, spokojna mniej. Dla pliku, który chcesz zachować, to jest właściwy tryb — a dotąd nie było go w oknie w ogóle. Włączenie chowa pola bitrate'u, bo te dwa tryby się wykluczają; zostawienie obu ustawionych naraz to klasyczna pułapka, w której koder po cichu dusi zadaną jakość.

Przy jakości stałej szacowany rozmiar mówi „nieznany". Moglibyśmy pokazać liczbę wyliczoną z bitrate'u, którego w tym trybie się nie używa — wyglądałaby porządnie i byłaby nieprawdziwa. Rozmiar naprawdę zależy wtedy od treści.

Tempo kodowania — od najszybszego do najwolniejszego. Wolniej znaczy mniejszy plik przy tej samej jakości; przy nocnym renderze to czysty zysk.

Profil i poziom. Poziom ogranicza materiał do tego, co odtworzy starszy sprzęt — przydatne, gdy film ma zadziałać na czymś więcej niż nowy laptop. Obie listy pochodzą z deklaracji samego kodera, nie z naszych założeń.

Odstęp klatek kluczowych — przełącznik „automatycznie" i wartość ręczna. Gęściej to płynniejsze przewijanie i większy plik.

Nowe formaty wyjściowe: H.264 w wysokiej jakości (do tej pory nieosiągalny z okna, bo domyślny eksport rozwiązywał się do słabszego kodera), DNxHR HQ oraz QuickTime Animation — bezstratny, z przezroczystością, do dalszej pracy w innym programie.

Prawdziwe kodowanie dwuprzebiegowe dla głównego kodeka H.264, razem ze sprzątaniem plików roboczych po obu przebiegach.

Własne ustawienia zapamiętują komplet. Wcześniej zapisywały trzy pola, więc wczytanie „swojego" presetu dawało inny film niż ten, który się zapisało. Teraz wraca wszystko: format, tryb jakości, profil, poziom, klatki kluczowe, dźwięk. Presety zapisane wcześniej wczytują się dalej, po prostu z mniejszą liczbą pól.

Czego świadomie nie dodaliśmy

Przeplotu i standardu telewizyjnego, osobnego przełącznika głębi renderu, multipleksera, napisów, interpolacji czasu. W innych programach te pola mają sens, bo mają czym sterować. U nas nie mają: materiału z przeplotem nie produkujemy, render zawsze idzie w najwyższej głębi, a zmianę tempa robi się na osi czasu. Dołożenie ich dla samego podobieństwa dałoby okno, które wygląda poważniej i wprowadza w błąd. Kontrolka, która nic nie robi, jest gorsza niż jej brak — i to była zasada przewodnia całej tej pracy.

📚 Related posts

27.08.2026 20:55

Data, której nie cofniemy nawet my

Każdy certyfikat autorstwa dostaje datę zapisaną w blockchainie Bitcoina — takiej nie podważy nikt, my też nie. Sprawdzisz ją bez konta i bez Moonligh...
Continue reading →
27.08.2026 19:35

Twój kolor, wszędzie

Trzy tryby i siedem akcentów, wspólnych dla strony i Moonlight Animate. Motyw jedzie z kontem, profil pokazuje gościom Twoje kolory, a harmonogram sam...
Continue reading →
27.08.2026 18:31

Kto moderuje i na jakiej podstawie

Moderator to teraz osobna rola z własnym zakresem, a nie administrator w przebraniu. Odrzucenie treści wymaga powodu, który trafia do autora razem z d...
Continue reading →

📧 Stay up to date!

Join the waitlist to get notified about new Dev Blog posts and Moonlight platform launch.