It_blog’s

Июнь 29, 2009

Обработка видео, записанного на miniDV камеру под Linux

Всем привет!
После большого перерыва, вызванного сдачей диплома в институте я вновь продолжу радовать Вас интересными статьями.

Сегодня мы рассмотрим вопрос кодирования видео с miniDV видеокамеры.

Задача: Сбросить видео на ПК и пережать его для последующего хранения.

Нам потрбуеться:
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 - это видео файлы, предназначенные для склеивания.

После обработки полученное видео Вы можете нарезать на диск или разместить в интернете.
Из видео хостингов я рекомендую воспользоваться www.veoh.com
На нём нет ограничения как по размеру видеофайла, так и по продолжительности самого видео.

Комментарии (7) »

  1. Спасибо за статью.
    почему для кодирования выбран mpeg4, а не более приятный x264?

    Комментарий от ano — Июнь 29, 2009 @ 2:10 пп

    • Дело в том, что я хочу видео в интернет публиковать.
      Для друзей, родных, знакомых и т.д да и просто, банально в гости пошёл, открыл интернет а видео уже там.

      И я не знаю, как видеохостинги другие кодеки переваривают.
      С DivX я как-то давненько плотно работал, меня этот кодек вполне устраивает.
      Качество на выходе вполне нормальное, хотя x264 не пробывал.

      Комментарий от itbg — Июнь 29, 2009 @ 2:27 пп

      • спасибо за ответ

        Комментарий от ano — Июнь 29, 2009 @ 9:15 пп

    • x264 – это тоже MPEG-4.
      MPEG-4 ASP (DivX, Xvid и пр.) предпочтительнее с точки зрения распространенности – бытовые плееры, например.

      Комментарий от fedorden — Сентябрь 8, 2009 @ 6:50 дп

    • В добавок – свое видео (я предполагаю, что рассматривается перенос домашнего видео) нет смысла жать в H.264, вряд ли какойлибо выигрыш будет. Пережать фильм и свое видео – две большие разницы.

      Комментарий от fedorden — Сентябрь 8, 2009 @ 7:09 дп

  2. Прошу прощения, но для чего делалось два прохода? Файл оба раза брался один и тот же и сохранялся с одним и тем же именем…

    Комментарий от vansanblch — Октябрь 18, 2009 @ 2:42 пп

    • Для более лучшего качества.

      Комментарий от itbg — Октябрь 18, 2009 @ 2:51 пп


RSS-лента комментариев к этой записи. URI для обратной ссылки

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

Блог на WordPress.com.