Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта 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. Если используется меню, должен быть аргумент -topmenu, который указывает на файл с меню для каждой записи в наборе заголовков.

-chaptersn

Создает главу каждые n минут востроизведения видео. Этот аргумент можно разместить в любом месте в списке файлов и он будет действителен для всех последующих названий до тех пор, пока не встретится новый аргумент -chapters. Использование этого аргумента может увеличить время записи, так как необходимо вычислять продолжительность воспроизведения видео.

Эти аргументы, как правило, предназначены для особых случаев, за исключением последнего аргумента. По умолчанию, 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 и проверьте результат.


Назад Оглавление Вперед



Средняя оценка 3 при 1 голосовавших