Таким образом для проведения трансляции с использованием нескольких камер необходимо:
§ Ноутбук, с производительностью достаточной для кодирования видео кодеками On VP6 или H264 в реальном времени и отображения предпросмотра видео с нескольких камер
§ До 4х DV видеокамер
§ Провода FireWire длиной до 8 метров
§ Разветвитель Kramer Tools
§ Повторители Kramer Tools для увеличения расстояния между компьютером и камерами
§ Дополнительные микрофоны
§ Удлинители для подключения к электросети
§ Ethernet патч корды для подключения к сети
§ Подключение к Интернет
В данном случае требования к производительности несколько выше:
§ Для кодирования видео стандартного разрешения до 720х576 кодеком VP6 и возможности просмотра и коммутации до 4х камер, достаточно ноутбука с процессором класса Core Duo с тактовой частотой от 1,83 Ггц и 2 гигабайтами оперативной памяти
§ Для кодирования видео стандартного разрешения до 720х576 кодеком H264 и возможности просмотра и коммутации до 4х камер, необходим ноутбук с двух - или более ядерным процессором класса Core 2 Duo или выше с тактовой частотой от 2.5 Ггц и минимум 2 гигабайтами оперативной памяти
§ Свободное место на диске в размере 13 Гб на час записи исходного DV качества
§ Сводобное место на диске в размере (audio bitrate + video bitrate) трансляции, для записи видео сжатого видео (записывается отправляемый на сервер поток)
Повышение требований в производительности связано с требованием отображения предпросмотра видео с подключенных камер (до 4х).
5.1.1.1 Расширенная (максимальная) портативная схема для проведения трансляций
Далее используется тоже программное обеспчение Dvswitch, что и при локальном подключении нескольких камер к компьютеру-микшеру. Соответственно требования для записи видео совпадают. Стоит отметить, что возможно вести запись как выходного смикшированного видео, так и всех входящих видеопотоков отдельно, но учитывая скорость видеопотока в 3.6 мегабайта в секунда, жесткий диск ноутбука может записывать без потери кадров не более 2х видеопотоков одновременно. Если требуется запись большего количества потоков одновременно, то возможно использование локальных сетевых хранилищ NAS, подключенных по Gigabit Ethernet и оборудованных скоростными RAID массивами. Но использование NAS увеличивает нагрузку на сеть, что может быть неприемлемо при использовании большого количества камер, которые и так создают большую нагрузку на сеть. Также возможна организация записи на внешние USB носители.
Схема такого вида портативной трансляции представлена на Рисунке 42 в приложении 2.
Если необходимо использование большего чем 4 количества камер, то схема портативного комплекса для проведения трансляций может быть расширена: могут быть добавлены ноутбуки или микрокомпьютеры, которые используются для конвертации среды передачи данных FireWire-Ethernet, что позволяет увеличить количество подключаемых камер и позволяет увеличить расстояние между камерами и микшером. Теоретически максимальное количество подключенных камер не ограничено, но на практике проверялось только использование до 6 различные камер, подключенных как напрямую по FireWire к компьютеру-микшеру, так и по локальной сети через преобразователи среды. Конвертация среды производится программного на ноутбуке, для передачи по сети видео с одной камеры требуется пропускная способность 28.8 мебагит в секунду (3.6 мегабайта в секунду). Использование преобразователей среды позволяет обойти ограничение длины FireWire кабеля в 8 метров и удалять камеры от микшера настолько, насколько позволяет стандарт локальной сети Ethernet, то есть на 100 метров, без использования повторителей.
Помимо ноутбуков для подключения камер к компьютеру микшеру могут использоваться модифицированные микрокомпьютеры Ebox 3300, которые изначально не имеют возможности подключения FireWire устройств. Для решения этой проблемы в Ebox 3300 устанавливается miniPCI плата расширения FireWire, это позволяет подключить к микрокомпьютеру FireWire камеру. Далее от микрокомпьютера видео передается на ноутбук-микшер посредством сети Ethernet, так же как и от ноутбука. На микрокомпьютерах используется специально разработанное программное обеспечение на базе Ubuntu Linux 8.04.4 LTS. Также ведется разработка платы Tally индикации для микрокомпьютера Ebox 3300.
Ноутбуки или микрокомпьютеры, используемые для конвертации среды, также служат для организации служебной связи между режиссером трансляции, находящимся за компьютером-микшером, и опреаторами за камерами. Служебная связь организовывается посредством протокола sip и программные sip клиентов на компьютерах конвертерах среды. В качестве сервера sip используется локальные сервер sip телефонии, установленный на компьютере микшере, это позволяет не загружать Интернет канал переговорами. Надо учитывать что желательно использовать отдельный преобразователь среды для каждой камеры, это дает возможность полностью использовать служебную связь.
Если условия проведения трансляции не позволяют провести провода между компьютером микшером и камерами, то возможно использование WiFi. Стоит заметить что пропускная способность наиболее распространенного WiFi G не позволяет стабильно пропускать 28.8 мегабита в секунду, поэтому возможно использование только WiFi стандарта N, которые имеет необходимую пропускную способность. Возможно как использование ноутбуков со встроенным WiFi N, так и дооборудование ноутбуков USB адаптерами с поддержкой WiFi N. Также USB адаптером WiFi N может быть дооборудован и микрокомпьютер Ebox 3300, при этом имея низкое энергопотребление, около 8 ватт, микрокомпьютер может долго работать от внешнего аккумулятора, что обеспечивает полную мобильность камеры. Использование WiFi N позволяет камере, подключенной к микрокомпьютеру Ebox с автономным питанием, позволяет свободно перемещаться в помещении в радиусе до 30 метров до точки доступа WiFi N, при этом во избежание потери кадров желательно наличие прямой видимости между WiFi точной доступа и антенной адаптера на микрокомпьютере (особенно это стоит учитывать при больших удалениях от точки доступа).

