2. Практическая часть
Рассмотрим подробнее организацию потоковой трансляцию видео на основе сервера VideoLan установленного на систему Ubuntu 10.10.
2.1 Установка сервераДля установки сервера, воспользуемся стандартным менеджером пакетов Synaptic и установим требуемые пакеты согласно инструкции установки на систему Ubuntu 10.10. Так же возможна установка, используя терминал. Что пригодится для удаленной установки.
Для нормальной работы сервера VideoLAN обязательным условием является установка и проигрывателя с библиотеками. Поэтому сначала устанавливаем медиапроигрыватель, который при установке автоматически загрузит связанные пакеты.
Для того чтобы появилась возможность потокового вещания заменяем установленные библиотеки libavcodec на libavcodec-extra.
Размер загружаемых пакетов довольно скромен по сегодняшним меркам и составляет около 6 мегабайт.
После загрузки и установки VideoLAN можно сразу приступать к организации потокового вещания.
2.2 Организация потокового вещания по протоколу UDP UnicastСамое простое - это потоковое вещание обычного AVI/MPEG файла на соседний компьютер. В меню программы выбираем пункт Медиа - Потоковое вещание или же воспользовавшись горячими клавишами можно нажать <CTRL-S> (см. рис. 6) и через "Обзор" выбираем один или несколько файлов (не обязательно одного и того же типа).
Для подключения субтитров (если мы хотим их подключать) взводим одноименную галочку и указываем путь к файлу с субтитрами, положение и цвет которых определяется кнопкой "Расширенные настройки". VideoLAN поддерживает множество субтитров различных типов (включая .srt и .sub), что позволяет нам, в частности, накладывать рекламу на видеопоток или различные сведения чисто информационного характера. После всех установок связанных с выбором входного видео и субтитров можно нажимать на кнопку «Поток». В VideoLAN вещание можно осуществлять сразу в нескольких «направлениях», но нам достаточно выбрать протокол UDP. В поле адрес введем адрес компьютера на который будет осуществляться вещание и порт (по-умолчанию 1234). Также на этом этапе можно включить перекодирование входного потока, что в частности пригодится для вещания по протоколу HTTP. В данном случае, использование протокола UDP Unicast подразумевает в качестве среды передачи данных локальную сеть, что обуславливает высокую скорость передачи данных. Поэтому в перекодировании нет особого смысла.
Время жизни пакетов (TTL) зависит от количества узлов, через которые проходит транслируемый контент, и чтобы он не ушел чересчур далеко, это значение можно установить равному трем или даже одному. О строке "MRL выходного потока" можно не заботиться, программа сформирует ее за нас автоматически. После нажатия кнопки «Поток» автоматически начнется вещание на указанный в параметрах адрес.
Проверим трансляцию, запустив любой проигрыватель, поддерживающий потоковую передачу, на компьютере с адресом, указанным в параметрах, и укажем номер udp порта. Запустим VCL проигрыватель на операционной системе windows 7 и увидим осуществляемую трансляцию.
При этом нам вовсе не обязательно знать адрес сервера, достаточно лишь указать порт на который ведется трансляция.
2.3 Организация потокового вещания по протоколу HTTP
Главным недостатком unicast-трансляции является невозможность вещания на произвольные узлы локальной/глобальной сети. Сервер должен иметь список IP-узлов для рассылки пакетов. Получателям знать же IP-адрес транслятора ни к чему. Им достаточно "помнить" назначенный UDP-порт, чтобы ловить трафик. В обычной жизни все наоборот. Передатчик ничего не знает о приемнике (приемниках), а каждый из приемников в любой момент времени может настроиться на волну любого из многочисленных передатчиков и отключиться, если передача ему неинтересна.
Специально для реализации подобного способа общения, VideoLAN поддерживает трансляцию через Web по TCP/IP-протоколу. Возвращаясь к серверной стороне, меняем протокол с UDP на HTTP, в поле адрес можно ничего не указывать, если транслироваться будет только один видео-поток.
Также рекомендуется увеличить и значение TTL, особенно если мы собираемся вещать в Интернет на далекие расстояния.
Обратим внимание, что на этот раз трансляция осуществляется через web и важно выбрать один из доступных контейнеров, для более лучшего сжатия потока и снижения трафика. Если все клиенты используют в качестве приемника программу VideoLAN, то особой разницы нет и лучше оставить контейнер по умолчанию, если же планируется транслировать аудио/видеопоток на компьютеры, где кроме Windows и штатного медиаплеера ничего нет, лучше выбрать ASF, однако в таком случае следует позаботиться о совместимости с кодеками, поставляемыми вместе с Windows и в графе "профиль" выбрать что-то очень хорошо известное и проверенное временем (например, DIV3, WM1, WM2), аналогичным путем поступить и со звуком, в противном случае слушателям придется рыскать в поисках нужных кодеков перед началом воспроизведения контента.
Бегущий ползунок линейки прогресса подтверждает, что вещание началось, даже если к нам еще никто не подключен.
Помимо VLC плейера попробуем открыть поток также и в стандартном проигрывателе Windows.
2.4 Создание web-страницы транслирующей медиапоток с сервераТак как в случае трансляции видео через web, вовсе не обязательно знать адреса клиентских машин, то для упрощения доступа к транслируемому потоку логично сделать web интерфейс. Создадим пустую html-страницу и внедрим в неё код плеера. Для web трансляции код страницы может выглядеть следующим образом:
<html>
<head><title>Тест</title></head>
<body>
<h2>Тестовое потоковое вещание. Курсовая АИС. <h2>
<embed type="application/x-vlc-plugin"
name="video"
autoplay="yes" loop="yes" width="400" height="300"
target="http://192.168.1.4:8080"/>
<br />
</body>
</html>
Где свойство объекта target будет содержать адрес транслируемого потока.
2.5 Удаленное управление сервером VideoLAN
Для удаленного управления медиасервером установим в системе OpenSSH сервер.
Установим удаленное соединение по SSH используя клиент PuTTY.
После авторизации, получаем приглашение в терминал Ubuntu.
Запуск консольной версии VideoLAN осуществляется путем ввода команды cvlc. Даже в тех случаях когда мы можем не знать какой именно файл стоит транслровать, то VideoLAN поможет просмотреть видео прямо в окне терминала. Для этого используется преобразование графического изображения в символы ASCII.
По недолгому просмотру такого символьного фильма, вполне можно понять содержание ролика. Для того чтобы организовать web трансляцию, не придется вводить множество команд. Запуск трансляции осуществляется одной командой:
cvlc -vvv /home/alex/video.mp4 --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:standard{access=http,mux=ogg,dst=192.168.1.4:8080}'
где /home/alex/video.mp4 имя транслируемого файла, или устройство захвата, или даже ссылка на другой видео поток. В блоке #transcode указываются параметры перекодирования входного потока. Если нет нужды, менять установки по-умолчанию, то достаточно указать только имя контейнера и битрейт. Так же указывается тип точки выхода, в данном случае это http, формат выходного потока, и адрес сервера, в котором можно указать только порт, а сам адрес оставить пустым.
Теперь используя PuTTY запустим веб трансляцию и проверим её на тестовой странице в другой ОС.
cvlc -vvv video.mp4 --sout '#transcode{vcodec=WMV2,vb=800,scale=1,acodec=wma2,ab=96,channels=2,samplerate=44100}:standard{access=http,mux=asf,dst=:8080/}'
Заключение
Структура глобального трафика в интернете меняется. Видео по-прежнему является основным пожирателем емкости сетевых каналов, но изменяется сама структура видео.
Если раньше львиную долю трафика в глобальной сети генерировали миллионы пользователей, скачивающих видео в torrent-сетях, то теперь основным генератором трафика стало так называемое потоковое видео, генерируемое ресурсами вроде YouTube или системами видеоконференций, когда пользователи общаются между собой по видеоканалам.
Сервер VideoLAN, позволяет любому пользователю создать один из таких каналов. Трансляция может осуществляться с любого входного потока, будь то файл, web-камера или встроенный ТВ-тюнер. Трансляция видео может осуществлять как в локальной так и глобальных сетях, что делает данный сервер действительно масштабируемым.
VideoLAN позволяет передавать один поток информации группе клиентов по сети. Одной из проблем при реализации подобной схемы потокового вещания является корректная настройка маршрутизаторов для передачи широковещательных пакетов из одного сегмента сети в другой. Если организация, предоставляющая потоковое вещание, имеет контроль над сетью между сервером и клиентами (например, в образовательной, правительственной или корпоративной сети), то протоколы маршрутизации, такие как IGMP и PIM, могут быть использованы для доставки мультимедиа нескольким клиентам из различных сегментов LAN.
... необходимо загрузить весь файл целиком. Другим, не принципиальным, но существенным ограничением формата является большой объем полученных файлов. Таким образом, на телефонах появился формат видео, способный обеспечить высокое качество изображения при практически кинематографической частоте кадров. Качество воспроизведения зависит лишь от объема доступной памяти. Видеоролик проигрывается на полный ...
... зависеть от того, будете ли вы доставлять видео каждому отдельному пользователю индивидуально (по схеме «один к одному»), или множеству пользователей одновременно (по схеме «один ко многим»). 6. Разработайте сеть для доставки видео, не забыв при этом о всех других типах трафика, выделив под них достаточную полосу пропускания. Это может повлечь за собой развертывание средств QoS. 7. Установите ...
... курсовой работы достигнуты такие результаты: 1. Разработана информационная система «Архив online видео». 2. Получены практические навыки в создании Web‑сайтов средствами скриптового языка PHP. 3. Получены практические навыки самостоятельной постановки и решения задачи разработки архива flv файлов. 4. Усвоены методики формализации данного типа задач. ...
... времени суток и дням недели для различных пользователей; блокировка ПЭВМ на время отсутствия пользователя на рабочем месте; контроль и тестирование средств защиты; По требованию Заказчика БАЗОВАЯ СИСТЕМА ВВОДА-ВЫВОДА может быть дополнена программами обслуживания специальных устройств, а также введена поддержка национальных таблиц маркировки клавиатур и кодовых таблиц знакогенератора адаптера ...
0 комментариев