Итак, допустим, у нас есть некий avi-файл (xvid) и два файла с субтитрами (например, filmRUS.srt, filmENG.srt), которые мы хотим конвертировать в DVD-формат. В этой заметке мы будем использовать только инструменты командной строки. Дело в том, что большинство графических приложений в Linux для этих задач используют консольные утилиты, как то: FFmpeg, MEncoder и dvdauthor.

Давайте, попробуем:

1. Преобразование нашего .avi-файла используя FFmpeg или MEncoder в подходящий формат - .mpg

Предпочтительней будет использовать FFmpeg, так как для тех же операций он требует гораздо меньше параметров командной строки. В качестве примера приведу конвертирование AVI-файла в формат PAL DVD:

<br>ffmpeg -i film.avi -aspect 4:3 -target pal-dvd dvd.mpg<br>


Если же мы захотим повторить ту же операцию с помощью MEncoder, нам придётся добавить ряд параметров коммандной строки. Чтобы сделать свою жизнь проще, нужно пользоваться скриптами :) Вот пример:

<br>#! /bin/bash<br># bash script for creating a pal dvd<br># movie is sneakers!<br><br>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \<br>-vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \<br>-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\<br>keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \<br>-o sneakers.mpg sneakers.avi<br>


Примечание: формат DVD сильно ограничен, то есть битрейт и соотношение экрана предварительно определены. Взгляните на эту таблицу:







































































































ФорматРазрешениеВ. кодекВ. битрейтЧастота дискретизацииA. кодекA. битрейтFPSСоотношение сторон
NTSC DVD720x480, 704x480, 352x480, 352x240MPEG-29800 kbps48000 HzAC-3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9 (только для 720x480)
NTSC DVD352x240[a]MPEG-11856 kbps48000 HzAC-3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9
NTSC SVCD480x480MPEG-22600 kbps44100 HzMP2384 kbps (max)30000/10014:3
NTSC VCD352x240MPEG-11150 kbps44100 HzMP2224 kbps24000/1001, 30000/10014:3
PAL DVD720x576, 704x576, 352x576, 352x288MPEG-29800 kbps48000 HzMP2,AC-3,PCM1536 kbps (max)254:3, 16:9 (только для 720x576)
PAL DVD352x288[a]MPEG-11856 kbps48000 HzMP2,AC-3,PCM1536 kbps (max)254:3, 16:9
PAL SVCD480x576MPEG-22600 kbps44100 HzMP2384 kbps (max)254:3
PAL VCD352x288MPEG-11152 kbps44100 HzMP2224 kbps254:3

[a]

Эти разрешения редко используются для DVD, поскольку имеют довольно низкое качество.



2. Добавим субтитры с помощью spumux

Создадим два XML-файла с содержимым ниже, и сохраним их в качестве "filmRUS.xml" и "filmENG.xml" (то есть, для каждого языка).

<subpictures><br>    <stream><br>       <textsub filename="filmRUS.srt" characterset="cp1251"<br>                    fontsize="28.0" font="devedesans.ttf" horizontal-alignment="left"<br>                    vertical-alignment="bottom" left-margin="60" right-margin="60"<br>                    top-margin="20" bottom-margin="30" subtitle-fps="25"<br>                    movie-fps="25" movie-width="720" movie-height="574"<br>                    force="yes"<br>        /><br>     </stream><br></subpictures>


Кодировку указываем исходя из того, в какой кодировке исходные файлы с субтитрами.

XML-файлы содержат информацию, необходимую для spumux. Имена опций говорят сами за себя. Шрифт можно использовать любой понравившийся, присутствующий в системе.

Теперь создаём MPG-файл с субтитрами:

<br>spumux -s0 filmRUS.xml filmRUS.mpg<br>rm film.mpg<br>spumux -s1 filmENG.xml filmRUSENG.mpg<br>rm filmRUS.mpg<br>


3. Создаём файловую систему DVD при помощи dvdauthor в два этапа:

Создаём простой текстовый файл со следующим содержимым и сохраняем его как auth.xml

<dvdauthor><br>    <vmgm /><br>    <titleset><br>        <titles><br>            <subpicture lang="ru"/><br>            <subpicture lang="en" /><br>            <pgc><br>                <vob file="filmRUSENG.mpg" /><br>            </pgc><br>        </titles><br>    </titleset><br></dvdauthor>


и вводим следующую команду в терминале:

<br>dvdauthor -o mydvd -x auth.xml<br>


В результате чего получим файловую систему DVD в директории mydvd.

4. Осталось записать всё это добро на диск!

<br>growisofs -Z /dev/dvd -dvd-video mydvd/<br>


Опция -Z сотрёт диск, если он не будет пустым.

Вот и всё :) Ничего сложного :)