Рисунок 24. Микрокомпьютер Ebox 3300, с возможностью подключения FireWire камеры
То есть камеры могут подключаться к микшеру как локально, используя контроллеры FireWire на компьютере микшере, так и удаленно, используя локальную сеть. Надо учитывать, что передачи видео с камер по локальной сети не изменяет само видео, только внося небольшую задержку, вызванную передачей по сети. Видео по сети передается в том же формате Raw DV, что и выдается видеокамерой, если же видео с камеры содержало и звуковую дорожку, то это дорожка также передается на микшер. Из-за достаточно серьезных требований к пропускной способности локальной сети, желательно использование локальной сети Gigabit Ethernet, что позволяет избежать сбоев при передачи видео при использовании большого количества удаленных камер. Так что лучшим вариантом является развертывание на месте проведения трансляции собственной сети Gigabit Ethernet с использованием маршрутизатора с поддержкой WiFi N и Gigabit Ethernet, примером такого устройства может быть роутер Asus RT-N15.
Если требуется установка камеры в труднодоступных для оператора с камерой местах, например за сценой или на высоких точках в помещении, то возможно использование камеры IP видео наблюдения с удаленным управлением, так называемой PTZ (Pan, Tilt, Zoom) IP камеры. Естественно, возможно использование и обычных камер IP наблюдения, без использования PTZ. Данные камеры, как оборудованные системой PTZ, так и без нее, имеют небольшие размеры и хорошо подходят для крепления на различные поверхности, при этом они обеспечивают достаточно качественную картинку в любых условиях, даже при низкой освещенности. Конечно, качетво картинки с таких камер ниже, чем при использовании DV видеокамер, но в данном случае план с PTZ камер может быть незаменим. Камеры имеет полностью удаленное управление и для удаленного управления используется отдельный компьютер. Сигнал с камеры передается по локальной сети, имея битрейт около 8 мегабит в секунду, используется видеокодек Motion JPEG, звук с камеры не передается. IP камеры наблюдения подключаются к построенной с помощью роутера локальной сети и видео с них передается на компьютер-микшер, где перед подачей микшеру конвертируется в реальном времени. Видео с такой камеры перед попаданием в программный микшер конвертируется в формат DV, используемый в остальных камерах комплекса. Возможно использование нескольких PTZ камер, но не стоит забывать что сигнал с таких камер требует перекодирования, что сильно сказывается на нагрузке на процессор компьютера микшера. При использовании большого количества PTZ камер, возможно использование отдельного компьютера для осуществления перекодирования Motion JPEG -- DV.
Есть возможность ввода аналоговой картинки с какого либо устройства подключенного по S-Video или композитному входу с использованием оцифровщика Canopus ADVC-110 или аналогичного. Данное устройство позволяет в реальном времени оцифровывать видео и звук с аналогового устройства и кодировать выходной сигнал в формат DV и выводить по интерфейсу FireWire. Причем оцифровка осуществляется полностью аппаратно данным устройством, с очень хорошей синхронизацией видео и звука, при этом не потребляя ресурсов компьютера. Устройство может подключаться к ноутбуку-микшеру точно так же как и видеокамера, то есть как локально, так и через конвертеры среды.

