Цель: Получение максимально качественного цифрового
видео из аналогового (камера видеомагнитафон)
Средства:
1. Компьютер (nforce 2 чипсет встроенный звук, AMD Atlon XP 2500+,
256Mb, nvidia geforce
2 mx400,HHD Barracuda 7200.7 - 80 Gb, тюнер Flyvideo 3000 на saa7134,
LG1810B)
2. Камера Samsung формат hi8.
Soft средства:
1.Linux от Red Hat - Fedora Core 2
http://fedora.redhat.com/
2.Обновление ядра linux (2.6.7) самое свежее на
http://kernel.org/
3.Установленные свежие кодеки ( использую xvid 1.0.2 свежее на
http://www.xvid.org/)
4.Установленный Mplayer 1.0 pre5 c
http://www.mplayerhq.hu/
И так захват
:
РАЗРЕШЕНИЕ при захвате установим по максимуму 768x576. Хотя я где-то встречал
утверждение что hi8 более
400 линий не выдаёт и не имеет смысл выставлять больше, НО при
визуальном
сравнении получается лучшее качество при большем разрешении.
КОДЕК - для получения качества близкого к оригиналу
воспользуемся
кодеком который сжимает без потерь -
huffyuv.
Он входит в
mplayer в пакете lavc.
Требования к размеру свободного места (1ч~40 ГБ) и скорости HDD намного
выше чем в DivX но процессор загружает меньше.
ЗВУК - для исключения
каких либо проблем со сжатием звука для захвата будем пользовать в pcm формат.
СПРАВИТСЯ ЛИ СИСТЕМА Все выбранные параметры хорошо
повлияют на качество захвата,при этом
нагрузка на процессор не сильно большая ( у меня окло 45 %), но поток
будет большой и нужно чтобы система успела записать его на винт. Для
этого желательно что бы винт был побыстрее, был включен режим
DMA (можно посмотреть
hdparm) .Файловую систему я выбрал XFS
- нареканий нет.
Так же исключить влияние "ненужных" процессов, например на время
захвата остановить
демон: /etc/init.d/crond
stop,
отключить скринсаверы....
Собственно сам скрипт
:
mencoder -tv
fps=25:driver=v4l2:device=/dev/video0:alsa:width=768:height=576:input=4:amode=0:
\
-ovc lavc -lavcopts vcodec=huffyuv -srate
48000 -oac pcm
\
tv:// -o /mnt/big/out.avi
C захватом всё мы получили /mnt/big/out.avi.
ОБРАБОТКА
Теперь мы имеем очень большой файл с хорошим качеством.
Если надо редактировать, вырезать, добавлять эффекты можно использовать
различные программы (напр
http://fixounet.free.fr/avidemux/)
.
Я же приведу
пример попроще когда мы хотим
: обрезать неровные края,
деинтерлейс,
пережать видео и аудио.
Для определения обрезаемых краёв воспользуемся :
mplayer -vop cropdetect /mnt/big/out.avi
Возможно прийдётся обрезать чуть больше( например для
исключения мерцающей полосы внизу).
Скрипт сжатия в 3 прохода
:
in_file=/mnt/big/out.avi
out_file=xvid_out.avi
crop_size=672:560:22:0
start_pos=0
end_pos=20
#Quality
bit_rate=3000
echo
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "1 step (3) "
echo
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
mencoder -ss $start_pos -endpos $end_pos -ovc frameno -srate 44100 \
-oac mp3lame -lameopts cbr:br=192:mode=3:aq=0 $in_file -o
frameno.avi
echo
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "2 step (3) "
echo
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
mencoder -ss $start_pos -endpos $end_pos -force-avi-aspect 4/3 -vf
lavcdeint,crop=$crop_size \
-ovc xvid -xvidencopts pass=1:bitrate=$bit_rate -oac copy $in_file -o
/dev/null
echo
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "3 step (3) "
echo
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
mencoder -ss $start_pos -endpos $end_pos -force-avi-aspect 4/3
-vf lavcdeint,crop=$crop_size \
-ovc xvid -xvidencopts pass=2:bitrate=$bit_rate -oac copy $in_file -o
$out_file
Описание:
start_pos,end_pos параметры указывающие с какой секунды и
какой длительности кусок мы хотим конвертировать
Можно использовать для тестирования или разрезания.
Параметр bit_rate для хорошего качества видео получаемого с
аналоговой камеры не меньше 3000 иначе заметно ухудшение.
Подробнее о параметрах - man mencoder.
Mencoder использую потому-что понравилось как он кодирует кодаком
huffyuv, к тому же всегда под рукой идёт вместе с mplayer-ом
Другие программы для захвата:
transcode -
http://zebra.fh-weingarten.de/~transcode/
ffv1rec - входит в avidemux
http://fixounet.free.fr/avidemux