www.oxiv.net

środa, 10 Maj 2006

Przygotowanie DVD-Video w systemie Linux

Filed under: Linux — Tagi: , , — smok @ 21:08

Dokument ten opisuje przygotowanie płyty DVD-Video z filmem przy pomocy systemu operacyjnego Linux. W opisywanym przypadku jako przykładem posłużyłem się dystrybucją Ubuntu (wersja Dapper Drake), jednak poniższe wskazówki będą pomocne użytkownikom wszystkich innych dystrybucji. Aby stworzyć płytę, trzeba posiadać plik zawierający materiał przygotowany zgodnie ze standardem DVD-Video, jeżeli nie wiesz jak to zrobić zapraszam do zapoznania się z Konwersja materiału Digital Video na MPEG2 zgodny z DVD-Video. W dokumencie tym użyto następującego oprogramowania z dystrybucji Ubuntu: dvdauthor (z repozytorium ‘Universe’), dvd+rw-tools (‘Main’), mkisofs(‘Main’ – instalowany jako zależność dvd+rw-tools), xine-ui (‘Universe’). Zdaję sobie sprawę, że istnieje wiele sposobów zrobienia płyty DVD-Audio, ja przedstawiam ten który stosuje.

Logiczny układ danych na płycie DVD-VideoPrzygotowanie pliku konfiguracvyjnego dla DVD-Video bez menu startowegoTworzenie i testowanie systemu plików DVD-VideoNagrywanie plików DVD na płytę

Logiczny układ danych na płycie DVD-Video

Dużą przewagą standardu DVD nad kasetą video jest jego możliwość szybkiego przejścia do dowolnego miejsca. Pomocne jest tutaj menu umożliwiające przejście do wybranego miejsca. Aby zrozumieć menu (i limity z nim związane) należy zapoznać się z logiczną/hierarchiczną strukturą płyty DVD-Video. W opisie posłużę się angielskimi nazwami – nie są mi znane ich prawidłowe polskie odpowiedniki a tłumaczenie na siłę wydaje mi się bezsensowne.
Płyta DVD składa się z:
- TitleSet – najwyższy poziom w strukturze, każda płyta posiada co najmniej jeden.
- Title – każdy ‘TitleSet’ zawiera co najmniej jeden ‘Title’. Tak naprawdę każdy ‘Title’ jest samodzielnym filmem. Jeżeli włożysz płytę DVD bez menu, odtwarzacz uruchomi pierwszy ‘Title’ z pierwszego „TitleSet’ a następnie się zatrzyma.
- Chapters (Rozdziały) – ‘Title’ jest podzielony na ‘Chapters’. Pomagają one w nawigacji po filmie. Gdy odtwarzacz DVD dojdzie do końca ‘Chapters’(rozdziału) to zaczyna odtwarzać następny.
- Menu – są odpowiedzialne za nawigację po dysku DVD. Istnieją dwa rodzaje ‘Menu’: ‘VMGM’ przypisane do całego dysku i ‘VTSM’ przypisane do ‘TitleSet’. Może być kilka menu każdego typu.
Należy pamiętać, że istnieje klika ograniczeń dotyczących menu. ‘VMGM menu’ może przejść do:
- innego ‘VMGM Menu’,
- pierwszego ‘VTSM menu’ z ‘TitleSet’
- odtwarzania ‘TitleSet’-u.
‘VTSM Menu’ może przejść do:
- innego ‘VTSM Menu’ w tym samym ‘TitleSet’,
- ‘Title’ albo ‘Chapters’ w bieżącym ‘TitleSet’,
- pierwszego ‘VMGM Menu’ na dysku.
Wszystkie te informacje brzmią skomplikowanie, lecz należy pamiętać, że chyba najczęściej tworzone są płyty DVD, zawierające jeden ‘TitleSet’, jeden ‘Title’, jedno ‘VMGM Menu’ i kilka ‘Chapters’. Układ plików na płycie DVD-Video ma swoją określona strukturę dlatego zwykłe skopiowanie plików ze strumieniem MPEG na płytę nie przyniesie rezultatu. W przygotowaniu struktury pomagają nam odpowiednie programy, które robią za nas „czarną robotę”.

