Сергей Яремчук - 200 лучших программ для Linux
Программы для перекодирования видео
Часто возникает задача перекодировать видеофайл из одного формата в другой. Традиционным инструментом для этих целей является консольная утилита MEncoder, устанавливаемая при компиляции вместе с MPlayer и построенная фактически на том же коде. Если установка последнего производилась при помощи пакетов, то, скорее всего, mencoder будет находиться в отдельном одноименном пакете. MEncoder понимает те же источники сигнала, что и MPlayer, может конвертировать видеофайлы во все форматы (MPEG-1, 2, 4 и другие), контейнеры (AVI, Matroska, ASF, Ogg) и кодеки (DivX, XviD, lavc и прочие), понимаемые MPlayer; поддерживаются все фильтры, которые может использовать MPlayer. Список последних очень большой: обрезание пустых мест в кадре, масштабирование, отражение, изменение яркости или контраста, коррекция цветности, сглаживание шума и прочее. При использовании параметров -ofps или -speed возможно изменение количества кадров в секунду, их дублирование или пропуск, изменение черезстрочности. Результат преобразования при необходимости легко перенаправляется для просмотра в MPlayer. Возможно простое копирование без преобразования видео или аудио в результирующий файл. Возможностям MEncoder можно посвятить целую книгу, но, как уже говорилось, утилита консольная, и, чтобы полностью их реализовать, придется изучить и экспериментально подобрать не один параметр. У разных кодеков будут действительны различные параметры, нужно будет изучать особенности. Для получения информации по параметрам кодека наберитe $ mencoder -ovc help, а для аудио – mencoder -oac help. При кодировании как аудио, так и видео возможно использование постоянного или переменного битрейта, кодирование в несколько проходов для получения нужного качества или результирующего размера файла. Опытные пользователи, найдя нужные установки, чтобы их не запоминать, используют сценарий командной оболочки, в котором записаны все команды. В простейшем случае перекодирование видео в MPEG-4 выглядит так:
$ mencoder movie.wmv -o movie.avi -ovc lavc -oac lavc
Указать аудиокодек можно, добавив в эту команду параметр acodec, например acodec=libmp3lame. Параметр abitrate отвечает за битрейт аудио. Аналогично в видео параметр vcodec позволяет указать на любой видеокодек, которым будет закодирован результирующий файл. При помощи следующих команд можно перекодировать DVD в MPEG-4 (DivX) в два прохода:
$ mencoder dvd:// -ovc lavc -lavcopts vpass=1 -oac mp3lame -o movie.avi
$ mencoder dvd:// -ovc lavc -lavcopts vpass=2 -oac mp3lame -o movie.avi
К сожалению, проекты Kmencoder, Konverter, Kmenc15 и GMencoder, предлагающие графические оболочки к MEncoder, уже давно не развиваются, хотя они доступны в репозитариях пакетов и их вполне можно использовать.
Вторая консольная утилита, предназначенная для преобразования видеопотока из одного формата в другой, называется transcode (http://www.transcoding.org/). Она идеально подходит для декодирования DVD или Video4Linux потока в DivX. Поддерживаются все популярные сегодня контейнеры, форматы и кодеки – MPEG-1/2, MPEG-4 (DivX и XviD), Quicktime/MPEG-PS, аудио MP3 и AC3. Есть большинство часто используемых фильтров – обрезание, сглаживание, черезстрочность, изменение скорости аудио– и видеопотоков и другие. Параметров, как и MEncoder, очень много, например чтобы перекодировать видеофайл формата DVD в XviD в два прохода:
$ transcode -a 0 -b 128,0,0 -i movie.vob -w 1800,250,100 -A -N
0x2000 -M 2 -Y 4,4,4,4 -B 1,11,8 -R 1 -x vob -y xvid4,null
$ transcode -a 0 -b 128,0,0 -i movie.vob -w 1800,250,100 -A -N
0x2000 -M 2 -Y 4,4,4,4 -B 1,11,8 -R 2 -x vob -y xvid4 -o movie.avi
Для изменения формата видео со стандартного 4:3 на 16:9 команда выглядит так:
$ transcode -i INPUT.avi -y ffmpeg,ffmpeg -F mpeg4 -Z 640x,fast
–export_asr 3 -o OUTPUT.avi -E 44100,16,2 -b 224
Есть и другие консольные утилиты, например в состав пакета MjpegTools (http://mjpeg.sourceforge.net/) входит целый набор, состаящий более чем 30 утилит, используя которые вместе или раздельно можно сделать практически что угодно с видео-, аудиофайлами или рисунками. Этот пакет также имеется в репозитарии Ubuntu, поэтому установить его просто. Например, чтобы перевести все цифровые фотографии, находящиеся в текущем каталоге, в видеофайл, выполните такую команду:
$ jpeg2yuv -f 25 -j picture_*.jpg | mpeg2enc -v 0 -a 2 -q 4 -4 2 -2 1 -s -M 0 -f 8 -o mpegfile.mpg
Не каждый пользователь захочет запоминать все параметры, поэтому разберем одно из решений, имеющее графический интерфейс.
Редактор Avidemux
Эта программа с открытым исходным кодом разрабатывалась как простой видеоредактор c функциями вырезания фрагментов, наложения фильтров и перекодирования видео из одного формата в другой, имеющий графический интерфейс (рис. 3.25). Она поддерживает все наиболее часто используемые форматы и кодеки – MJPEG, MPEG-1/2/4, DivX, Xvid, ASF, WMA, AVI, MP2 и другие. Сайт проекта расположен по адресу http://avidemux.org/, но в репозитарии Ubuntu Avidemux есть, поэтому для его установки достаточно ввести sudo apt-get install avidemux – и можно приступать к работе. В репозитарии может находиться не самая последняя версия редактора, в этом случае следует обратиться к сайту http://www.getdeb.net/, где всегда можно найти нужные пакеты.
Рис. 3.25. Окно видеоредактора Avidemux
Написан Avidemux на C/C++ с использованием графического пакета GTK, поэтому он может быть собран не только в Linux, но и в Mac OS X, FreeBSD, NetBSD, OpenBSD, Solaris и даже Windows. Avidemux был написан как самостоятельное решение, иногда для обработки видео используются библиотеки из других проектов – FFmpeg, MPlayer, Transcode, Avisynth и DVD2AVI. Тем не менее эта программа не требует присутствия дополнительных библиотек для чтения, кодирования и декодирования видео. Для работы с некоторыми форматами используется библиотека libavcodec, разрабатываемая проектом FFmpeg (http://ffmpeg.mplayerhq.hu/). Кроме этого, Avidemux умеет распознавать вшитые субтитры и конвертировать их в программные – файлы форматов SRT, SSA/ASS и других.
Многие пользователи называют Avidemux VirtualDub для Linux. Avidemux не умеет всего, что может делать эта популярная программа, однако он не претендует на профессиональность и вполне подходит для решения большинства задач домашнего пользователя. Так, при помощи Avidemux можно легко удалить ненужный отрезок фильма (например, рекламу) или изменить размер кадра, чтобы удалить черные полосы по краям. С его помощью можно разбить большой файл на несколько частей. Подобрать битрейт с учетом необходимого размера файла можно, используя Калькулятор битрейта (рис. 3.26).
Рис. 3.26. Калькулятор битрейта в Avidemux
Изначально предполагается использование Avidemux с графическим интерфейсом, но при необходимости его можно запустить в командной строке и использовать наподобие MEncoder или Transcode. Интерфейс удобен и локализован, его задача – помочь быстро произвести нужные операции и настройки. Пользователю достаточно выбрать исходный файл, указать аудио– и видеокодеки, выбрать фильтры и формат, и можно запускать проект на выполнение. Фильтры удобно разбиты по категорям с кратким описанием (правда, на английском языке). При выборе фильтра можно применить его ко всему файлу или его части. Результат, как и источник, можно просмотреть в основном окне программы, при необходимости для предварительно просмотра открывается отдельное окно.
Проект просто сохраняется для последующей доработки, возможны запуск на выполнение всех сохраненных ранее проектов и автоматизация работы путем выполнения сценариев. В меню Авто можно выбрать формат выходного фильма, и некоторые параметры будут подобраны автоматически.
Это еще не все программы для обработки и конвертирования видео, имеющиеся в Linux. Например, проект GTranscode (http://flossmanuals.net/gtranscode) представляет собой простой интерфейс к Transcode, принимающий в качестве параметров только имя входного файла и несколько установок кодирования. Следует знать о Kdenlive (KDE Non-Linear Video Editor, http://kdenlive.org/), нелинейном видеоредакторе для среды KDE, поддерживающем все форматы, известные FFmpeg, с возможностью конвертирования, редактирования и использования фильтров. В нем есть весь необходимый инструментарий для создания качественных видеороликов. Есть и другие проекты, найти их в репозитарии Ubuntu можно, выполнив команду sudo apt-cache search video.
Программы DVD-мастеринга
Основой всех программ для DVD-мастеринга в Linux служит утилита dvdauthor (http://dvdauthor.sourceforge.net/), разработанная Скоттом Смитом. Создать с ее помощью готовый диск реально, однако процесс займет много времени. Поищем способ сделать это проще и быстрее.
Проект dvd-slideshow
Проект dvd-slideshow (http://sourceforge.net/projects/dvd-slideshow) позволяет быстро и просто создавать DVD из рисунков. Он есть в репозитарии Ubuntu, поэтому для его установки достаточно ввести sudo apt-get install dvd-slideshow. Учитывая, что dvd-slideshow представляет собой набор сценариев, ориентированных на определенные задачи, его установка даже из исходных текстов не вызовет трудностей, хотя тогда будет необходимо позаботиться о наличии всех утилит, которые используют сценарии dvd-slideshow во время работы. Это dvdauthor, MjpegTools, ImageMagick (http://www.imagemagick.org/), FFmpeg, а также кодеки для работы с MP3 – lame (http://sourceforge.net/projects/lame), OggVorbis (http://freshmeat.net/projects/vorbis-tools) и tooLAME (http://toolame.sourceforge.net/), оптимизированный кодер для аудио MPEG-1/2. Они также доступны в репозитарии Ubuntu. В составе пакета dvd-slideshow есть несколько утилит: