Dodawanie napisów na płytę DVD

wersja 0.14 (2004-09-07)

Jeżeli posiadasz płytę DVD, na której brakuje polskich napisów a chcesz je dodać, to na tej stronie znajdziesz odpowiedź w jaki sposób to zrobić.
Jak na razie jest to wersja bardzo "wczesna" tej strony, jestem otwarty na komentarze, uwagi i wskazówki - wiewior@sound.w.pl

Zacznijmy od spisu programowania, który będzie wręcz niezbędny:

Może się również przydać:

Kilka uwag wstępnych:

1. No to zaczynamy! :)

Uruchamiamy płytkę i patrzymy czy są jakieś napisy, czy płyta ma menu i dodatki. Jeżeli nie ma menu i dodatków (choć obecnie zdarza się to rzadko) to sprawa jest nieco prostsza. Jeżeli są napisy, ta najłatwiej wstawić polskie na miejsce już istniejących. Jeżeli chodzi o płyty z regionu 1 (czyli na rynek amerykański), to maja one napisy angielskie, hiszpańskie i francuskie. Ja z reguły wywalam te francuskie.
Zrzucamy zawartość płyty na twardy dysk. Jeżeli płyta była w postaci obrazu (czyli plik *.iso lub *.img) to w zasadzie wystarczy ją podmountować i przekopiować zawartość nawet zwykłym Exploratorem Windows lub Total Commanderem. Wynika to z tego, że taka płyta w 99.999% przypadków i tak ma już zdjęte wszelkie zabezpieczenia.
Jeżeli jednak mamy oryginalną/zabezpieczoną płytę, musimy posłużyć się DVDDecrypterem. Ustaw go w tryb "File" (Mode->File). Ustawienia domyślne są w sumie wystarczające, ale można też ustawić je tak:
Opcje DVDDecryptera

2. Płyta na dysku, więc...

... czas, żeby wyodrębnić poszczególne strumienie.
Najpierw sprawdzamy, w których vob-ach jest tak naprawdę film. Z reguły są to vob-y ponumerowane: vts_01_1.vob; vts_01_2.vob itd. Zdarza się jednak, że są to pliki oznaczone innymi liczbami (np. vts_06_1.vob itd.). Na pewno będą to te vob-y, które zajmować będą najwięcej miejsca.
Jeżeli już odnajdziemy nasz film, to uruchamiamy VobEdit-a. Wczytujemy ("Open") pierwszy plik z filmem (czyli np. vts_01_1.vob) i klikamy "Demux". W okienku wybieramy opcję jak niżej:
Opcje VobEdita
Klikamy na "OK", podajemy katalog docelowy i cierpliwie czekamy aż się wszystko przetworzy. Trzeba tylko pamiętać, że zdemuxowane strumienie trochę miejsca mogą zająć.

3. Napisy czas zsynchronizować...

Potrzebne są nam napisy w formacie tekstowym -DVDSupTools wymaga formatu MicroDVD, ale mając SubEdit-a to żaden problem.
Optymalna sytuacja ma miejsce wtedy, gdy dysponujemy napisami do divx-a, który powstał z posiadanej przez nas płyty DVD lub gdy źródłem oby formatów była ta sama płyta DVD. Czyli w przypadku DVDScreenerów i filmów, które jeszcze nie miały w Polsce premiery nie ma większych problemów. Co nie zmienia postaci rzeczy, że i tak wypada posprawdzać synchronizację. Można to robić na kilka sposobów.
Po pierwsze spróbować wczytać do SubEdit-a pierwszego vob-a z filmem. Można tu łatwo zsynchronizować start napisów czy wykonać drobne korekty (konwersja formatów). Ale nie będziemy wiedzieli czy coś się nam nie sypnie w następnym vob-ie itp. Wczytanie samego pliku z obrazem czasem też nie pomaga, bo w przypadku braku dźwięku dekodery gubią się zupełnie. Co w takim układzie? Z pomocą przychodzi na TMPGEnc i jego "MPEG Tools" (a konkretnie: File->MPEG Tools->Simple Multiplex). Muxujemy obraz z jedną przykładową ścieżką dźwiękową (tylko pamiętać, że mamy do czynienia z MPEG-2 VBR) i taki twór wczytujemy do SubEdit-a i synchronizujemy napisy. Teraz uda się nam na pewno.
Jeżeli napisy mieliśmy nie w formacie tekstowym, a np. w formacie VobSub-a, to zadanie jest nawet prostsze, ale o tym w innym tutorialu.

4. No i przekonwertować

Nim przystąpimy do konwersji, musimy zdecydować czy zostawiamy napisy, które już były na płycie (o ile, rzecz jasna, w ogóle jakieś były) i czy materiał wideo jest w PAL czy w NTSC.
Jeżeli napisy były i decydujemy się je zostawić, trzeba sprawdzić jaką paletę kolorów wykorzystywały. Czyli szukamy w katalogu do którego zgrywaliśmy płytę plików z rozszerzeniem *.sup i używamy programu DVDSupHTML (wywołanie w postaci "DVDSupHTML.exe napisy.sup"). Otrzymujemy plik HTML, w którym interesuje nas opis dotyczący pojedynczego napisu, np.

