URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 56690
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Кодирования видео с miniDV видеокам..."

Отправлено auto_tips , 07-Июл-09 12:25 
Задача: Сбросить видео на ПК и пережать его для последующего хранения.

Нам потребуется:

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.me/tips/info/2117.shtml


Содержание

Сообщения в этом обсуждении
"Кодирования видео с miniDV видеокамеры в Linux"
Отправлено kookoo , 07-Июл-09 12:25 
спасибо, актуально :)

"Кодирования видео с miniDV видеокамеры в Linux"
Отправлено Анархист , 07-Июл-09 14:56 
Но если попробовать сделать из всего этого DVD-Video - проблема во всех дистрах. Причина - глюк в cdrkit. Я в ArchLinux вместо него установил cdrtools. Только тогда все заработало.

"Кодирования видео с miniDV видеокамеры в Linux"
Отправлено vladik , 08-Июл-09 10:41 
Я жму на лету. Потом двд делаю в dvdauthor

dvgrab  - | mencoder -cache 16384 -audio-preload 2  -demuxer 22  -ovc lavc -lavcopts \
vcodec=mpeg2video:vbitrate=4900:\
sc_threshold=1000000:aspect=4/3:threads=8\
:ilme:keyint=15 \
-mpegopts format=dvd -of mpeg  -srate 48000 -oac lavc -lavcopts \
acodec=ac3:abitrate=192 -af channels=2ch  -  -o out.mpg


"Кодирования видео с miniDV видеокамеры в Linux"
Отправлено vadiml , 09-Июл-09 19:21 
Если кодировать DV с -vf field, то качество из-за интерлейсинга будет отвратным.

Надо брать -vf pp=lb или li или ci или md и смотреть что лучше на вашем материале.
А если считаете приемлимым для себя видео с 50fps, то лучшее качество дадут tfields/yadif+mcdeint (тут тоже надо смотреть где лучше закодируется)

Я для этого сначала кодирую 5 минут из материала, выбираю лучший вариант, и потом им делаю всё.


"Кодирования видео с miniDV видеокамеры в Linux"
Отправлено rocket , 10-Июл-09 13:28 
Сжатие звука в первом проходе - лишняя операция.

"Кодирования видео с miniDV видеокамеры в Linux"
Отправлено vadiml , 11-Июл-09 19:30 
Подумал, что может кому пригодится, вот мои опции кодирования для DV:
1й проход
mencoder out007.dv -fps 50 -ofps 50 -vf tfields=4:1,scale=-2:576 -aspect 4:3 -ovc x264 -x264encopts pass=1:qp=22:subq=2:8x8dct:partitions=all:me=umh:chroma_me:nr=500:trellis=2:frameref=8:bframes=3:b-pyramid:weightb:mixed-refs:direct_pred=auto:keyint=300:bime:psnr:threads=auto -nosound -o out007.avi

2й и 3й
mencoder out007.dv -fps 50 -ofps 50 -vf tfields=4:1,scale=-2:576 -aspect 4:3 -ovc x264 -x264encopts pass=3:qp=22:subq=7:8x8dct:partitions=all:me=umh:chroma_me:nr=500:trellis=2:frameref=8:bframes=3:b-pyramid:weightb:mixed-refs:direct_pred=auto:keyint=300:bime:psnr:threads=auto -oac mp3lame -lameopts cbr:br=256 -o out007.avi

Если надо уменьшить размер (за счёт качества), надо ставить большее qp, но при 28 уже очень заметно падение качества.

Если хотите делать 2х проходное кодирование, то надо ставить во 2й строке pass=2