49797 (Потоковое видео и открытые системы), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Потоковое видео и открытые системы", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49797"

Текст 2 страницы из документа "49797"

Поддерживаются следующие входные форматы данных: MPEG-1, MPEG-2, MPEG-4/DivX (считываемые с локального жесткого диска или CD/DVD); "настоящие" DVD и VCD; спутниковые карты, работающие по стандарту (DVB-S); потоковое видео, "упакованное" в MPEG-1, MPEG-2 и MPEG-4 (то есть, VideoLAN может работать не только как сетевой транслятор, но и как ретранслятор чужого контента с возможностью сохранения последнего на жесткий диск).

В настоящий момент реализованы два основных протокола трансляции: Unicast ("узконаправленное" вещание с доставкой контента только одному целевому узлу) и Multicast (групповая трансляция с доставкой одного и того же контента множеству узлов). Также (формально) имеется возможность широковещательной рассылки контента всем узлам локальной сети (для этого достаточно указать в качестве целевого IP-адреса 255.255.255.255), но с высокой степенью вероятности она будет задавлена брандмауэрами и маршрузитаторами, так что без их радикальной перестройки сеанс вещания не состоится даже в рамках локальной сети.

Еще имеется ограниченная поддержка видео-по-требованию (Video-on-Demand или, сокращенно, VoD) с возможностью выбора контента по HTTP или TELNET интерфейсам, однако эта возможность обычно используется исключительно администраторами для удаленного управления сервером трансляции.

Контейнеры, в которые помещается транслируемый поток, зависят от типа трансляции, допустимые комбинации которых перечислены в таблице на рис. 5. Естественно, все это хозяйство работает как с IPv4, так и с IPv6.

Рисунок 5. Допустимые комбинации протоколов трансляции с контейнерами, в которые упаковывается транслируемый медиа-поток.

2. Практическая часть

Рассмотрим подробнее организацию потоковой трансляцию видео на основе сервера VideoLan установленного на систему Ubuntu 10.10.

    1. Установка сервера

Для установки сервера, воспользуемся стандартным менеджером пакетов Synaptic и установим требуемые пакеты согласно инструкции установки на систему Ubuntu 10.10. Так же возможна установка, используя терминал. Что пригодится для удаленной установки.

Для нормальной работы сервера VideoLAN обязательным условием является установка и проигрывателя с библиотеками. Поэтому сначала устанавливаем медиапроигрыватель, который при установке автоматически загрузит связанные пакеты.

Для того чтобы появилась возможность потокового вещания заменяем установленные библиотеки libavcodec на libavcodec-extra.

Размер загружаемых пакетов довольно скромен по сегодняшним меркам и составляет около 6 мегабайт.

После загрузки и установки VideoLAN можно сразу приступать к организации потокового вещания.

    1. Организация потокового вещания по протоколу UDP Unicast



Самое простое - это потоковое вещание обычного AVI/MPEG файла на соседний компьютер. В меню программы выбираем пункт Медиа - Потоковое вещание или же воспользовавшись горячими клавишами можно нажать (см. рис. 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.

    1. Создание web-страницы транслирующей медиапоток с сервера

Так как в случае трансляции видео через web, вовсе не обязательно знать адреса клиентских машин, то для упрощения доступа к транслируемому потоку логично сделать web интерфейс. Создадим пустую html-страницу и внедрим в неё код плеера. Для web трансляции код страницы может выглядеть следующим образом:

Тест

Тестовое потоковое вещание. Курсовая АИС.

name="video"

autoplay="yes" loop="yes" width="400" height="300"

target="http://192.168.1.4:8080"/>

Где свойство объекта 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.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4144
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее