Выкладываем видео с камеры в web с помощью open source

08.05.2008

YouTube является весьма популярным веб-сервисом, который позволяет людям обмениваться видео контентом в Интернете. Хотя YouTube и другие веб-сервисы потокового видео удовлетворяют многим потребностям пользователей, но у вас может иметься основание для создания своего собственного сайта с потоковым видео. Возможно, Вам необходимо больше контроля каким именно образом ваше видео будет представлено.

Описывается техническое решение получения потокового видео с цифровой видеокамеры, обработки видео потока в формат для распределения, а для создания веб-сайта для пользователей.

Класс видеокамер описанных в этой статье, имеют две общие вещи. Во-первых, они сохраняют видео с использованием цифрового видео (DV) формат. Во-вторых, они используют IEEE-1394 интерфейс для связи с ПК. Если видеокамера удовлетворяет этим двум требованиям, то она должна быть совместима с решением описаным здесь.

В целях увеличения визуального качества записи, DV формат обеспечивает весьма ограниченное сжатие видеоданных. Как результат, файлы в формате DV, как правило, очень большого размера. Примерно 36Mb в секунду, DV может занять 1 Гб диска для четырех минут записи. Очевидно, DV не является хорошим выбором формата для размещения. Перед загрузкой нашего видео контента на сайт, мы сжимем его с помощью Vorbis для аудио и для видео используем Theora. Аудио-и видео-треки будут объеденены, используя формат Ogg.

Получение видео

Первый шаг заключается в том, чтобы получить видео поток с цифровой видеокамеры. Dvgrab это приложение, которое поможет нам. Установите ее на Fedora, используя команду:

$ sudo yum install dvgrab

Dvgrab утилита взаимодействует с цифровой видеокамерой через IEEE-1394 для записи с камеры видео поток на компьютер. Для копирования данных с камеры, поместите камеру в режим воспроизведения и используйте перемотку или или быстрый просмотр для позиционирования на начала нужного видео-сегмента. Подключите камеру к компьютеру через IEEE-1394 кабель. Запускаем начало передачи данных.

$ dvgrab --format raw --autosplit sample

После этой команды камера должна автоматически начать передавать данные.

Если камера имеет ЖК-панели, то на нем будет отображаться записываемый материал. Dvgrab записывает то, что проигрывается камерой. Опция autosplit заставит dvgrab выявлять отдельные записи и сохранить их в файлы вида sample-NUM.dv.

Редактирование и сжатие видео

После захвата видео на диск, оно уже готово для редактирования. Есть несколько бесплатных программ для редактирования видео. Одна из них Pitivi.

Pitivi написана на Python и использует GStreamer. Чтобы установить Pitivi (и некоторые необходимые GStreamer плагины), используйте команду

$ sudo yum install pitivi gstreamer-plugins-good.

После установки Pitivi , мы будем использовать его для кодирования нашей DV в формат Ogg. После запуска Pitivi, нажмите на кнопку Import clips. Выберите видеофайлы и нажмите кнопку Add, чтобы сделать их доступными в Pitivi.

После того как Вы выбрали все клипы, которые хотели, нажмите Close. Теперь вы должны увидеть свое видео в верхнем левом углу Pitivi как показано на Рисунке 2. Вы можете перетащить видео в timeline в нижней части окна. После этого окно должно выглядеть как показано на Рисуноке 3.

Теперь, когда мы собрали наши клипы, настало время для кодирования их в окончательное видео. Это можно сделать, выбрав File->Render. Появится новое окно. Нажмите на кнопку Choose File и введите имя файла, который вы собираетесь создать. Затем щелкните по Modify для выбора параметров video. Рисунок 4 показывает параметры, которые подходят для нашего сайта. Мы будем кодировать видео с разрешением 320x240, используя Ogg, Vorbis и Theora. Нажмите Ok, а затем Record.

В зависимости от продолжительности вашего видео, процесс кодирования может занять длительное время. Пока Вы ждете, скачаем и установим веб-сервер Apache с помощью команды yum install httpd. После того как обработка видео будет завершена, необходимо полученные файлы скопировать в /var/www/html. Назовем наш файл example.ogg.

Размещение видео

Cortado это Java апплет, способный играть с потоковое видео в веб-браузере. Апплет с открытым исходным кодом и поддерживается компанией Fluendo. Мы будем использовать Cortado для обеспечения кросс-платформенного способа проигрывания видео на нашем сайте. Cortado апплет может быть загружена с Fluendo сайта. Мы будем использовать файл cortado-ovt-stripped-0.2.2.jar, который должен быть скопирован в /var/www/html. Апплетом поддерживаются следующие видеоформаты: Ogg, Vorbis и Theora.

Теперь, когда у нас есть видео и апплет Java установленный в /var/www/html, мы напишем небольшой HTML файл, который будет содержать ссылки на оба объекта. Ниже приводится простой index.html для нашего проекта, которые также должн быть помещен в /var/www/html:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
  <head>
    <title>Test video>/title>
  </head>
  <body>

    <applet code="com.fluendo.player.Cortado.class" archive="cortado-ovt-stripped-0.2.2.jar" width="320" height="240">
      <param name="url" value="http://www.example.com/example.ogg"/>
      <param name="keepAspect" value="true"/>
      <param name="video" value="true"/>
      <param name="audio" value="true"/>
      <param name="bufferSize" value="200"/>

    </applet>
  </body>
</html>

Это HTML документ ссылается на Cortado Java апплет, который находится в том же каталоге. Апплет принимает несколько параметров, в первую очередь url и bufferSize. Url указывает на видео файл (должен быть прописан полный URL). Параметр bufferSize определяет размер клиентской буфера и должен быть увеличен, если видео не играт нормально из-за тормознутости сети. Подробное описание параметров Cortadoa находится в файле README, который идет с исходным кодом.

Все инструменты, необходимые для построения очень простой видео на сайте находятся сейчас у нас в руках. Настало время запустить веб-сервер Apache, выполните команду:

$ sudo /sbin/service httpd start

Чтобы быть уверенными, что каждый раз, когда сервер перезагружается наш веб-сервер запускается, выполните:

$ sudo /sbin/chkconfig httpd on

Загрузиет URL http://www.example.com/, если поддержка Java включена в браузере, то будет проигрываться видео файл. При запуске в Fedora, java-1.7.0-icedtea-plugin необходим для выполнения апплет Cortado.

Теперь вы готовы для записи, кодирования и шаринга видео на web с полным контролем над тем каким образом они будут представлены. Все используемое программное обеспечение, является полностью open source решением для потокового видео.

Источник: From camera to website: Building an open source video streamer.


Нет комментариев






6 + 3 =

© 2001-2015 NLG