Przygotowanie DVD-Video bez menu startowego

Do przygotowywania struktury plików DVD użyjemy programu DVDAuthor’. Program ten działa z konsoli. Najłatwiejszym sposobem jego pracy jest stworzenia pliku konfiguracyjnego a następnie uruchomienie go z tym plikiem. Plik konfiguracyjny jest w formacie XML, do jego stworzenia można użyć dowolnego edytora tekstu. Plik taki umieszczam w katalogu, w którym znajdują się pliki w formacie MPEG2 zgodne ze standardem DVD-Video. W katalogu tym tworzę podkatalog o nazwie ‘dvd’. Oto przykład pliku konfiguracyjnego:

<dvdauthor dest="dvd">
    <vmgm />
    <titleset>
       <titles>
            <pgc>
                <vob file="nadvd.mpg" />
            </pgc>
        </titles>
    </titleset>
</dvdauthor>

W pierwszej lini parametr ‘dest’ służy do ustawiamia ścieżki gdzie program ma utworzyć strukturę plików. Można użyć formatu bezwzględnego np. /home/ktos/dvd. Ja używam ścieżki względnej, dlatego, że program uruchamiam z miejsca, gdzie znajdują się pliki w formacie MPEG2 i utworzyłem tam wcześniej podkatalog docelowy. Druga linia jest zamknięciem sekcji definiującej główne menu ‘VMGM Menu’, równie dobrze mogła by mieć postać (zgodnie z zasadami XML):

    <vmgm>
    </vmgm>

Trzecia i czwarta linia otwierają ustawienia ‘TitleSet’ i ‘Title’. Linia piąta otwiera parametry do konfiguracji sekcji PGC, odpowiedzialnej w programie DVDAuthor za właściwą konfigurację menu lub ‘Title’. Linia sześć przekazuje DVDAuthor-owi, że w konfigurowanej sekcji plik ‘nadvd.mpg’ zawiera dane dla wcześniej otwartej sekcji ‘pgc’. Tak samo jak przy parametrze ‘dest’ można użyć ścieżki względnej i bezwzględnej (ja używam względnej). Pozostałe linie zawierają zamknięcia wcześniej otwartych sekcji. Warto wiedzieć, że sekcja PGC może zawierać kilka sekcji ‘vob’, inne warianty zostaną omówione w dalszej części dokumentu. Gdy używasz ścieżek względnych plik konfiguracyjny powinien być zapisany w odpowiednim katalogu (prawdopodbnie, tam gdzie znajdują się pliki w formacie MPEG2). Jak widać na tym przykładzie, odpowiednie ustawienie pliku konfiguracyjnego jest dosyć proste, w przypadku gdy mamy jeden plik z danymi. Gdy mamy ich więcej, plik konfiguracyjny nie jest o wiele bardziej skomplikowany, ale o tym w dalszej części.

Tworzenie i testowanie systemu plików DVD-Video

Gdy mamy gotowy plik konfiguracyjny, nie zostaje nam nic innego jak przygotowanie właściwego systemu plików DVD-Video, a potem jego przetestowanie. jak wcześniej wspomniałem DVDAuthor jest programem pracującym pod konsolą. Dlatego przed uruchomieniem należy przejść do katalogu, gdzie zapisaliśmy plik (szczególnie jeżeli używamy ścieżek bezwzględnych). Należy upewnić się, że strwożyliśmy katalog, w którym mamy stworzyć system plików DVD-Video (w pokazanym wyżej przykładzie ‘dvd’). Teraz uruchamiamy program z parametrem -x i nazwą pliku konfiguracyjnego:

$ dvdauthor -x dvd.xml

Trzeba pamiętać o tym, że DVDAuthor jest w stanie stworzyć katalog wskazany jako docelowy (ustawiony w parametrze ‘dest’), dlatego po zakończeniu jego działania upewnij się, że dane zostały stworzone w odpowiednim katalogu. Katalog docelowy powinien zawierać dwa podkatalogi ‘AUDIO_TS’ i ‘VIDEO_TS’, ponadto katalog ‘VIDEO_TS’ powinien zawierać pliki *.VOB i *.IFO:

$ /mnt/movies/proba/dvd$ ls -l
razem 0
drwxr-xr-x 2 tom tom  6 2006-05-09 00:16 AUDIO_TS
drwxr-xr-x 2 tom tom 25 2006-05-09 00:16 VIDEO_TS

Gdy źle ustawiliśmy ścieżkę do pliku MPEG2, DVDAuthor pokaże błąd:

STAT: Processing nadv.mpg...
ERR:  Error opening 8.mpg: Nie ma takiego pliku ani katalogu

Gdy plik MPEG2 nie jest w odpowiednim formacie, DVDAuthor wyświetli ostrzeżenia:

WARN: Skipping sector, waiting for first VOBU...
WARN: Skipping sector, waiting for first VOBU...
WARN: Skipping sector, waiting for first VOBU...
WARN: Skipping sector, waiting for first VOBU...

WARN: Partial sector read (1238 bytes); discarding data.

W takim wypadku, musimy oczywiście skorygować wpisy w pliku konfiguracyjnym. Prawidłowe zakończenie pracy programu jest sygnalizowane przez:

INFO: Generating VTS with the following video attributes:
INFO: MPEG version: mpeg2
INFO: TV standard: pal
INFO: Aspect ratio: 4:3
INFO: Resolution: 720x576
INFO: Audio ch 0 format: ac3/2ch, 48khz drc

STAT: fixed 9364 VOBUS
INFO: dvdauthor creating table of contents
INFO: Scanning dvd/VIDEO_TS/VTS_01_0.IFO

Teraz sprawdzimy, czy nasze DVD-Video działa poprawnie, użyjemy do tego programy xine:

$ xine dvd:/mnt/movies/proba/dvd

Przy uruchamianiu xine, należy podać bezwzględną ścieżkę do katalogu w którym stwożyliśmy system plików DVD-Video, gdy podamy względną xine nie uruchomi naszego filmu. Do testowania wszystkich stworzonych filmów rekomenduje użycie xine, ponieważ ma on możliwość nawigacji po menu płyty. Innym programem wspierającym nawigację jest ‘ogle’.

Nagrywanie plików DVD na płytę

Gdy jesteśmy pewni, że system plików został utworzony poprawnie, nagramy go na płytę DVD. Posłużymy się w tym celu programem ‘growisofs’ z pakietu dvd+rw-tools. Tak samo, jak DVDAuthor jest to program konsolowy. Przygotowując się do nagrywania można w pierwszej kolejności stworzyć obraz przy pomocy mkisofs, jednak growisofs jest w stanie stworzyć obraz w locie i tej jego cechy użyjemy. Wypalenia filmu umożliwia komenda:

$ growisofs -dvd-compat -V film -speed=1
-Z /dev/hdc -J -dvd-video /mnt/movies/proba/dvd

Użyte wyżej parametry programu growisofs:
-dvd-compat – nagrywanie w trybie kompatybilności,
umożliwia odtważanie we wszystkich napędach DVD,
-V film – nadanie nazwy ‘film’ naszej płycie,
-speed=1 – ustawienie szybkości nagrywania na 1 (może nie działać z niektórymi nośnikami i nagrywarkami),

-Z /dev/hdc – ustawienie urządzenia nagrywającego,

-J -dvd-video /mnt/movies/proba/dvd – ustawienie parametrów dla mkisofs: płyta DVD-Video, bezwzględna ścieżka do katalogu stworzonego przez DVDAuthor. Po nagraniu płyty, pozostaje sprawdzić jak zachowuje się w naszym odtwarzaczu stacjonarnym, lub przy użyciu xine:

$ xine dvd:/dev/hdc

Brak komentarzy »

Brak komentarzy.

Kanał RSS z komentarzami do tego wpisu.

Dodaj komentarz

Ta strona jest oparta na WordPress