Frame Rate = 25 fps
# 1
SP: 8975967 (= 5F F6 88 00) [00:01:39:18]
Address = 00000000, Size = 080E
time = 0.00 s (wait-time before applying this control header)
-- <show>, palette = 8232, alpha = FFF0
-- rect: left = 0, right = 719, top = 2, bottom = 479
time = 1.80 s (wait-time before applying this control header)
-- <hide>, palette = 0000, alpha = FFF0
-- rect: left = 0, right = 0, top = 0, bottom = 0
width = 720, height = 478
[00:01:39:18] - [00:01:41:13]


Co nas tu interesuje?

  1. FrameRate -nie zawsze wskazywany jest prawidłowe -te napisy tak naprawdę były w NTSC...
  2. Palette -paleta kolorów -mówi nam jakich kolorów używają napisy już istniejące. Lepiej nie wykorzystywać tych samych kolorów dla naszych napisów. Patrzymy, oczywiście, na pierwszy wpis dotyczący palety, bo on mówi nam o włączeniu/pojawieniu się danego napisu, drugi wpis wyłącza/wygasza dany napis
  3. Alpha -parametry kanału alfa (przezroczystości). Tu raczej problemów nie ma, bo w zasadzie każde napisy wykorzystują alfę w postaci FFF0

No to jak już wiemy, których kolorków unikać, do naszych napisów w formacie tekstowym dopisujemy jeden z dwóch nagłówków:
;NTSC ;PAL
FrameW=720
FrameH=480
FrameRate=29.97
FontName=Arial CE
FontCharSet=238
FontSize=21
FontStyle=BOLD
Delay=0
ShowBitmap=0
OnTop=0
Contour=2
Palette=7654
Alpha=FFF0
DynamicSize=0
Justify=C
FrameW=720
FrameH=576
FrameRate=25
FontName=Arial CE
FontCharSet=238
FontSize=21
FontStyle=BOLD
Delay=0
ShowBitmap=0
OnTop=0
Contour=2
Palette=7654
Alpha=FFF0
DynamicSize=0
Justify=C

UWAGA! Lepiej jest jednak ustawić DynamicSize na "0, a nie "1" jak było w poprzedniej wersji tutoriala -mój Philips miał czasem problemy z wyświetlaniem tak przygotowanych napisów

