Добро пожаловать на мой сайт!
Здесь Вы сможете найти полезную для себя информацию по обработке видео и аудио контента для MS Windows и LINUX.
Приятного просмотра!


Авторизация DVD-диска в Линукс при помощи программы dvdauthor.
Создание статичного меню и сборка структуры DVD-диска.

dvdauthor - это замечательная бесплатная программа, собирающая структуру DVD-диска из различных компонентов (фона, кнопок, видео и звуковых файлов) при помощи вспомогательных XML-файлов, в которых прописываются интрукции для сборки и работы диска. Она работает из консоли (не путать с QDVDAuthor - это графический интерфейс для dvdauthor), поэтому вы должны знать хотя бы основные комманды по работе с терминалом, уметь перемещаться из папки в папку, работать с файлами. Не пугайтесь, тут ничего сложного нет. Найти информацию по работе с ней можно в интернете (например, здесь http://www.ibm.com/developerworks/ru/library/l-roadmap2/).
Для получения более подробной информации по коммандам dvdauthor введите в терминале: man dvdauthor

Мы имеем видеоклип с смонтированным фильмом, перекодированным в формат MPEG-2 с расширением .vob:
film.vob с характеристиками видео 720х576, 25 к/с, аудио AC3 192 Кб/с стерео.

Создаём меню.
Откроем растровый редактор GIMP и выберем шаблон PAL-720x576.



В открывшейся пустой картинке при помощи интрументов линейки слева, справа, сверху и снизу делаем направлящие с отступами от краёв по 60 пикселей. Это границы, за пределы которого текст и кнопки не рекомендуется выводить, так как на многих телевизорах края кадра обрезаются.



Вставляем нужную нам картинку для фона как новый слой.
Далее, создав новый слой, рисуем кнопки (можно в виде надисей), не заходя за пределы безопасных полей. Сохраняем проект в формате XCF и экспортируем полученное изображение в формат PNG с именем файла menu.png.


Теперь нам нужно создать подсветку (subpicture) для наших кнопок, то есть при проигрывании меню диска по-умолчанию будет подсвечиваться первая кнопка, но при помощи клавиш навигации пульта управления плейера можно переместить выделение на другую кнопку.
Подсветка бывает двух видов: Highlight - подсвечивается выбранная кнопка меню, Select - подсвечивается кнопка меню при нажатии на неё.
Но таким способом можно сделать и другие эффекты, например напротив каждой кнопки можно нарисовать стрелочку, тут всё зависит от вашей фантазии.
Продолжая работать с нашим графическим файлом меню, выберем слой кнопок и продублируем его, переименуем в "Highlight".


Нажав правую клавишу на этом слое, выберите "Альфа канал->Выделение", либо выделите кнопки инструментом выделения, зажав клавишу Shift.
Далее выбираем красный цвет переднего фона на панели инструментов (ff0000), заходим в "Правка" и заливаем выделенную область кнопок, выбрав "Залить цветом переднего плана", либо можно выбрать «Обвести выделенное», в появившемся окне указать, что надо «Использовать один из инструментов», а в качестве инструмента выбирать «Кисть», ширину и стиль которой можно настроить на панели инструментов.


Мы получили слой с рамками для всех кнопок красного цвета (кстати, цвет может быть и другим).
Выключаем все слои, кроме Highlight и сохраняем в промежуточный файл highlight_temp.png, затем снова открываем его и преобразуем в 4-х цветное индексированное изображение: "Изображение-Режим-Индексированое-Создать оптимальную палитру-Максимальное число цветов-4". Сохранить в файл highlight.png
Затем опять продублируем слой кнопок и переименуем его в "Select". С этим слоем тоже проделываем вышеописанную процедуру, только цвет выберем другой, например зеленый (0cff00).
Сохраняем в файл select.png

Для нашего меню мы создали:
1.Фон (menu.png)
2.Подсветку для выбора кнопки (highlight.png)
3.Подсветку при нажатии на выбранную кнопку (select.png)
4.Звуковую фоновую дорожку, если нужно, в формате AC3 2.0(стерео)

Теперь нам нужно создать в текстовом редакторе файл menu.xml, который описывает параметры кнопок (имя и координаты), а также указывает на файлы, содержащие маски кнопок для разных режимов, т.е. на highlight.png и select.png.
<subpictures>
    <stream>
        <spu start="00:00:00.0" end="00:00:00.0"
                highlight="highlight.png"
                select="select.png"
                >
            <button name="playall" x0="408" y0="222" x1="660" y1="328" />
            <button name="button01" x0="406" y0="332" x1="664" y1="378" />
            <button name="button02" x0="460" y0="392" x1="624" y1="466" />
       </spu>
    </stream>
</subpictures>
Настало время немного поработать с консолью.
Для начала прописываем путь к папке с нашими созданными файлами (у меня он такой: newman@newman-desktop:/media/disk-2/VideoEdit/80/menu$)

Преобразуем картинку-фон в видео, введя в консоль следующие три комманды:

convert menu.png ppm:- | \
ppmtoy4m -n50 -F25:1 -A59:54 -I p -r | \
mpeg2enc -n p -f8 -b5000 -a2 -o menu.m2v


Объединим звук (sound.ac3) и видео (menu.m2v) в один временный видеофайл для меню:

mplex -f 8 -o menu-temp.mpeg menu.m2v sound.ac3

Это было нужно, чтобы затем в получившийся файл menu-temp.mpeg прописать поток субтитров (кнопок) для меню из управляющего файла menu.xml. Это делается коммандой:

spumux menu.xml < menu-temp.mpeg > menu.mpeg

Вот теперь у нас получился полноценный mpeg2-файл (menu.mpeg) для меню с фоном, кнопками и музыкальным сопровождением.

Теперь лишь осталось собрать структуру нашего диска, т.е. заняться авторизацией DVD.
Для этого создадим в текстовом редакторе файл с именем dvdauthor.xml

<dvdauthor dest="DVD">
  <vmgm />
  <titleset>
    <menus>
      <video format="pal" aspect="4:3"/>
      <pgc>
	<button name="playall"> jump title 1 chapter 1; </button>
	<button name="button01"> jump title 1 chapter 9; </button>
	<button name="button02"> jump title 1 chapter 10; </button>
	<vob file="menu.mpeg" pause="inf" />
       <post> jump cell 1; </post>
      </pgc>
    </menus>

    <titles>
      <video format="pal" aspect="16:9"/>
      <audio format="ac3" lang="RU" />
      <pgc>
	<vob file="film.vob"
	     chapters="0,08:01,18:31,25:08,33:13,35:14,41:37,49:05,58:07,65:00"/>
 	<post> call menu; </post>
      </pgc>
    </titles>
  </titleset>
</dvdauthor>
В этом примере мы не используем главное меню, а сразу подменю, содержащее три зоны кнопок: playall, button01 и button02.
Наименования кнопок в данном файле совпадают с наименованиями кнопок, использованными при создании DVD меню (см. файл menu.xml).

Комментарии:
video format="pal" aspect="4:3" указывает, в каком стандарте видео и с каким соотношением сторон показать содержимое файла menu.mpeg.
button name="playall" jump title 1 chapter 1; указывает, что нажав на эту кнопку, будет воспроизведена первая глава (chapter 1) видео, определённая параметром chapters тэга vob.
vob file="menu.mpeg" pause="inf" указывает имя и путь к файлу для меню.
vob file="film.vob" chapters="0,08:01,18:31,25:08....... размечает видео из файла film.vob на временные отрезки или главы в форме ММ:СС, первая цифра 0 соответствует chapter 1, вторая 08:01 - chapter 2...... последняя 65:00 - chapter 10. При указании следующего chapter в dvdauthor.xml округляйте значение секунд вперёд.
call menu; указывает, что по окончании воспроизведения нужно перейти в меню.

Теперь осталось выполнить комманду для авторизации диска:

dvdauthor -x dvdauthor.xml

По-умолчанию в папке DVD будет собрана структура диска.
Если у вас процесс прошёл без ошибок, поздравляю!
Если же появилась ошибка при сборке, ещё раз просмотрите файл dvdauthor.xml, нет ли в нём ошибок.

Для сборки полученной DVD-структуры в образ iso для дальнейшей записи на диск воспользуемся консольной программой genisoimage:

genisoimage -dvd-video -o "1.iso" "DVD"
где -dvd-video - тип файловой системы (UDF),
-o "1.iso" - название собранного образа iso,
"DVD" - папка, содержащая структуру нашего диска.

Записать данный образ можно программой для прожига дисков, например K3b, или из консоли программой growisofs из пакета dvd+rw-tools.




djnewman@rambler.ru
2009 Newman. All Right Reserved.
Hosted by uCoz