Библиотека сайта rus-linux.net
Приемы работы в Ubuntu.
Глава 3: Мультимедиа
Оригинал: "Ubuntu Hacks / Multimedia"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: август 2010 г.
Совет # 36: Создаем видеодиск DVD
Используйте скрипты tovid для автоматического преобразования различных видеоформатов в DVD.
До того момента, пока не подешевели записывающие устройства DVD и носители информации, создание своих собственных дисков DVD было сложным делом. Даже сегодня, в зависимости от того, какими инструментальными средствами вы пользуетесь, создание DVD под Linux может оказаться сложным делом. Но с набором скриптов tovid (http://tovid.org), вы можете легко конвертировать практически любой водеоформат в формат, совместимый с DVD.
Итак у вас есть видеозапись (или несколько видеозаписей), которые вы хотите конвертировать в DVD. Первый шаг состоит в конвертировании видеозаписи в формат, совместимый со стандартом DVD. Хотя вы можете непосредственно использовать mencoder или transcode для выполнения этого преобразования, настройка всех параметров может оказаться сложной и запутанной. К счастью, для решения этой проблемы был создан замечательный инструмент - tovid. Пакет tovid представляет собой наборы скриптов, которые автоматизируют процесс преобразования видео в VCD. В этих скриптах используются несложные понятные аргументы и, поскольку в выходном потоке показаны команды, которые исполняются, вы также можете использовать скрипты для того, чтобы больше узнать о процессе конвертирования.
Устанавливаем пакет tovid
Для того, чтобы установить tovid, скачайте последнюю версию пакета с официальной страницы проекта по ссылке http://tovid.org. Основной инструмент в комплекте также называется tovid и он использует пакеты mplayer, mjpegtools, ffmpeg, mkisofs, dvdauthor, transcode, vcdimager и normalize-audio, которые выполняют преобразование видео, поэтому вам нужно заранее установить все эти пакеты (вам нужен будет доступ к репозитариям universe и multiverse [Совет # 60]). Например:
$ sudo apt-get install mplayer mjpegtools ffmpeg mkisofs \\ dvdauthor normalize-audio transcode vcdimager
После того, как все требования будут соблюдены, скачайте последний релиз и распакуйте его:
$ tar -xzvf tovid-0.25.tar.gz
Теперь перейдите в директорий tovid, который был создан командой tar, а затем запустите внутри директория скрипт configure. Этот скрипт автоматизирует в вашей системе процесс установки пакета tovid, и как только установка закончится, вы сможете начать конвертирование:
greenfly@ubuntu:~$ cd tovid-0.25 greenfly@ubuntu:~tovid-0.25$ ./configure
Скрипт configure проверит, установлены ли у вас все необходимые зависимости. Если у вас возникли проблемы с зависимостями, обратитесь за информацией о том, как узнать точное имя необходимого пакета, к разделу "Поиск пакетов в командной строке" [Совет # 58]. После того, как скрипт configure найдет все необходимые зависимости, будет запущен скрипт setup.sh:
greenfly@ubuntu:~tovid-0.25$ sudo ./setup.sh
Конвертируем видеозапись
Как только пакет tovid будет установлен, можно будет преобразовывать видео. Аргументы в пакете tovid достаточно просты. Единственная трудность, определить какой из форматов NTSC или PAL будет использоваться, и какое следует задать для видео соотношение сторон экрана, чтобы tovid знал, как правильно изменить размер видео. Следует ли использовать форматы NTSC или PAL, зависит от того, где вы живете (или, более конкретно, какой телевизионный приемник вы используете). Если вы живете в Соединенных Штатах, используйте NTSC. Если вы живете в Европе или Японии, используйте PAL.
В tovid поддерживается полноэкранное (4:3), широкоформатное
(16:9), а также театрально широкоэкранное (2.35:1) соотношение сторон,
задаваемое с помощью, соответственно, параметров -full
, -wide
и -panavision
. Вообще говоря, если вы создаете DVD для домашнего видео или ТВ шоу, вы, вероятно, будете использовать -full
(что в tovid используется по умолчанию, если вы не указываете параметр). Если источником видео является фильм, вы будете использовать параметр -wide
или -panavision
в зависимости от того, каков формат видео. Если вы не уверены, запустите с видеофайлом утилиту idvid, поставляемую в комплекте с tovid, которая выдаст в выходных данных ширину и высоту видеокадра, а затем разделите ширину на высоту:
$ idvid sample.avi ----------------------------------- idvid video identification script Version 0.25 Written in 2004 by Eric Pierce http://tovid.sourceforge.net/ ---------------------------------- Gathering video information. This may take several minutes, so please be patient... ===================================================== File: sample.avi Width: 512 pixels Height: 384 pixels ... $
В этом примере соотношение сторон видео равно 512/384 или 4:3.
Когда соотношение сторон выбрано, запустите tovid с параметром -dvd
для того чтобы создать новый MPEG2 файл, совместимый с DVD. В пакете tovid также используется аргумент -in
, за которым указывается входной файл, и аргумент -out
, за которым следует имя выходного файла (без указания расширения файла):
$ tovid -dvd -ntsc -full -in sample.avi -out output Probing video for information. This may take several minutes... Input file is 512 x 384 at 23.976 fps. Reported running time is 1267 seconds. Source is not 29.970 fps. Adjusting to 29.970 fps. Scaling and/or padding with letterbox bars Scaling 512 x 384 directly to 720 x 480 The encoding process is estimated to require 886 MB of disk space. You currently have 21396 MB available in this directory. ========================================================= Testing mplayer stability with -vc dummy option: Test succeeded! Creating WAV of audio stream with the following command: mplayer -quiet -vo null -ao pcm "sample.avi" -vc dummy -ao pcm:file=stream. wav ========================================================= ========================================================= Encoding WAV to ac3 format with the following command: ffmpeg -i stream.wav -ab 224 -ar 48000 -ac 2 -acodec ac3 -y "output.ac3" Audio encoding finished successfully ========================================================= Creating and encoding video stream using the following commands: nice -n 0 mplayer -benchmark -nosound -noframedrop -noautosub -vo yuv4mpeg - vf-add pp=hb/vb/dr/al:f -vf-add hqdn3d -vf-add scale=720:480 "sample.avi" cat stream.yuv | yuvfps -r 30000:1001 -n -v 0 | nice -n 0 mpeg2enc -M 2 -a 2 -f 8 -b 8000 -g 4 -G 11 -D 10 -F 4 -v 0 -n n -4 2 -2 1 -q 5 --keep-hf -o "output.m2v"
Если у вас есть более одной видеозаписи, которые вы бы хотели конвертировать, вы можете воспользоваться командой tovid-batch. Команда tovid-batch использует те же самые аргументы, что и tovid, за исключением лишь того, что используется аргумент -infiles
вместо -in
, и вам не нужно указывать имя выходного файла; tovid-batch будет определять имя выходного файла по имени входного файла. Так что если у вас есть директорий с полноэкранными файлами .avi, которые вы хотите конвертировать в DVD, выполните следующую команду:
$ tovid-batch -dvd -full -ntsc -infiles *.avi
Создаем файл XML
Следующим шагом будет создание специального файла XML, в котором описывается структура DVD. Вы можете использовать утилиту makexml, входящую в состав tovid, и создать файл XML, который можно будет использовать с dvdauthor. В makexml имеется ряд аргументов, которые используются для DVD.
В таблице 3-3 перечислены аргументы, используемые для DVD.
Таблица 3-3. Аргументы makexml
Аргумент | Функция |
-groupvideofile1<tt/>videofile2 ...-endgroup | Список видео файлов, которые добавляются под одним названием. Это удобно в случае, если вы разделили фильм на несколько видео-файлов. |
-titlesets | Принудительное создание набора заголовков из одного названия. Это удобно в случае, если в названиях DVD присутствует указание на различные видеоформаты, например, PAL + NTSC или 4:3 + 16:9. Если используется меню, должен быть аргумент |
-chaptersn | Создает главу каждые |
Эти аргументы, как правило, предназначены для особых случаев, за исключением последнего аргумента. По умолчанию, makexml не будет выделять главы в DVD, а это значит, что у вас не будет быстрой навигации по DVD. Чтобы добавить главы, используйте аргумент -chapters
и укажите интервал, например, 5 или 10 минут. Таким образом, у вас будет создана быстрая навигация по DVD. Чтобы создать файл XML для видеозаписи - примера с главами, создаваемыми каждые пять минут, наберите следующую команду:
$ makexml -dvd -chapters 5 output.mpg output --------------------------------------------- makexml A script to generate XML for authoring a VCD, SVCD, or DVD. Part of the tovid suite, version 0.18b Written in 2004 by Eric Pierce http://tovid.sourceforge.net/ -------------------------------------------- Adding title: output.mpg as title number 1 of titleset 1 Calculating the duration of the video using the following command: idvid -terse "output.mpg" This may take a few minutes, so please be patient... The duration of the video is 00:21:07 Closing titleset 1 with 1 title(s). ========================================== Done. The resulting XML was written to output.xml. You can create the DVD filesystem by running the command: dvdauthor -x output.xml Thanks for using makexml!
где output.mpg
- это название файла с фильмом, над которым ведется работа, а output
- имя файла XML, который создается (.xml добавляется автоматически).
Создаем файловую структуру DVD
Когда файл XML файл будет создан, следующим шагом будет создание файловой структуры DVD. Команда dvdauthor имеет ряд параметров, которые можно использовать для создания специальной файловой структуры DVD, но, поскольку makexml уже сделал за вас эту работу, вы можете просто передать в dvdauthor в качестве аргумента ваш файл XML. Утилита makexml почти в самом конце выдаваемых ею данных также укажет команду, которой следует воспользоваться, поэтому при создании файловой структуры DVD для нашего примера наберите следующую команду:
$ dvdauthor -x output.xml DVDAuthor::dvdauthor, version 0.6.11. Build options: gnugetopt magick iconv freetype fribidi Send bugs to INFO: Locale=en_US INFO: Converting filenames to ISO-8859-1 INFO: dvdauthor creating VTS STAT: Picking VTS 01 STAT: Processing output.mpg... STAT: VOBU 3184 at 529MB, 1 PGCS INFO: Video pts = 0.178 .. 1268.077 INFO: Audio[0] pts = 0.178 .. 1267.506 STAT: VOBU 3194 at 530MB, 1 PGCS INFO: Generating VTS with the following video attributes: INFO: MPEG version: mpeg2 INFO: TV standard: ntsc INFO: Aspect ratio: 4:3 INFO: Resolution: 720x480 INFO: Audio ch 0 format: ac3/2ch, 48khz drc STAT: fixed 3194 VOBUS INFO: dvdauthor creating table of contents INFO: Scanning output/VIDEO_TS/VTS_01_0.IFO
dvdauthor создаст директорий с именем output и запишет в нем файловую структуру DVD: AUDIO_TS и VIDEO_TS. Если вы прежде, чем запишите DVD, захотите его проверить, вы можете воспользоваться mplayer и, указав аргумент -dvd-device
, воспроизвести ваше видео из этой файловой файловой структуры:
$ mplayer dvd://1 -dvd-device output/
Эта команда воспроизводит первый заголовок файловой структуры DVD, находящейся в директории output
. Если вы хотите воспроизвести другие заголовки, укажите это в командной строке.
Записываем диск DVD
Теперь пришло время записать файловую структуру на DVD. Откройте K3b [Совет # 34], выберите File→New Project→New Video DVD Project (Файл → Новый проект → Новый DVD видео проект). Найдите в верхней панели файловую систему вашего DVD, а затем перетащите файлы из директориев AUDIO_TS (если таковые имеются) и VIDEO_TS в соответствующие директории в нижней панели. Затем нажмите кнопку Burn (Запись) с тем, чтобы задать параметры записи DVD, наконец, запишите DVD.
Если вы хотите записывать DVD из командной строки, вам необходимо установить пакет dvdrtools, который является вариантом утилиты cdrecord, предназначенной для поддержки устройств записи DVD. Пакет dvdrtools уже собран для Ubuntu, поэтому установите его с помощью менеджера пакетов, которым вы предпочитаете пользоваться.
После того, как пакет dvdrtools будет установлен, сначала нужно будет воспользоваться входящей в его состав утилитой mkisofs, которая создаст из вашей файловой структуры образ диска DVD:
$ mkisofs -dvd-video -udf -o dvd.iso output/
После того, как файл dvd.iso будет создан, вы можете перейти к нему в вашем файловом браузере, щелкнуть по нему правой кнопкой мыши и выбрать вариант "Burn to DVD" ("Записать на DVD)". Либо, если вы предпочитаете командную строку, используйте утилиту dvdrecord того, чтобы записать этот файл:
$ dvdrecord -dao speed=2 dev=/dev/dvdrw dvd.iso
Замените параметр dev=/dev/dvdrw на значение, соответствующее вашему записывающему устройству DVD.
После того, как вы создадите DVD, вставьте его в ваш плейер DVD и проверьте результат.
Назад | Оглавление | Вперед |