Dokładny opis znaczenia poszczególnych opcji można znaleźć na stronie autora DVDSupTools (http://web.quick.cz/FKasparek/Software/DVD/DVDSupTools.htm) i w helpie do poszczególnych programików z pakietu.
Po dodaniu nagłówka pozostało nam przekonwertować napisy korzystając z polecenia "DVDSupEncode.exe napisy.txt". Zostanie utworzony plik o nazwie o napisy.sup i napisy.log. W tym drugim pliku zapisywane są informacje na temat konwersji. Może się np. zdarzyć że napisy będą za długie i nie zmieszczą się na ekranie -odpowiedni wpis z numerem linii pojawi się w logu.

5. To co tygrysy lubią najbardziej, czyli authoring

Jak pewnie niektórzy wiedzą, pierwszym darmowym programem wyposażonym w opcję authoringu płyt DVD był IfoEdit. Niestety, okazało się, że nie nadaje się on do authoringu płyt w NTSC -przygotowana płyta mrozi się w niektórych odtwarzaczach stacjonarnych a czas trwania filmu skraca się do 80% wartości początkowej. Przez długi czas nie było na to rozwiązania, ale w końcu pojawił się ReJig, którego autorem jest znany m.in. z Xvida Nic. Program ma swoje wady (tworzenie gigantycznych plików tymczasowych z czym wiąże się brak współpracy z FAT32 przy dużych plikach), ale wreszcie możliwe jest złożenie płyty w NTSC.
Stąd też do właściwego authoringu płyty zalecam używanie ReJig-a, ale gdy chce szybko sprawdzić czy pasują napisy (czasowo i "kolorowo"), to robię szybki authoring w IfoEdit (DVDAuthor->Author New DVD) i przerywam po prostu proces po dwóch, trzech procentach. Także w IfoEdit koryguję kolory napisów. Zwykle (gdy wykorzystujemy napisy, które były na płycie) trzeba to zrobić w dwóch etapach:

  1. wczytujemy do IfoEdit oryginalny plik *.ifo, który dotyczył danego filmu (zwykle vts_01_0.ifo). Klikamy na w górnym okienku na gałąź VTS_PGCITI,a po jej rozwinięciu na VTS_PGC_1 (przy założeniu, że mieliśmy tylko jeden PGC) i wybieramy z menu Subtitle Color-> Copy Colors from this PGC. Tak przy okazji zapisujemy także położenie rozdziałów - Tools->Save CellTimes to file.
    Potem wczytujemy świeżo zauthorowany plik vts_01_0.ifo i postępujemy analogicznie, tylko że na końcu mamy Paste Colors into this PGC. Zapisujemy ten nowy plik *.ifo, zamykamy IfoEdit i uruchamiamy "płytkę". Wszystkie napisy, za wyjątkiem tych dodanych przez nas, powinny być normalnie widoczne.
  2. ponownie uruchamiamy IfoEdit i wczytujemy ten nasz właśnie poprawiony plik *.ifo, wchodzimy do gałęzi VTS_PGC_1 i szukamy informacji o kolorach. Trzeba będzie wprowadzić poprawki w palecie. Jeżeli użyliśmy palety 7654, to klikając po dwa razy na wartości kolorów zapisane szesnastkowo podajemy kolory jak w tabeli poniżej:
      [000000b5] Color 4 Y Cr CB 10 80 80
      [000000b9] Color 5 Y Cr CB 20 80 80
      [000000bd] Color 6 Y Cr CB 80 80 80
      [000000c1] Color 7 Y Cr CB eb 80 80

    Wreszcie można uruchomić ReJiga, wybrać opcję DVD Author. Okienka są podobne do tych w IfoEdit. Wyraźne są zaledwie dwie różnice. Pierwsza z nich to możliwość wyboru systemu PAL/NTSC oraz opcja automatycznego kopiowania kolorów napisów. W tym drugim okienku podajemy ścieżkę do korygowanego przed momentem pliku *.ifo. No i wybieramy "Create".
    Tu jeszcze drobna dygresja dotycząca rozdziałów. Potrafią się z nimi dziać cuda, zwłaszcza w NTSC. IfoEdit też nie robi tego idealnie, ale moim zdaniem lepiej niż ReJig czy ChapterExtractor, choć ten ostatni jest przeze mnie używany zamiennie z IfoEdit. Właśnie sprawdzenie położenia rozdziałów to pierwsza i najważniejsza rzecz do sprawdzenia po wygenerowaniu struktury płyty. Jeżeli coś będzie nie tak w porównaniu z oryginałem, to trzeba będzie pobawić się ChapterExtractorem. Druga rzecz, to sprawdzenie kolorów napisów. Ale o ile zrobiliśmy to już wcześniej z wykorzystaniem IfoEdit, nie powinno być problemów.

    6. Złożenie wszystkiego do kupy, czyli kończymy...

    Teraz przyszedł czas, na ostatni etap naszej pracy, choć akurat ja miewam z nim najwięcej problemów.
    Zaglądamy do katalogu gdzie leży sobie skopiowana nasza oryginalna płytka. Pliki vob zawierające filmy (czyli vts_01_1.vob itd., ale nie vts_01_0.vob) przenosimy sobie gdzieś na wszelki wypadek, albo kasujemy o ile brakuje nam miejsca. Tak naprawdę już ich nie będziemy potrzebowali. Na ich miejsce kopiujemy pliki vts_01_1.vob (i kolejne) wygenerowane przez ReJig-a. Jeżeli na oryginalnej płycie film był zawarty w plikach np.: vts_06_x.vob, to kopiując musimy zmienić nazwy plików tak, by były zgodne z początkową zawartością płyty.
    Warto zrobić także kopie zapasowe wszystkich plików *.ifo i *.bup (zarówno z oryginalnej płyty, jak i z nowo-authorowanej").
    Uruchamiamy IfoUpdate. W polu Original IFO Path wskazujemy plik vts_01_0.ifo oryginalnej płyty, a w polu Authored IFO Path - plik vts_01_0.ifo stworzony przez ReJig-a. Z kolei w polu Backup IFO Path podajemy miejsce, gdzie IFOUpdate ma zrobić kopię bezpieczeństwa. Opcje w IfoUpdate ustawiamy jak niżej, tryb pracy na standardowy (Mode->Standard).
    Opcje IfoUpdate (wersja pierwotna)
    Update (2004-02-19): Jeżeli IfoUpdate wyrzuca komunikat, że nowy ifo jest zbyt mały, żeby zapisać informacje o PGC, należy spróbować przestawić tryb pracy (Mode) na Adjusted Cell Mode

    Update (2004-09-07): Zauważyłem, że przy dotychczasowych ustawieniach IfoUpdate nie da się wczytać i obrabiać dalej wygenerownych płyt DVD w takich programach jak DVDShrink czy CloneDVD. Po paru eksperymentach doszedłem, że poniższe ustawienia nie powodujš takich problemów (z kolei IfoEdit zaczyna się wówczas buntować, ale to akurat w takim przypadku nie ma praktycznie znaczenia).

    Opcje IfoUpdate (nowa wersja)

    Czasami IfoUpdate zgłasza problemy (a to rozdziały, a to czasy trwania), czasem warto więc spróbować więc innych trybów pracy (Mode).
    No i teraz mamy (lub w zasadzie: powinniśmy mieć) na dysku nową wersję płyty DVD, już z polskimi napisami. Płytkę wypalić można na wiele sposobów, ja osobiście preferuję Nero 6.x i, oczywiście, wybieram tryb DVD Video.

    Powrót