Рисунок 25. Устройство оцифровки Canopus ADVC-110
Еще одной интересной особенностью расширенной схемы можно назвать возможность организации сложных схем подключения аудио оборудования. В принципе, возможность подключить внешний аудио микшер есть и в минимальном варианте схемы, просто при использовании малого количества камер, такое усложнение звуковой схемы обычно нецелесообразно. В расширенной схеме, аудио микшер может использоваться для подключения большого количества микрофонов или других звуковых источников. Выход микшера подключается либо к линейному входу ноутбука-микшера либо к одной из камер, если камеры поддерживают подключение вшешних звуковых источников.
Помимо всего вышеперечисленного в расширенной схеме портативного трансляционного комплекса есть возможность вывода DV видео в реальном времени на мониторы (телевизоры, проекторы) для показа публике на месте проведения трансляции. То есть выводится не сжатая картинка, которую смотрят зрители в Интернет, а именно смикшированный поток в исходном качестве. Для вывода этого потока требуется компьютер (это может быть как ноутбук, неттоп, так и стационарный компьютер), под управлением ОС Linux, подключенный к локальной сети, построенной на месте проведения трансляции. Ширина полосы пропускания, требуемая для передачи видео, все те же 3.6 мегабайта в секунду, что и для передачи с камеры на микшер по сети. Так что стоит учитывать и эту нагрузку на маршрутизатор, при выборе количества используемого оборудования.
Еще одной важной возможностью является возможность использования отдельного компьютера для кодирования видеопотоков и отправки на сервер вещания. То есть ноутбук-микшер используется только для предпросмотра, режиссирования эфира, хранения записей, а далее видео по локальной сети передается на отдельный ноутбук для кодирования и отправки на сервер. Это позволяет одновременно кодировать смикшированный видеопоток с несколькими битрейтами для различных каналов пользователей, также есть возможность отправки отдельной звуковой дорожки для пользователей с очень узкими каналами связи. Это становится возможным потому что dvswitch, используемый для предпросмотра и микширования видео на ноутбуке-микшере, сам достаточно требователен к ресурсам компьютера и количество потребляемых ресурсов прямо пропорционально количеству подключенных камер, и поэтому вынесение кодировщика на отдельный ноутбук позволяет использовать всю его мощность только для кодирования видео. Но все же при использовании видеокодека H264 одновременное кодирование с несколькими битрейтами и разрешениями на одном компьютере невозможно из-за очень большой ресурсоемкости этого кодека. При использовании кодека VP6, возможно одновременное кодирование видео с 2мя различными разрешениями и битрейтами и кодирование только звуковой дорожки на одном современном ноутбуке. Стоит учитывать что ширина Интернет канала на месте проведения трансляции должна позволять отправлять несколько видео - и аудио- потоков на сервер одновременно.
При отсутствии Интернет канала на месте проведения трансляции возможно использование модема Yota, для отправки видео на вещательный сервер. В черте города Москва покрытие сети Yota достаточно хорошее, при стабильном приеме полоса пропускания на отдачу составляет около 400 кбит в секунду, что позволяет вести трансляцию достаточного качества с битрейтом около 300 килобит в секунду. Качество связи Yota стабильное, при уверенном приеме, добиться которого достаточно просто с использованием внешних антенн для модемов.

