Задача: Сбросить видео на ПК и пережать его для последующего хранения.Нам потребуется:
1) Ядро с поддержкой FireWire 1394 или v4l (смотря кто как будет скидывать видео)
2) Программа dvgrab (собственно с её помощью мы будем грабить видео с miniDV кассеты из консоли)
3) Программа mencoder (Входит в поставку с видео плеером mplayer)
4) Программа avimerge для склеивания нескольких avi файлов в один (входит в состав transcode)
Грабим видео:
Для начала нам потребуется подключить видеокамеру к ПК.
В случае с FireWire 1394 никаких драйверов нам не нужно, просто подключаем и работаем.
В случае подключения камеры по средствам USB нам нужно определиться с её поддержкой ядром Linux.
Как мы уже знаем, сделать это можно с помощью команды lsusb и затем скомпилировать подходящий модуль ядра.
Я решил упростить себе жизнь и просто купил внешнюю карту FireWire 1394.
Для начала установим пакет dvgrab
Затем нам нужно перемотать miniDV кассету на начало и подключить камеру к ПК.
Теперь перейдём к процессу копирования видео:
Утилита dvgrab имеет множество полезных параметров, давайте рассмотрим некоторые из них:
-a, -autosplit - Этот параметр отвечает за нарезку видеофайлов, т.е dvgrab будет резать видео автоматические на куски,
между нажатиями на кнопку запись/стоп. Это очень удобно если Вы хотите рассортировать сюжеты.
-f, -format - Позволяет в ручную задать формат видео потока, если параметр не задан, то dvgrab автоматически
попытается определить формат данных. Если у Вас hdv камера то нужно обязательно указать этот параметр.
-F, -frames - Количество кадров
-s, -size - Устанавливает лимит на видео файл. По умолчанию установлен размер 1024 мегабайта,
что удобно если Вы монтируете DVD диск.
-V, -v4l2 - Если Вы планируете скинуть видео через драйвер v4l2
Об остальных параметрах можно почитать man dvgrab
В моём случае я воспользовался вот такой конструкцией:
dvgrab -format raw -size 20000 cam.dv
Поскольку размер одной кассеты около 13 Гб, то всё видео будет сохранено одним файлом,
это для удобства кодирования.
Кодируем видео:
Первый проход:
mencoder cam001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vhq:vpass=1:vqmin=1:vqmax=31 \
-oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale=768:576 -aspect 4:3
Второй проход:
mencoder cam001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vhq:vpass=2:vqmin=1:vqmax=31 \
-oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale=768:576 -aspect 4:3
При таких параметрах 1 час видео занимает около 800 Мб
При необходимости можно изменить битрейт видео и звука для достижения желаемого качества.
Склеиваем видео:
Для склеивания видео в один большой файл мы воспользуемся утилитой avimerge.
Делается это очень просто:
avimerge -o com.avi -i 1.avi 2.avi 3.avi
Где com.avi - это итоговый видео файл, а 1.avi 2.avi 3.avi - это видео файлы, предназначенные для склеивания.
URL: http://itbg.wordpress.com/2009/06/29/%d0%be%d.../
Обсуждается: http://www.opennet.dev/tips/info/2117.shtml