Ключевые слова:video, webcam, usb, hardware, linux, mpeg, (найти похожие документы)
From: А.Шевляков <alex@motivation.ru.>
Newsgroups: http://motivation.ru
Date: Mon, 12 Apr 2006 18:21:07 +0000 (UTC)
Subject: Пример создания MPEG-ролика
Оригинал: 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.>