Рисунок 26. Модем сети Yota Samsung SWC-U200
Выше описана организация трансляции на месте ее проведения, а вот на стороне зрителя трансляция представляет собой веб страницу с видео плеером, который работает используя Adobe Flash Player прямо в браузере пользователя. При этом помимо отображения самого видео в плеер была добавлена возможность наложения векторных титров, логотипа канала и так далее.
А для расширения возможного количества зрителей возможна организация системы доставки контента по схеме Origin-Edge.
Таким образом для проведения трансляции по расширенной (максимальной) схеме с использованием нескольких камер необходимо, IP камер, внешнего аудиомикшера, титров, мультибитрейтного кодирования, служебной связи и так далее может быть необходимо:
§ Ноутбук, выступающий в роли микшера
§ Ноутбук для кодирования потоков (наиболее мощный)
§ Ноутбук режиссера титров и управления PTZ
§ До 4 DV видеокамер
§ Микрокомпьютеры Ebox или ноутбуки для конвертации среды передачи
§ IP / IP PTZ камеры поддерживающая sdjl видео в формате MOTION JPEG
§ Роутер с поддержкой WiFi N и Gigabit Ethernet
§ USB сетевые адаптеры с поддержкой WiFi N (IEEE 802.11n)
§ Модемы Yota для организации интернет доступа
§ Canopus ADVC-110 для оцифровки внешних источников
§ Ноутбуки для вывода изображения на проекторы
§ Проекторы или телевизоры для вывода изображения в залы
§ Провода FireWire длиной до 8 метров
§ Разветвитель Kramer Tools
§ Повторители Kramer Tools для увеличения расстояния между компьютером и камерами
§ Дополнительные микрофоны
§ Аудиомикшер
§ Гарнитуры служебной связи
§ XLR кабели для соединения микрофонов и микшера
§ Удлинители для подключения к электросети
§ Ethernet патч корды для подключения к сети
§ Подключение к Интернет
В данном случае требования к производительности достаточно высокие, приведенные ниже парамерты проверены экспериментальным путем:
§ Для кодирования видео стандартного разрешения до 720х576 кодеком VP6 на отдельном компьютере, достаточно ноутбука с процессором класса Core Duo с тактовой частотой от 2,53 Ггц и 2 гигабайтами оперативной памяти
§ Ноутбук-микшер используемый только для предпросмотра и записи должен иметь разрешение экрана 1440х900 или выше, чтобы разместить предпросмотр видео с камер, требования к проихводительности не критичны, то есть подойдет любой современный ноутбук
§ Нотбук для управления PTZ и титрами также может быть праклически любым современным ноутбуком
§ Свободное место на диске в размере 13 Гб на час записи исходного DV качества
§ Сводобное место на диске в размере (audio bitrate + video bitrate) трансляции, для записи видео сжатого видео (записывается отправляемый на сервер поток).
Отдельно стоит рассмотреть нагрузки на сеть. Бытовые роутеры, используемые в данной схеме, хоть и поддерживают Gigabit Ethernet, но на практике пропускная способность может составлять около 500 мегабит в секунду в обе стороны, то есть около 60 мегабайт в секунду. То есть в теории по сети возможна одновременная передача видео до 16 потоков DV в каждую сторону. На практике же, при использовании бытового оборудования результаты заметно ниже. Тестировалась работа 5 удаленных камер и 2 камер подключенных и использованием беспроводной WiFi сети.
5.1.2 Программная часть
В данном разделе рассматривается программные компоненты системы проведения Интернет трансляций. В данном разделе рассматривается именно программный набор для портативного трансляционного комплекса, но на самом деле набор приложений для стационарного и портативного комплексов не сильно отличается.
Сначала рассмотрим ключевые программные компоненты системы на вещающей стороне, то есть там откуда будет вестись трансляция. Все программное обеспечение основано на свободном ПО, распространяемым бесплатно с открытым исходным кодом, что очень удобно, имеется возможность внести изменения в алгоритмы работы приложений, а также возможно использовать приложения бесплатно и внедрять решения на их базе. Некоторые компоненты были подвергнуты модификации для достижения необходимых результатов.
5.1.2.1 Dvswitch
Dvswitch -- открытое приложение для операционной системы Linux для организации многокамерных видео съемок, написанное группой энтузиастов. В нем организована коммутация видеопотоков формата DV из различных источников, запись, вывод в файл или передача другому приложения через pipe. Это приложение является центральной частью системы проведения трансляций с использованием нескольких камер. Для возможности получения видео с различных источников, а также отправки видео на различным получателям, программа разделена на 3 части, которые связываются между собой по сети (причем части программы могут работать как локально, так и по локальной сети, требования к пропускной способности рассматривались в предыдущем разделе работы). Dvswitch состоит из программ:
§ dvsource, которая считывает видеопоток и передаёт его по сети. Для чтения из различных источников сделано три таких программы:
o dvsource-file, которая читает видео из файла и передаёт его с нужной скоростью(определённое число кадров в секунду). Поддерживаются видео файлы формата Raw DV, то есть файлы с такмим же форматом видео, как и получается на выходе DV видеокамеры.
o dvsource-dvgrab(она же dvsource-firewire и dvsource-v4l2-dv), которая запускает dvgrab и читает видеопоток из него. Dvgrab это приложение для работы с DV видеокамерами, подключенными как по FireWire так и по USB (если подключение через USB для вывода ВМ поддерживается камерой)
o dvsource-alsa, которая получает звук с линейного или микрофонного входа видеокамеры.
§ Основная программы dvswitch, которая выбирает нужный входной видеопоток и передаёт его в выходные программы. Это же приложение осущаствляем и отдельную коммутацию аудио потоков, то есть можно использовать звук от одной камеры, а видео от другой и т. д.
§ dvsink, которая принимает выходной (смркшированный в dvswitch) поток. Таких программ сделано две:
o dvsink-files, сохраняющая видео в файлы формата Raw DV. При этом она для каждого блока, которые разделяются в dvswitch кнопками "Запись" и "Вырезать"(правильный перевод этой кнопки - "Разрезать"), создаёт отдельный файл.
o dvsink-command, передающая видео какой-либо другой программе через pipe.

