CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Дружная видеокомпания 2

Сергей А.ЯРЕМЧУК grinder@ua.fm

Продолжение, начало см. в МК № 21 (244).
Продолжаем рассматривать приложения, предназначенные для обработки видео в Linux.

Сначала проблемы. Иногда после создания видеофайла затем не получается его воспроизвести ни на одном из проигрывателей. Помочь разобраться в возникшей ситуации может пакет bbtool, который можно найти по адресу http://home.mindspring.com/~beyeler, позволяющий получить очень подробную информацию о файлах форматов MPEG. Состоит из четырех утилит. Самая главная, bbdmux, демультиплексирует потоки MPEG1 и MPEG2 и показывает их внутреннюю структуру. Утилиты bbinfo, bbainfo и bbvinfo позволяют получить информацию об используемом файле.

Для кодирования видео можно применять библиотеку libfame (http://fame.sourceforge.net), представляющую собой быстрый кодировщик в MPEG1 и MPEG4. В комплекте, кроме самих библиотек, идут две утилиты кодирования, базирующиеся на libfame. Первая —fame (Fast Assembly Mpeg Encoder), написанная на С и позволяющая получить сигнал прямо с устройства video4linux; кроме того, она использует библиотеки lame, что позволяет параллельно кодировать звук в форматах, поддерживаемых данной библиотекой. Вторая, немного попроще, —recmpeg, которая просто сжимает необработанные видеофрагменты в MPEG-формат. В самом простейшем случае захват видео и аудио будет выглядеть так (опция -v/--verbose добавлена для информативности):

При помощи параметра -q/--quality можно установить требуемое качество кодированного потока в процентах (по умолчанию 75); при помощи -р/--profile можно установить вид выходного сигнала из mpeg1 (по умолчанию), mpeg4 и mpeg4_shape; опция -m/--motion позволяет изменить алгоритм оценки движения (none, pmvfast и fourstep); -f/--fps — изменить значение кадров в секунду от принятого по умолчанию -25, при этом программа понимает даже дробные значения. Параметр -с/--coding определяет порядок и тип кадров, которые будут кодироваться, а -р/--picture — размер кадра. При помощи -b/--buffer можно увеличить размер выходного буфера, по умолчанию определенного в 1 Мб. К тому же программа может выводить информацию не только в файл или в свой стандартный вывод, а еще и по указанному URL:

Утилита recmpeg имеет аналогичные опции и просто позволяет закодировать указанный файл в mpeg-формат:

Следующей на очереди будет еще одна консольная утилита mpgtx (http://mpgtx.sourceforge.net), позволяющая демультиплексировать, разбивать, соединять (MPEG1 гарантированно, MPEG2 в порядке эксперимента) и получать информацию о видео- (MPEG1 и MPEG2 — системные, программные и транспортные) и аудиопотоках, а также дополнительно редактировать ID3-тэги в MP3-файлах. Чтобы не путать пользователя множеством различных опций, при установке с помощью ссылок (ln -sf) создаются дополнительные файлы, которые выполняют одну единственную функцию: mpgjoin (объединение потоков, соответствует mpgtx -j), mpgsplit (разбиение потока, -s), mpginfo (получение информации о потоке, -i), mpgdemux (демультиплексирование потока, -d), mpgcat (объединение и выдача в стандартный вывод mpgtx -j -o) и tagmp3 (редактирование меток ID3, -T). В режиме разбиения или демультиплексирования шаблон выходного файла указывается при помощи опции -b, а в режиме объединения —-о. При указании исходного файла возможно задание диапазона, с которым намечается работать. При этом диапазон может быть указан в виде интервала (начальной/конечной части интервала) времени или размера.

т.е. интервал от 35 мин 14 с. до 1 часа 22 минут 00 с, или

т.е. интервал от 42000 байт до 520 Мб.

При помощи tagmp3 можно привести свою музыкальную коллекцию в порядок. Например, опция show позволяет просмотреть информацию, содержащуюся в ID3-тэге, del удаляет все, что там было записано, а при помощи set информация туда заносится. При этом при помощи форматов необходимо указать поля, которые заполняются. Так, %A указывает на артиста, %a — альбом, %t — название мелодии, %T — номер трека, %y — год, %g — жанр, %c добавляет комментарий. Например:

При этом через двоеточие указываются устанавливаемое значение поля, а если после указанного формата стоит знак вопроса, то значение данного поля запрашивается у пользователя. При помощи list можно узнать номера жанров и их значений. Если потребуется переименовать множество файлов, то здесь на помощь придет опция move. Так, вот такая конструкция:

приведет все MP3-файлы текущего каталога к виду Артист-название_мелодии.mp3.

Пакет avifile (http://avifile.sourceforge.net) предоставляет набор утилит для создания (захвата) и последующей перекодировки полученных видеопотоков и соответствующие библиотеки. Утилиты работают с наиболее популярным форматом AVI и различными методами сжатия — Indeo Video 3.2, 4.1; MPEG4 1, 2; MPEG4 3 aka DivX; Motion JPEG; Cinepak Video и пр. Основная идея проекта состоит в использовании динамических библиотек Win32 в Linux-среде. Если кто не обзавелся такими, их можно взять здесь же на сайте в архиве binaries. После установки будет доступно 10 программ.

Для показа полученного результата в пакете имеется легкий aviplay, базирующийся на QT-библиотеках, который может использовать все установленные на момент конфигурирования кодеки. Надо сказать, программа хоть и не имеет стольких функций, как тот же xine, но проигрывает даже те файлы, при попытке воспроизведения которых вылетают все имеющиеся у меня видеопроигрыватели. К тому же с помощью нее можно получить довольно подробную информацию о загруженном видео (кодеки, битрейт и пр.). Для измерения производительности процессора и видеосистемы в комплект входит утилита avibench, позволяющая оценить, на что там еще способен компьютер, а при помощи avitype можно тихонечко заглянуть внутрь, в структуру видеофайла, и получить подробнейшую информацию. Наконец, при помощи avicat можно выдрать понравившийся фрагмент, или наоборот, слить несколько файлов в один:

Для оценки производительности при захвате изображения предназначена утилита avicap, при вызове которой появляется окно, позволяющее настроить основные параметры (устройство, кодек, разрешение, количество кадров, аудио, лимит и название выходного файла). А вот захватить изображение можно при помощи avirec, при этом есть возможность задания кодека при помощи опции -c/--codec; список доступных можно просмотреть, задав -l/--list. -b/--audiobitrate устанавливает битрейт записываемого аудиопотока, -m/--audiomode — режим записи аудио (n=none, m=mono, s=stereo). Если необходимо ограничить по времени записываемый материал, то включить таймер записи можно при помощи -t/--rectime, задать высоту/ширину изображения —-y/--height -x/--width (по умолчанию 288/384). Для изготовления AVI-файла из последовательности JPEG-картинок предназначена avimake. Чтобы выяснить режим настройки видео и сконфигурировать устройство video4linux для захвата изображения, в комплект входит утилита kv4lsetup, для возможности перекодирования видео с другим кодеком служит утилита avirecompress. Вообще, в avifile мне не нравится полное отсутствие документации — ни в man’е, ни на сайте нельзя найти вразумительного объяснения назначения отдельных утилит, входящих в комплект, и тем более используемых к ним ключей. Об их назначении приходится догадываться, а ключи подбирать опытным путем. Так, например, я так до конца и не разобрался, что конкретно делает утилита avifile-config, предназначенная вроде бы как для указания нестандартных путей к библиотекам и исполняемым файлам.

В состав пакета mpeg2dec (http://libmpeg2.sourceforge.net), кроме двух библиотек libmpeg2 и libvo, позволяющих работать с MPEG- и YUV-потоками, входят две утилиты: mpeg2dec — позволяющая декодировать (отображать) MPEG- и MPEG2-видео потоки и extract_mpeg2 — для извлечения MPEG-видеопотока из мультиплексного потока. Утилиты применения у меня особого не нашли, да и на сайте написано, что это скорее простые тестовые утилиты. Но вот ради библиотек установить пакет просто необходимо, тем более что они используются очень многими программами для декодирования и воспроизведения видео, в том числе xine, Mplayer и пр. К тому же библиотеки отлично взаимодействуют с имеющимся оборудованием и выжимают из него всю мощь, использование же языка С позволяет компилировать под многими платформами и операционными системами, в том числе и в Windows в среде VC++.

Раз уже зашла речь о библиотеках, то рекомендую установить XviD (http://www.xvid.org) — реализацию библиотек DivX с открытыми исходными текстами. И свою роль они выполняют, по моему мнению, лучше линуксовской реализации DivX —divx4linux (http://www.divx.com/divx/linux), да и внутри полазить в случае чрезмерного любопытства можно, документация просто отличная. При этом большинство программ уже знают о его существовании и при конфигурировании пытаются найти, а если скопировать из развернутого каталога с исходниками файлы src/divx4.h и src/xvid.h в /usr/local/include, то появляется возможность собрать всеми любимый Mplayer с поддержкой данных библиотек. В комплекте, кстати, поставляются три тестовых программки: xvid_encraw для кодирования YUV-потоков или файлов в формате PGM — в поток MPEG4, xvid_decraw, декодирующий эти потоки, и xvid_stat — своеобразный симбиоз первых двух, объединенная программа, выдающая подробную информацию об используемых файлах и позволяющая оценить быстродействие.

Ну хватит, наверное, на сегодня про консоль; рассмотрим пару программ под X-Windows. Как бы там ни было, а редактировать видеофайлы все таки лучше в графической среде. Мне известно по крайней мере два инструмента, позволяющих это сделать. Первая программа называется avidemux (http://fixounet.free.fr/avidemux), требует библиотек Gtk+ и glib 1.2.x (но не 2.x) — стало быть, последние пользователям Вторых Гномов придется доустанавливать отдельно. Желательно, но необязательно наличие библиотек libmad (http://mad.sf.net), предназначенных для декодирования аудио в mpeg1/2/3 audio, а также декодера AC3 —a52dec (http://liba52.sf.net) и, конечно же, liblame. Для видео необходим mjpegtools, о котором я уже писал. После установки, которая ничем обычным не отличается, разве что библиотеки могут быть не там, где им положено, запускаем программу. Из входных форматов утилита понимает АVI, MPEG1/2 (потоки ES или PS, знает о VOB), NuppelVideo и последовательность графических файлов в формате .bmp (xx0000.bmpxx00001.bmp…). Из видеокодеков знает о существовании DivX, XviD, VP3, mpeg1/2, Huffyuv, WMV2, H263, MSMP4V2 и собственного raw rgb. На выходе получим АVI (до двух аудиодорожек), MPEG1/2 и собственный RAW, представляющий собой «чистое» аудио или видео. А так avidemux, как и положено нормальному редактору, позволяет редактировать видео- и аудиопоследовательность (вырезать, удалять, вставлять, копировать, перекодировать, использовать имеющиеся фильтры), в том числе и разбивать поток на файлы определенного размера (устанавливается в File > Set mux options); для вырезания имеется встроенный помощник —Misc > Cut wizard. Из аудиофильтров доступны Normalize (нормализует громкость звучания), Convert to 44.1 kHz, Time shift — для смещения по времени начала звуковой дорожки (единственный фильтр, который можно применять в режиме Copy), 6 db press для усиления слабого звука на 6 дБ, а также несколько фильтров-кодеков, позволяющих перекодировать аудиодорожку в другой формат. При работе в режиме Process возможно применение к видеопоследовательности следующих фильтров (все по Ctrl+F): из мета-фильтров VCD/SVCD/DVD res, позволяющий автоматически подогнать размеры под требуемый соответствующим стандартом, и Partial, позволяющий применить фильтр только к части видео; для работы с изображением Crop (обрезание краев), с помощью которого можно убрать черные полосы по краям (есть Autocrop, на качественном видео работает хорошо); Resize, изменяющий размеры кадра, Blacken Borders, заменяющий существующие бордюры в видео на полностью черные, Add Black Borders, добавляющий черные бордюры, Flip vertical, переворачивающий изображение, и Rotate, переворачивающий изображение на 90/180/270 градусов; Фильтры для черезстрочной обработки (Interlacing) видео: Deinterlace — сглаживает черезстрочные кадры, Pal Shift — смешивает поля первого и последующего кадра, Pal Smart — что-то среднее между двумя предыдущими, Drop для усреднения значений соседних кадров при сильном их отличии. И остальные группы фильтров: Convolution позволяют заменить каждый пиксель его усредненным значением; Luma/Chroma — Swap u/v (меняет местами цветовые составляющие), Contrast, Luma/chroma only (выделяет только одну составляющую luma/u/v); Smoother — Stabilize (заменяет усредненным значением при достижении установленного порога), Denoise, FluxSmooth, Temporal Cleaner и последний, позволяющий добавить субтитры из текстового файла, —Subtitle. При применении фильтров возможны два режима вывода изображения —Preview с открытием дополнительного окна предпросмотра, и Output, при котором картинка выводится с результатами наложения. Любителям командной строки по душе придется возможность использования всех вышеописанных опций в любимой среде, например, вот так можно перегнать AVI-файл в VCD:

Второй нелинейный редактор называется kino (http://www.schirmacher.de/arne/kino), особенно он приглянется тем, кто имеет устройства захвата видео или видеокамеру, т.к. позволяет снимать изображение и звук не только с устройств video4linux, но и с интерфейса IEEE-1394 — именно на этих функциях сделан акцент в настоящее время. С его помощью можно также производить большинство операций (copy, cut, paste, split, join) с видео/аудио и сохранять все действия в список редактирования (формат SMIL XML). Интересно, что большинство команд как редактирования, так и навигационных эквивалентно командам vi. Kino может экспортировать виде в ряде форматов: DV для IEEE 1394, Raw DV, DV AVI, WAV, MP3, Ogg Vorbis, MPEG1, MPEG2 и, конечно же, DivX, а также still frames, под коим понимается графические файлы в форматах PPM, JPEG, PNG, TIFF, GIF и других, поддерживаемых ImageMagick. Во вкладке FX имеется ряд видео- и аудиофильтров, позволяющих создать, например, некоторые эффекты перехода, для предварительного просмотра действия фильтра служат кнопки Preview и Render.

И последняя программа, kavi2svcd (http://www.cornelinux.de/linux/kavi2svcd/index-english.html). представляет собой фронт-энд к программам преобразования (transcode с mjpegtools и mplex) и записи на диск видео (vcdimager и cdrdao) — соответственно, необходимо их иметь уже установленными. С ее помощью можно быстро и без лишних телодвижений перегнать AVI-файл на VideoCD или Super VideoCD, причем программа при своем первом запуске запрашивает необходимые параметры, которые можно установить раз и навсегда, превратив всю последующую работу в отдых. При этом оставлена возможность добавить необходимые опции к каждой программе, используемой при создании диска.

При этом если создавать Super VideoCD диск полностью в командной строке, то придется ввести такую вот приблизительно команду:

Как видите, выбирать есть из чего.

Итак, работать с видео в Linux не только можно, но и нужно: система отлично умеет обращаться с имеющимися ресурсами компьютера, и пока идет обработка видео, можно спокойно заниматься повседневными делами, не опасаясь, что все пропадет из-за банального зависания. К тому же Голливуд уже обратил внимание на данную ОС, а потому в скором времени, я думаю, в данном секторе следует ожидать заметного оживления.

Linux forever!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov