Michał Liszcz

log, kodek, delivery

Rec.709 to nie jest właściwość Twojego pliku

Materiał prosto z kamery zwykle nie ma zapisanej przestrzeni barw. Rec.709 to założenie, które robi za niego każdy program, dopóki ktoś nie wpisze inaczej.

Rec.709 to standard telewizji wysokiej rozdzielczości: opisuje, jakie dokładnie są czerwony, zielony i niebieski, oraz jak kod cyfrowy przekłada się na jasność na ekranie. Cała reszta tej notatki jest o czymś innym: o tym, że Twój plik prawie na pewno tego nie deklaruje.

Sprawdziłem to na własnym dysku roboczym. Nie w terminalu, tylko w Claude Code na Macu: otwieram katalog z materiałem i piszę „sprawdź, jakie tagi koloru mają te pliki”. Odpowiedź przychodzi w kilkanaście sekund. Klip z aparatu Sony:

color_space=unknown
color_transfer=unknown
color_primaries=unknown
pix_fmt=yuv422p10le

Trzy pola z czterech puste. Ten sam wynik dostałem na plikach roboczych z montażu. A teraz eksport z Resolve, ten sam dysk:

color_space=bt709
color_transfer=bt709
color_primaries=bt709

Kompletne. Różnica nie polega na tym, że materiał źródłowy „nie jest w Rec.709”. Polega na tym, że nikt tego nie zapisał w pliku, a Resolve przy renderze zapisuje.

Co się dzieje, kiedy tagów nie ma

Program musi coś założyć. Odtwarzacze, przeglądarki i programy montażowe zakładają Rec.709, bo to najbezpieczniejszy strzał dla materiału HD. Zwykle trafiają. Dlatego przez lata można montować i nie zauważyć, że w plikach nie ma żadnej deklaracji.

Problem zaczyna się, kiedy założenie jest błędne. Materiał w S-Log3 też przychodzi bez tagów i też zostanie potraktowany jak Rec.709. Wtedy widzisz to, co wszyscy znają z pierwszego dnia z logiem: obraz płaski, szary, bez czerni. Nic się nie zepsuło. Program po prostu zastosował złe założenie, bo plik nic mu nie powiedział.

Dlaczego to nie jest problem w Resolve

Bo w Resolve i tak deklarujesz to ręcznie. Color management zna S-Log3 i S-Gamut3.Cine jako osobne pozycje obok Rec.709, Rec.709-A, Rec.2020 i DaVinci WG. Ustawiasz przestrzeń wejściową na klipie albo na projekcie i od tego momentu tagi w pliku źródłowym nie mają znaczenia.

Znaczenie mają dopiero na wyjściu, i tu Resolve robi robotę za Ciebie: wpisuje bt709 w trzy pola, więc plik, który wychodzi do klienta, mówi sam o sobie, czym jest.

Kiedy to boli naprawdę

Gdy materiał omija Resolve. Podgląd dla klienta zrobiony szybkim eksportem z innego narzędzia, plik wrzucony prosto na platformę, klip przepuszczony przez konwerter bez ustawień. Wtedy liczy się już tylko to, co jest w pliku, a jeśli tam nic nie ma, każdy kolejny program zgaduje osobno. Dwa różne odtwarzacze mogą zgadnąć tak samo, a serwis streamingowy inaczej.

Dlatego wart zapamiętania jest jeden nawyk: po eksporcie sprawdź plik, zanim wyjdzie do klienta. Nie trzeba do tego znać składni żadnego narzędzia. U mnie wygląda to tak, że w Claude Code wskazuję katalog i piszę zdaniem:

sprawdź color_space, color_transfer i color_primaries w plikach w tym folderze

Trzy razy bt709 znaczy, że plik nie zostawia niczego domysłom. Trzy razy unknown znaczy, że zostawia wszystko. Cała wiedza potrzebna do tego testu mieści się w tym jednym zdaniu - resztę, czyli którym programem to odczytać i z jakimi przełącznikami, załatwia asystent.


Koloruję w Motion Pikczer i ten test wykonuję na każdym materiale, który wychodzi na zewnątrz. Zajmuje sekundę i raz na jakiś czas ratuje przed pytaniem „czemu u nas to wygląda inaczej”.

Nie jestem programistą i nie piszę komend z pamięci. Pracuję z Claude Code w aplikacji na Macu: pokazuję katalog, mówię, czego szukam, i dostaję odpowiedź. To jest ta część warsztatu, która przez ostatni rok zmieniła się u mnie najbardziej.