Рисунок 27. Схема взаимодействия программных компонентов dvswitch
Между собой программы связываются по протоколу TCP: dvswitch работает как сервер, а dvsource и dvsink подключаются к нему. Программы никак не синхронизируют свой таймкод между собой: входная программа просто посылает кадры с нужной частотой. DVSwitch забирает их с нужной для неё скоростью(при этом есть очередь FIFO на 4 кадра), лишние при этом отбрасываются при переполнении очереди, а недостающие кадры получаются повторением предыдущих. Затем на основе этих кадров создаётся выходные кадры, которые передаётся в выходные программы(при этом так же используется очередь на 30 кадров), которые передают или сохраняют их по мере поступления. Такая организация позволяет передавать выходной видеопоток без задержек, однако приводит к потере кадров даже при незначительных задержках.
DVSource передаёт в DVSwitch только видеопоток в формате raw dv, а обратно может получать информацию(её запрашивает только dvsource-dvgrab с ключом - t), выводится ли данный источник на выход или нет. DVSink получает видеопоток и команды начать, остановить запись и начать новый файл(dvsink-command получает только видеопоток), а так же сообщение о переполнении его очереди на сервере.
Программа dvswitch выполняет занимается собственно микшированием видеопотоков. Так же она предоставляет пользовательский интерфейс для управления микшированием.
Программу можно условно разделить на следующие части:
§ Сервер, который управляет подключениями клиентов dvsource и dvsink.
§ Микшер, выполняющий синхронизацию и микширование видеопотоков.
§ Пользовательский интерфейс.
DVSwitch, в отличии от dvsource и dvsink, написан на C++ с широким применением объектно-ориентированного программирования. Таким образом вышеприведенный набор приложений позволяет только получать видео с камер или из файлов и записывать вывод в файл или передавать через pipe другому приложению. Для организации передачи видео на сервер используется отдельное приложение, которое сможет получить видео от dvswitch и передать его медиасерверу.
При запуске всех клиентских частей DVSwitch требуется указывать адрес подключения к серверу, то есть при запуске DVSwitch указывается его локальный адрес, а клиентские приложения подключаются к нему.
Например, для локальной машины:
§ dvswitch - h localhost - p 10164
§ dvsource-file -h locahlost - p 10164 - l /home/mixer/Scripts/teaser169.dv
§ dvsink-command -h localhost - p 10cvlc -
§ dvsink-files -h localhost - p 10164 /home/mixer/Desktop/Records/record-`date +%F--%k-%M-%S`.dv
Приведены примеры запуска серверной и клиентских частей DVSwitch. Первая команда запускает сам микшер, который является сервером и ожидает подключений от клиентских частей на TCP порту 10164. Параметр - h задает хост подключения, - p задает порт. Далее, второй командой, к микшеру локально через TCP порт 10164 подключается видео источник, проигрывающий заставку из файла teaser169.dv, опция - l (loop), означает что видео из файла будет проигрываться постоянно, в режиме повтора. Следующая команда через стандартный вывод (смикшированный поток из микшера) передает видео программе cvlc, которая получает видео из стандартного ввода, программа cvlc просто проигрывает видео на экране. Последняя команда из примера сохраняет выходной поток в указанный файл.
5.1.2.2 VideoLAN
VideoLAN, сокращенно VLC -- популярный кроссплатформенный медиаплеер, который также поддерживает медивещание с поддержкой различных протоколов и кодирование различный аудио - и видео - данных как в файлы, так и в реальном времени. В случае Интернет трансляций VLC используется как приложение, получающее смикшированный видеопоток от dvswitch. То есть VLC через pipe получает видео от dvsink-command, так как dvsink это клиентское приложение dvswitch, которое может работать по локальной сети, то VLC может запускаться не только на том же компьютере, что и dvswitch. Это позволяет использовать несколько ПК для кодирования разных потоков, что дает возможность разгрузить компьютер-микшер.
VLC в настоящее время имеет поддержку кодирования видео различные форматы. Но, учитывая что там необходимо передать видео медиасерверу, который далее передает поток клиентским Flash Player, то нас интересуют только форматы, поддерживаемые Flash Player, а именно Flash Video или H264. VLC имеет поддержку кодирования H264, но не имеет поддержки отправки видео по протоколу RTMP, который является основным для большинства медиасерверов. При использовании кодека H264 задержка связанная с кодированием видео достигает 3-4 секунд, это связано с архитектурой библиотеки кодирования видео x264.

