The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Захват видео в ОС Linux. (linux mplayer video)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: linux, mplayer, video,  (найти похожие документы)
From: Дмитрий Гончаров <webmailru@mail.ru.> Date: Mon, 16 Dec 2007 14:31:37 +0000 (UTC) Subject: Захват видео в ОС Linux. Оригинал: http://solaris2000.chat.ru/linuxcapt.html Цель: Получение максимально качественного цифрового видео из аналогового (камера видеомагнитафон) Средства: 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 С захватом всё мы получили /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 Предложения, вопросы, исправления, дополнения на webmailru@mail.ru

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру