Итак, допустим, у нас есть некий 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 DVD | 720x480, 704x480, 352x480, 352x240 | MPEG-2 | 9800 kbps | 48000 Hz | AC-3,PCM | 1536 kbps (max) | 30000/1001, 24000/1001 | 4:3, 16:9 (только для 720x480) |
| NTSC DVD | 352x240[a] | MPEG-1 | 1856 kbps | 48000 Hz | AC-3,PCM | 1536 kbps (max) | 30000/1001, 24000/1001 | 4:3, 16:9 |
| NTSC SVCD | 480x480 | MPEG-2 | 2600 kbps | 44100 Hz | MP2 | 384 kbps (max) | 30000/1001 | 4:3 |
| NTSC VCD | 352x240 | MPEG-1 | 1150 kbps | 44100 Hz | MP2 | 224 kbps | 24000/1001, 30000/1001 | 4:3 |
| PAL DVD | 720x576, 704x576, 352x576, 352x288 | MPEG-2 | 9800 kbps | 48000 Hz | MP2,AC-3,PCM | 1536 kbps (max) | 25 | 4:3, 16:9 (только для 720x576) |
| PAL DVD | 352x288[a] | MPEG-1 | 1856 kbps | 48000 Hz | MP2,AC-3,PCM | 1536 kbps (max) | 25 | 4:3, 16:9 |
| PAL SVCD | 480x576 | MPEG-2 | 2600 kbps | 44100 Hz | MP2 | 384 kbps (max) | 25 | 4:3 |
| PAL VCD | 352x288 | MPEG-1 | 1152 kbps | 44100 Hz | MP2 | 224 kbps | 25 | 4:3 |
[a] | ||||||||
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 сотрёт диск, если он не будет пустым.
Вот и всё :) Ничего сложного :)
Комментарии (0)
Пока нет комментариев. Будьте первым!