Рисунок 28. Схема передачи потоков от микшера к зрителям
При использовании Wowza Media Server, есть возможность использовать VLC для отправки потока на сервер по протоколу RTP, а далее Wowza Media Server будет передавать поток клиентам уже по необходимому для Flash Player протоколу RTMP. Другие медиасерверы не имеют поддержки RTP, поэтому VLC возможно использовать только с Wowza Media Server. То есть в результате VLC получает видео от dvsink через стандартный ввод, далее видео и звук кодируются заданными параметрами и отправляются на сервер по протоколу RTP. Но для начала вещания на сервер необходимо передать файл дескриптора сессии (SDP), который создается VLC на той машине, на которой запускается кодирование. Для передачи SDP файла используется SCP с необходимыми настройкми. По окончании трансляции достаточно завершить процесс VLC и передача прекратится.
5.1.2.3 FFMPEG
FFMPEG -- это приложение стало заменой VLC, оно имеет лучшую производительность и большую стабильность, по сравнению с VLC. В отличии от VLC, FFMPEG, а точнее один из его вариантов Xuggler-FFMPEG поддерживает отправку видео сразу по протоколу RTMP, что позволяет использовать его практически с любым медиасервером, будь то Wowza Media Server, Red5 или Adobe Flash Media Server. FFMPEG также как и VLC распространяется с открытым исходным кодом.

Рисунок 29. Схема пепедачи потоков от микшера к зрителям, используя FFMPEG
Схема взаимодействия между DVSwitch и FFMPEG точно такая же как и с случае с VLC. Также поддерживаются форматы Flash Video и H264. Также при использовании этого приложения и видеокодека FLV VP6 есть возможность достичь очень маленько задержки на кодирование и отправку видео, ввиду особенностей кодека. В результате возможно получение задержки на кодирование и передачу до 1 секунды, что важно при проведении телемостов и телеконференций. Возможна одновременная организация отправки закодированного видео на сервер и записи в файл на машине кодировщике. То есть использование FFMPEG позволяет использовать его с любым медиасервером по протоколу RTMP, при использовании VP6 можно добиться минимальных задержек. Еще один важный фактор при использовании FFMPEG это то, что использование протокола RTMP не требует передачи файлов-дескрипторов сессии.
Также использование RTMP позволяет применять сервер Red5, то есть используются только открытые решения.
Также FFMPEG используется в трансляционном комплексе для перекодирования видео различных форматов в формат Raw DV в реальном времени, перед введением потока в микшер DVSwitch.

