среда, 12 мая 2010 г.

Скачивание видео с miniDV камеры

Дано: miniDV камера, компьютер Athlon 3000+ с 1024M RAM, ОС Arch Linux.
Задача: Скачать видео с камеры в компьютер и ужать до приемлемого размера с сохранением приличного качества.


Решение.
1. Установка необходимых программ
# pacman -S mplayer dvgrab

2. Подключить камеру к разъёму FireWire на компьютере.

3. Скачивание видео в "сыром" формате.
Команды выполняются из консоли.

$ mkdir ~/video_encode
$ cd ~/video_encode

Далее следует найти при помощи кнопок управления камерой начало нужного фрагмента. Следующая команда (dvgrab) запустит проигрывание видео на камере с одновременным процессом скачивания этого видео на компьютер.
$ dvgrab -a -format raw probe.dv

При нажатии кнопки "СТОП" на камере процесс выполнения программы dvgrab прервётся, и в текущей директории появится файл probe001.dv. Это и есть первый отрывок.
Чтобы записать следующий, нужно снова выбрать начало этого второго отрывка, перемотав плёнку кнопками управления на камере, после чего снова запустить в консоли вышеупомянутую команду. При нажатии на "СТОП" в директории появится файл probe002.dv.
При использовании ключа -a программа dvgrab пробует сама определить, когда на записи происходит пуск/пауза, автоматически деля скачиваемое видео на сюжеты (промежуток между нажатием "пуск" и "пауза"). Однако эта функция работает не всегда корректно.
Для скачивания целой кассеты можно использовать следующую команду:
$ dvgrab -i -s 0 -format raw probe.dv

Ключи:
-i -- переход в интерактивный режим управления камерой, справка по которому вызывается нажатием кнопки ? на клавиатуре.
-s 0 -- максимальный размер выходного файла не ограничен (размер задаётся в мегабайтах, по умолчанию -s 1024).

4. Проверка и предварительный просмотр файла.
$ mplayer probe001.dv

В выводе программы есть строчка с разрешением файла probe001.dv:

Movie-Aspect is 1.82:1 - prescaling to correct movie aspect.
VO: [xv] 720x576 => 1048x576 Planar YV12

Эту информацию можно использовать для задания разрешения выходного файла вручную (п. 5(а).)

5(а). Сжатие видео (ручное задание разрешения выходного файла).

Ширина

1048/2=524
524/16=32.75
32*16=496

Высота

496/1.82=272.53

(1й проход)
$ mencoder probe001.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=496:272 -aspect 1.82:1

(2й проход)
$ mencoder probe001.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=496:272 -aspect 1.82:1

5(б). Сжатие видео (автоматическое определение разрешения выходного файла).

(1й проход)
$ mencoder probe001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vhq:vpass=1:vqmin=1:vqmax=31 -oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale -zoom -xy 720

(2й проход)
$ mencoder probe001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vhq:vpass=2:vqmin=1:vqmax=31 -oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale -zoom -xy 720


6. Влияние битрейта на размер конечного файла.
Длительность и прочую информацию о файле можно получить командой
$ ffmpeg -i file.avi 2>&1 | grep Duration


Исходный файл probe001.dv: 105.3 сек., 362М, 206 Mbpm
AVI, разрешение 720х396, vbitrate=1800: 24М, 13.7 Mbpm
AVI, разрешение 720х396, vbitrate=1000: 15М, 8.6 Mbpm

Для сравнения: 5-я серия 1-го сезона "Теории Большого Взрыва"
(длительность 00:19:41.26)
AVI, разрешение 624x352, bitrate 1265 kb/s: 179М, 9.1 Mbpm

Ссылки
1. Оригинал статьи
2. Форум
3. Блог Николаева
4. Ярославский linux-портал
5. ALSA docs
6. mencoder docs
7. Powerman mencoder cookbook

Комментариев нет:

Отправить комментарий