Информационные технологииStfw.Ru 🔍

Пример создания MPEG-ролика

А.Шевляков
🕛 20.09.2006, 10:53
Оригинал: http://motivation.ru/reviews/v4l.html


Веб-камеры Linux - совместимые камеры, в т.ч. с интерфейсом USB, имеются в достатке, если не сказать, - во множестве. Цена или качество могут стать решающими при выборе модели, но все же не забудьте просмотреть список Linux-совместимых веб-камер (http://alpha.dyndns.org/ov511/cameras.html). Некоторые новые массовые модели от Creative Labs на сегодняшний день идут в продажу без поддержки Linux, а жаль (http://zc0302.sourceforge.net/zc0302.php?page=cams)!


Тюнеры и программы просмотра TV
То же можно сказать и о встраиваемых PCI-тюнерах на основе чипа от Brooktree Corporation, их уже очень давно научились использовать с помощью bttv (http://linux.bytesex.org/v4l2/bttv.html). Просмотреть список поддерживаемых программой карт также будет не лишним при покупке тюнера. http://enpc3240.eas.asu.edu/lxr/linux/http/source/Documentation/video4linux/bttv/CARDLIST По соотношению цена/качество, можем посоветовать обратить внимание хотя бы на PixelView PlayTV Pro. Для просмотра телепрограмм, а также для записи "raw video" с веб-камеры или с экрана ТВ, можно запустить Xawtv или Mplayer.

Пример создания MPEG-ролика
Мы хотим создать "ролик" в таком формате, который смогут открыть большинство пользователей. При этом мы не хотим, чтобы размер файла был велик, иначе трафик с сервера, на котором положим ролик, будет стоить денег. Наш ролик будет длиться около полуминуты, иметь звуковую дорожку и начальную заставку с названием, фирменным логотипом и т.п. Камера снимает начальный материал, который нас не устраивает по приведенным выше причинам: он имеет размер в десяток мегабайт, синхронный звук слишком низкого качества и вдобавок из-за слабого встроенного в ноутбук микрофона почти не слышен, а посмотреть ролик можно только одной программой mplayer, которая есть далеко не у всех. Короче говоря, плохо выкладывать его в таком виде на наш сервер.
Нам понадобятся утилиты mencoder, lame и mjpegtools. Мы последовательно обрабатываем начальный материал (далее как файл alex_showup.avi) различными утилитами и добиваемся поставленной выше цели: создать небольшой ролик для Интернета.
1) В графическом редакторе (подойдет gimp) создадим начальную заставку - надписи на темном фоне, и фильтром "размоем" ее. Итого 20 последовательных кадров формата png. Совместим картинки в 1-сек. ролик output.avi - заставку к фильму:
mencoder \*.png -mf on:fps=2:type=png -vop crop=320:240:1:1 -o output.avi -ovc lavc

2) Сведем заставку и сам фильм в один непрерывный ролик, попутно изменим число кадров (fps) в секунду с 20 на стандартные 24, а плохой звук выключим: cat output.avi alex_showup.avi | mencoder -fps 20 -ofps 24 -nosound - -ovc lavc -lavcopts vcodec=mjpeg -o foo.avi

3) Подготовим звуковую дорожку с помощью record, sox и soxmix. Полученный файл r1.wav преобразуем в MPEG-2: cat r1.wav | mp2enc -m -b 32 -o foo.mp2 4) Преобразуем avi в формат mpeg-1, попутно убрав шумы камеры и профильтровав:
lav2yuv +p foo.avi | yuvdenoise | yuvmedianfilter | mpeg2enc -B 35 \ -f 0 -q 5 -b 320 -a 1 -o foo.m1v

5) Сведем звук и видео в один файл:
mplex -V -r 360 foo.mp2 foo.m1v -o you_can_do_it.mpg Обратите внимание на совсем скромный для 30-сек. ролика размер получившегося файла. Надеемся, что вы смогли нормально его посмотреть на вашем компьютере.
А.Шевляков <alex@motivation.ru.>

Unix   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