Рисунок 30. Схема передачи видео с IP камеры наблюдения в dvsink, используя FFMPEG
Таким образом FFMPEG используется для получения видео формата MJPEG с камер наблюдения или PTZ камер, такое видео передается по протоколу HTTP в виде набора JPG картинок, обновляемых с заданной частотой. Далее поток MJPEG кодируется видео кодеком dvvideo с использованием FFMPEG. Также FFMPEG предоставляем некоторые функции элементарной обработки видео, например кадрирование (обрезание изображения с разных сторон), что позволяем получить из вывода камеры формата 4:3 изображение формата 16:9 путем его обрезания сверху и снизу. Далее вывод закодированного видео сохраняется в FIFO файл, который задается на вход в приложении dvsink-files. При этом задержка на весь процесс составляет менее 0,5 секунды.
Таким же образом возможно организовать перекодирование фалов различных форматов, для того чтобы использовать их в dvsource-files, который поддерживает только формат Raw DV.
5.1.2.4 Сервер вещания Red5
Как было исследовано в обзорной части работы, Red5 наиболее функциональный и популярный медиасервер, написанный на языке Java. Он используется в комплексе для вещания видео и управления пользовательскими приложениями Flash и коммуникации между пользователями. При вещании видео используется стандартное, включенное в комплект поставки сервера, приложение oflaDemo. Это приложение позволяет получать видео от кодировщика по протоколу RTMP или RTMPT и "раздавать" его клиентам, которые используют для просмотра Adobe Flash приложение, запущенное в браузере. В качестве кодировщика может выступать Adobe Flash Media Encoder, FFMPEG или Flash приложение. Также есть возможность создания вещательных сетей по принципу Origin-Edge.
При необходимости организации интерактивного взаимодействия между пользователями или режиссером и пользователями, API сервера Red5 позволяет легко доработать стандартные приложения для организации необходимой коммуникации.
5.1.2.5 Служебная связь по протоколу SIP. Asterisk и Linphone
При проведении трансляций необходима организация служебной связи между режиссером и операторами, стоящими за камерами без удаленного управления. Для организации такой служебной связи удобнее всего использовать компьютеры, используемые как конвертеры среды. А так как компьютер уже есть, то необходимо ПО, способное эту связь организовать.
В качестве ПО для организации служебной связи используется сервер SIP телефонии Asterisk и консольные SIP клиенты linphone. Все это ПО также, как и описанное ранее, открыто и распространяется с открытым исходным кодом, работает под ОС Linux. Сервер SIP Asterisk телефонии используется локально для того чтобы не нагружать Интернет канал на месте проведения трансляции, к тому же он не требователен к ресурсам, при небольших количествах подключений. Asterisk устанавливается на ноутбук-микшер, за которым работает режиссер трансляции. Для подключения к серверу могут использоваться любые клиенты, поддерживающие протокол SIP, в нашем случае используются клиенты linphone, которые запускаются и работают в командной строке, что удобно для автоматического запуска и управления, а также для работы на безмониторных микрокомпьютерах, используемых для конвертации среды.

Рисунок 31. Схема организации служебной связи
Настройки сервера Asterisk позволяют организовать комнаты для конференц связи. При наборе номера этой комнаты на клиентах, все они попадают в конференцию и могут слышать друг друга, и говорить друг другу.
5.1.2.6 Набор ПО для микрокомпьютеров без монитора на базе процессора Vortex86DX для организации конвертации среды и служебной связи
Был отдельно разработан набор ПО для микрокомпьютеров, используемых для конвертации среды. Учитываю специфику процессора Vortex86DX, используемого в частности в микрокомпьтерах ebox 3300/4300, который не имеет поддержки MMX, выбор операционной системы был ограничен. В результате в качестве операционной системы был выбран дистрибутив ubuntu linux с измененным ядром, скомпилированным с поддержкой необходимого оборудования и встроенной поддержкой firewire устройств.
В результате для использования в микрокомпьютерах был получен дистрибутив ОС Linux, с поддержкой:
§ процессоров Vortex86DX / Vortex86MX компании DMP
§ сетевых контроллеров 100 мбит Ethernet RDC6040, интегрированных в процессоры DMP
§ звуковых устройств, интегрированных в процессоры DMP
§ устройств FireWire
§ наличием по из комплекта dvswitch, для организации конвертации среды
§ поддержкой IDE контроллеров DMP
§ возможностью загрузки с CompactFlash карты и измененным загрузчиком для микрокомпьютеров Ebox
§ поддержкой USB WiFi адаптеров стандарта 802.11n на базе чипов Railink
В результате с данным набором ПО микрокомпьютеры способны конвертировать среду FireWire -- Ethernet, работать со служебной связью, загружаться с карты памяти, передавать видео как по локальной проводной, так и по беспроводной сетям.
5.1.2.7 Набор ПО для проведения трансляций на загрузочной флешке Live Flash
После завершения разработки первой версии комплекса был создан дистрибутив на базе Ubuntu Linux 9.04, содержащий весь набор описанного выше программного обеспечения (стороны вещания, то есть не включая серверную часть, которая требует установки и настройки на сервере для вещания), а также набор управляющих скриптов для запуска и остановки трансляции, служебной связи и других частей комплекса.
Данный дистрибутив поддерживает практически все современное оборудование, как ноутбуки, так и стационарные ПК, которые для нормальной работы должны соответствовать требованиям, описанным в разделе "Аппаратная часть" Есть возможность производить загрузку данного дистрибутива как используя Live CD, так и используя Live USB, то есть запуск с USB Flash носителя. Дистрибутив содержит также необходимые драйверы для USB WiFi адаптеров и встроенную поддержку FireWire ВМ камер.
Помимо стандартного ПО, включенного в поставку Ubuntu 9.04, дистрибутив содержит:
§ Dvswitch и необходимые утилиты
§ FFMPEG с поддержкой кодеков VP6, H264, AAC, MP3 и протокола RTMP
§ VLC
§ Dvgrab
§ Драйверы WiFi 802.11n для чипов Railink
§ Встроенная в ядро поддержка FireWire устройств (в том числе и камер DV)
§ ПО для просмотра и элементарной обработки видео
§ Asterisk, настроенный на работу с конференц связью
§ Linphone
§ Скрипты управления
§ Adobe Flash Player в браузере Mozilla Firefox
В результате, запуск системы трансляции возможен с использованием своего оборудования неподготовленным пользователем.
5.1.3 Этапы разработки
В данной главе описывается порядок разработки компонентов комплекса проведения трансляций, а именно его портативной версии. Все компоненты описаны в предыдущей главе, далее описывается порядок использования различных решений и причины использования тех или иных приложений.
5.1.3.1 Первая версия вещательной системы: dvswitch и vlc, wowza
Первая версия системы обладала возможностяли коммутации нескольких камер, подключеннх как локально, так и через локальную сеть и конвертеры среды. Все эти возможности изначально обеспечивались прогаммным обеспечением dvswitch.
Достаточно долгое время проводится поиск программного решения, позволяющего осуществить кодирование и передачу видео от dvswitch к вещательному серверу, при этом изначалоно требовалось найти решение совлестимое с технологией Adobe Flash, которая, как показал обзор рынка, является наиболее логичным шагом для организации Интернет видеовещания.
В 2008 году не было программных решения для ОС Linux, позволяющих даже просматритьва видео по протоколу RTMP, не то чтобы оправлять его на сервер. Но через некоторое время появилось решение WowzaMedia Server, котороеб как описывается в его обзоре, может принимать видео от источника по протоколу Native RTP в формате H264, после этого начался поиск решения позволяющего принять видео от dvswitch через pipe и передать видео по протоколу RTP на сервер Wowza MediaServer.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


