Передача видео c
Как транслировать (передавать) видео и музыку в сеть — делаем собственное вещание в локалку и интернет
Доброго дня!
Если у вас есть какая-нибудь камера или ТВ-тюнер, и вы хотите сделать свою трансляцию в локальной сети (или в интернет) — то эта заметка для вас. 👌
Впрочем, никто не мешает с таким же успехом вещать и просто какие-нибудь фильмы/музыку, например, с ПК на ТВ или мобильные гаджеты.
Единственное, учитывайте, что ваш компьютер (который транслирует) должен быть достаточно производительным (чтобы избежать лагов и подвисаний). К тому же, нужно иметь хорошее и стабильное подключение к сети (не ниже 10 Мбит/с). В помощь: тест скорости интернета.
В этой заметке я по шагам рассмотрю все необходимые действия как для вещания по локальной сети, так и по интернету. Разумеется, в вашем случае могут быть небольшие отличия (например, при выборе устройства захвата. ).
Ладно, ближе к теме.
Трансляция видео в сеть: пример настройки вещания
Запуск трансляции
ШАГ 1
И так, для нашей задачи понадобится универсальный кросс-платформенный плеер VLC. Программа позволяет не только смотреть потоковое видео в сети, но и создавать трансляцию самостоятельно.
VLC
Основные преимущества проигрывателя:
- «всеядность»: воспроизводит файлы, внешние диски, сетевые трансляции и т.д.;
- поддерживает все популярные форматы файлов: MPEG-2, MPEG-4, H.264, MKV, WebM, WMV, MP3 (даже, если у вас не установлены кодеки в системе);
- работает на Windows, Android, Linux, Mac OS X, iOS;
- программа бесплатна (и без рекламных вставок).
Примечание : очень желательно установить данный проигрыватель и на то устройство, с которого вы будете вещать, и на то — на котором будете принимать трансляцию. В своем примере ниже я так и сделал.
ШАГ 2
Теперь необходимо запустить VLC на том компьютере (устройстве), с которого будем вести трансляцию.
После перейти в меню «Медиа/Передать» (Ctrl+S). См. скриншот ниже.
ШАГ 3
Далее нужно выбрать, что мы будем транслировать:
- файл;
- диск;
- ТВ-тюнер, камеру или др. устройства захвата.
В своем примере я просто добавил один из фильмов.
ШАГ 4
Затем нужно уточнить источник вещание: при выборе обычного файла (как в моем случае) можно сразу же нажать далее (т.е. следующий) .
ШАГ 5
Нужно выбрать в списке «HTTP» и нажать на кнопку «Добавить» . У вас появится вкладка с одноименным названием, в которой можно указать порт и путь трансляции (по умолчанию порт 8080). Рекомендую не менять эти значения и перейти к дальнейшей настройке.
Вывод потока (порт)
ШАГ 6
В этом шаге нужно выбрать качество трансляции (подбирается экспериментально, в зависимости от ваших нужд). Например, я транслирую видео с ПК на телефон — поэтому выбрал видео для андроида ( прим. : на экране телефона почти незаметна разница между оригиналом и сжатым видео) .
ШАГ 7
Здесь можно задать доп. параметры вещания. В большинстве случаев можно сразу же нажать «Поток» .
ШАГ 8
При первом запуске трансляции брандмауэр Windows попросит вас дать разрешение на работу VLC — просто согласитесь, нажав на «Разрешить доступ» .
ШАГ 9
Если трансляция запустилась вы увидите тикающий таймер времени (см. нижнюю часть окна программы). То есть с этого момента — вещание можно принять на другое устройство и посмотреть «что-там. «. 👌
Как смотреть трансляцию
По локальной сети
Т.е. и компьютер (который вещает), и устройство (которое принимает трансляцию) находится в одной общей локальной сети. В своем примере ниже: трансляция ведется с ПК, а принимается на телефон под андроидом. Оба устройства подключены к одной Wi-Fi сети.
ШАГ 1
Для начала нам нужно узнать локальный IP-адрес компьютера, который ведет трансляцию. Сделать это можно через командную строку: введя в ней ipconfig и нажав Enter.
См. ниже скриншот — мой IP 192.168.0.106 (это нужно для дальнейшего подключения).
ipconfig / Командная строка
Кстати, узнать IP-адреса также можно в настройках роутера.
IP-адрес в настройках роутера
ШАГ 2
Теперь запускаем VLC на том устройстве, с которого будем принимать трансляцию (например, телефон). Далее переходим в меню программы и выбираем «Поток» (или «открыть URL-адрес трансляции») .
ШАГ 3
Далее нужно указать сетевой адрес — http://192.168.0.106:8080
Важно!
1) Вместо 192.168.0.106 — у вас будет свой IP-адрес того компьютера, который ведет трансляцию (например, 192.168.10.102 или 192.168.0.103). Мы этот IP-адрес узнавали в ШАГЕ 1.
2) Вместо порта 8080 может использоваться другой (если при создании трансляции вы изменили его).
VLC для андроид
ШАГ 4
Если вы все указали правильно, то через 3-5 сек. устройство «прогрузит» кэш и VLC начнет показывать вещание.
Разумеется, к одной трансляции можно одновременно подключить несколько устройств.
По интернету
ШАГ 1
Всё отличие здесь будет сводится к тому, что нам нужно узнать не локальный IP-адрес (который «дал» нам роутер), а внешний/глобальный (у того ПК, который ведет трансляцию) . Сделать это можно по-разному, ссылку на инструкцию привожу ниже.
Как узнать свой локальный и глобальный IP-адрес — https://ocomp.info/kak-uznat-ip-adres.html
Например, мне импонирует утилита Speccy — достаточно открыть раздел Network и вы знаете и локальный IP, и внешний.
Speccy — просмотр IP-адресов, раздел Network
Разумеется, подобную информацию также можно узнать в настройках роутера. Скрин ниже в качестве примера.
ШАГ 2
Чтобы к вашей трансляции могли подключиться из интернета — необходимо открыть (пробросить) нужный порт (в нашем случае 8080). По умолчанию, в целях безопасности, роутер не позволяет подключаться из вне.
Делается это обычно в настройках роутера в разделе «Перенаправление портов» (Port Forwarding). Вообще, у меня на блоге есть подробная заметка на эту тему (для начинающих), ссылка ниже.
В помощь! Как пробросить порты на роутере (открываем порты для игр, Skype, uTorrent и др. приложений) — https://ocomp.info/kak-probrosit-portyi-na-routere.html
ШАГ 3
Теперь запускаем VLC на том устройстве, где будем принимать трансляцию и открываем сетевой адрес вида: http://89.118.10.32:8080
Важно!
Вместо 89.118.10.32 — у вас будет свой внешний IP-адрес (который мы уточняли в ШАГЕ 1, см. чуть выше).
Вводим глобальный IP
ШАГ 4
Если вышеприведенные настройки были корректно заданы — то через несколько секунд начнется показ трансляции (см. скрин ниже). Задача выполнена?!
Передача видео и аудио сигналов через Интернет и в локальной сети Ethernet
Сравнительная таблица устройств и оборудования для передачи видео
У любого пользователя может возникнуть задача передать видео от передатчик до приемника. Например, нужно передать видео с выхода камеры наблюдения на экран телевизора или передать видео с видео выхода компьютера на информационную панель. Если приемник находится на расстоянии больше 20 метров от передатчика, то даже при использовании фирменных кабелей передать видео не получится. В этом случае пользователю приходится использовать дополнительные устройства — устройства для передачи сигнала по витой паре. Все устройства применяемые для передачи видео по витой паре можно разделить на две группы :
1. устройства для передачи видео по витой паре
2.устройства для передачи видео в сети Ethernet
Устройства из первой группы могут передавать видео по витой паре, но они не будут работать если вы подключите их в вашу локальную сеть Ethernet, в худшем случае можно даже сломать коммутатор к которому будет подключено такое устройство. Однако устройства из первой группы обладают и преимуществом — меньшая задержка при передачи видео сигнала от передатчика к приемнику. Но фактически это единственное преимущество перед передатчиками из второй группы.
Передатчик из второй группы (кодер ITMS) обладает следующими характеристиками и возможностями:
- передача видео на большие расстояния в локальной сети — до 300м
- передача видео через Интернет
- передача видео по WIFI
- передача видео на неограниченное кол-во устройств одновременно в сети Ethernet ( поддержка мультикаст трансляции)
Описание работы системы передатчик( кодер ITMS) и премник ( Amino Aminet Image Encoder) поддерживающих стандарт Ethernet дано ниже.
Для передачи видео и аудио сигналов в локальной сети Ethernet или в сети Internet нужно всего три компонента:
- передатчик видео сигнала — устанавливается в точке приема видео и аудио сигналов
- услуги транспортной сети провайдера
- приемник видео сигнала— декодирующее оборудование в месте получения видео и аудио сигналов
Передатчик — оборудование, кодирующее видео сигнал, представляет собой аппаратный IP кодер/encoder, который осуществляет захват и кодирование аудио/видео сигналов и их трансляцию в виде H264 потока через сеть TCP/IP.
В качестве приемника видео сигнала можно использовать:
- ТВ приставку STB Amino Aminet Image Encoder . В зависимости от модели, у приставки могут быть разные видеовыходы: HDMI, композитный, компонентный, аудио выход.
- Компьютер с установленным ПО, например, VLC
На передаваемый видео сигнал можно наложить текстовое сообщение, логотип фирмы или другую картинку.
Различие при передачи видео сигнала в Интернет и в Ethernet.
Сеть Интернет. При передачи сигнала в сети Интернет нужно учитывать следующие требования и возможности сети Интернет:
- Передатчик видео должен обладать внешним IP адресом.
- В сети Интернет не может передаваться мультикаст. Чтобы передать видеосигнал передатчик должен формировать RTSP/HTTP поток.
- Передатчик может формировать не более 2х RTSP/HTTP потоков одновременно, поэтому если требуется передать видео для более чем 2х разных пользователей, то нужно установить дополнительное оборудование — раздающий видео сервер.
Сеть Ethernet. При передачи сигнала в сети Ethernet нужно учитывать следующие требования и возможности сети Ethernet:
- Передатчику не нужно присваивать внешний IP адрес.
- В сети Ethernet могут передаваться не только RTSP и HTTP потоки, но также и UDP мультикаст, поэтому можно передать сигнал неограниченному числу пользователей одновременно без использования дополнительного оборудования. Однако если вы хотите передавать мультикаст в вашей сети — вам нужно проконсультироваться с вашим системным администратором, может быть, передача мультикаста невозможна из-за другого оборудования установленного в вашей сети.
При передачи видео в сети Интернет или Ethernet нужно учитывать что IP поток формируемый передатчиком будет занимать определенную часть пропускной возможности сети. В общем случае поток формируемый передатчиком зависит от разрешения передаваемого видео, однако некоторые некачественные передатчики формируют большой поток даже при передачи видео в низком разрешении.
Возможные области применения:
- передача видео при проведении конференций и собраний
- передача видео из театра и концертного зала
- передача видео из операционной или больницы
- передача видео внутри города от одного оператора кабельного телевидения к другому
- передача видео от студии до телепередающей станции
- передача видео из аудитории института
Возможности расширения системы
Для каждой из представленных групп оборудования, в случае необходимости внесения изменения в схему подключения, придется осуществить ряд действий, т.е. установить новое оборудование, заменить уже существующее и/или провести настройку существующей сети и оборудования.
Например, если нужно установить дополнительный приемник, то
- Для устройств передающих видео по витой паре понадобится проложить дополнительную витую пару до передатчика, заменить передатчик на новый с 2 выходами для передачи видео и установить новый приемник видео и настроить уровень сигнала во 2й точке приема видео.
- Для устройств передающих видео в локальной сети (например кодер ITMS — приставка) понадобится установить новый приемник( приставку) и протянуть витую пару от приемника до ближайшего коммутатора подключенного к локальной сети.
- Если передатчик приемник соединены с помощью кабеля HDMI, то понадобится установить делитель HDMI сигнала и протянуть новый HDMI кабель от делителя до нового приемника.
Если нужно перенести приемник в другое место, то
- Для устройств передающих видео по витой паре понадобится проложить новую или переложить старую витую пару до передатчика, настроить уровень сигнала если была проложена новая витая пара.
- Для устройств передающих видео в локальной сети (например кодер ITMS — приставка) понадобиться только проложить витую пару от нового места установки приемника до ближайшего коммутатора подключенного к локальной сети
- Если передатчик приемник соединены с помощью кабеля HDMI, то понадобится переложить HDMI кабель.
Если нужно подключить приемник к другому передатчику, то
- Для устройств передающих видео по витой паре понадобится проложить новую или переложить старую витую пару до нового передатчика и настроить уровень сигнала.
- Для устройств передающих видео в локальной сети (например кодер ITMS — приставка) понадобиться только проложить витую пару от нового передатчика до ближайшего коммутатора подключенного к локальной сети.
- Если передатчик приемник соединены с помощью кабеля HDMI, то понадобится переложить HDMI кабель или проложить новый HDMI кабель до нового передатчика.
Потоковое видео: что это такое?
Дата публикации: 2018-02-01
От автора: поскольку все больше и больше клиентов используют сети с высокой пропускной способностью, потоковое видео стало нормой в Интернете. Социальные медиа, веб-сайты и потоковые сервисы, такие как YouTube и Netflix, передаются прямо на ваш телефон. Исследование показало, что видео повышает взаимодействие с клиентами, поэтому мы должны ожидать, что количество видео в Интернете и на мобильных устройствах будет продолжать расти быстрыми темпами. Но что нужно для хорошего воспроизведения видео? И (возможно, что более важно), как вы можете реализовать хорошее воспроизведение видео, которое также очень высокоэффективно? В этой статье я сосредоточусь на нескольких способах оптимизации потоковой передачи HTTP Live Streaming (HLS) для улучшения доставки. Эти передовые методы также применяются к форматам MPEG-DASH и другим потоковым форматам и ни в коем случае не являются исчерпывающим списком, а просто представляют собой способы повышения производительности потоковой передачи видео.
Исследование: что делает хороший поток?
Ответ: зависит от разных факторов. Клиенты демонстрируют различное поведение для разных типов потоков. Это интуитивно имеет смысл — если вы сидите и смотрите телешоу или фильм (более 15 минут), вы будете более терпеливыми, чем, если это будет видео с котом, едущем на Roomba.
Я рассмотрю 3 основных показателя качества видео, которые необходимо учитывать.
Задержка запуска: время от нажатия воспроизведения до тех пор, как начнётся поток.
Столбцы. В буфере устройства видео не остается, и воспроизведение останавливается.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Качество видео: сколько пикселей на экране в любой момент времени.
Эти показатели сильно зависят от того, насколько быстро видео можно транспортировать по сети. В исследовательской работе Akamai обнаружено, что после 2 секунд задержки запуска клиенты начинают отказываться со скоростью 5,8% за дополнительную секунду. Они также считают, что более длинные (и более многочисленные) торможения приводят к отказу. Наконец, видео высокого качества более приятно смотреть, поэтому важно избегать пиксельного и низкого качества видео.
Таким образом, мы хотим, чтобы каждый клиент брал быстрый старт, высокое качество видео и без торможений. Но мы также знаем, что у нас нет контроля над сетевыми условиями или устройством, используемым для просмотра нашего видеоконтента.
Скриншоты в этой статье взяты из AT & T Video Optimizer, бесплатного инструмента, который собирает сетевые захваты на вашем мобильном устройстве. Он оценивает сетевой трафик против
40 лучших способов повышения производительности сети вашего приложения. Помимо видео, он также просматривает изображения, текстовые файлы, соединения и другие функции производительности сети.
Как мы можем обеспечить быструю и регулярную доставку видео?
Когда дело доходит до потоковой передачи видео, лучший способ обеспечить быструю доставку видео высокого качества — иметь несколько разных битрейтов одного и того же видео, доступного для загрузки. В HLS видео-запрос начинается с доставки файла манифеста. Этот файл (часто с расширением .m3u8) перечисляет доступные видеокодировки для видео, которое будет доставлено. Каждая строка этого текстового файла содержит информацию о доступных потоках. На следующей диаграмме я извлек критическую информацию из видеопотока:
Первое, что вы могли заметить, — это столбец идентификатора, который немного не соответствует порядку. Существуют значения 1-7, но список начинается с 3. Каждый идентификатор отображает полосу пропускания, разрешение и аудио и видео кодеки, используемые для создания потока.
Запуск видео
Первым битрейтом, указанным в манифесте, является качество видео, которое первоначально запросит пользователь. Если этот список был последовательным, видеопоток начался бы с очень низкого качества 1 (128 × 320 @ 193 KBPS). С положительной стороны, 193 KBPS будет загружаться очень быстро в большинстве сетей.
Если бы порядок был отменен, начальное качество видео было бы чрезвычайно высоким (676 × 1024 3.6 MBPS). И хотя большое качество видео важно, это может привести к очень большой задержке запуска в сети с пропускной способностью менее 3,6 МБ.
Лучшая практика № 1: Чтобы сбалансировать начальное качество видео и задержку запуска, поместите поток средней полосы пропускания / качества в качестве первого выбора, чтобы сбалансировать быструю загрузку / запуск видео и начальное качество видео.
Проигрывание видео
После того, как плеер начнет загружать видео сегменты (2-8 сек фрагментов видео для воспроизведения), проигрыватель будет измерять скорость загрузки. Если он подсчитает, что сеть может обеспечить видео более высокого качества достаточно быстро, он попытается загрузить более качественную версию видео. И наоборот, если сеть работает медленнее, она снизится до более низкого качества видео, чтобы обеспечить постоянный поток. Каждый раз при изменении качества видео загружается манифест для нового потока, и видео может начать загрузку новой версии.
Video Optimizer может отслеживать количество сегментов в буфере локального устройства и отчитывается количество буферизованного видео в секундах и МБ во время сбора данных:
Если любое из этих чисел достигает 0, на устройстве больше нет видеозаписи, и видео будет остановлено.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Используя функцию «Затухание сети» в «Оптимизаторе видео», я изменил пропускную способность сети с 5 Мбайт до 1 Мбит / с в среднем потоке, и мы видим, что видеопроигрыватель начинает запрашивать более качественные видео сегменты, снижая с 1,5 МБПС и в конечном итоге устанавливая 500 КБ.
(Кроме того, можно подумать: если пропускная способность сети составляет 1 Мбайт, то почему 800 KBPS-видео плохо транслируется? Оказывается, есть два потока: один для видео и аудио — поток размером 128 Кбайт. Плеер определил, что 928 килобайт (+ накладные, + аналитика) были слишком приближены к 1024 KBPS и понизил видео. В этом случае можно было бы сделать аргумент за то, что более низкое качество звуковой дорожки, чтобы гарантировать, что более высокое разрешение видео воспроизводится. Кроме того, Лучшая практика: Качество звука (отдельный поток или встроенный в видеопоток) влияет на общую скорость передачи видео).
Очевидно, что несколько битрейтов помогут обеспечить хорошее видео. Примеры, показанные выше, имеют кодировки с изменениями битрейта, которые увеличиваются в довольно регулярные интервалы. Это означает, что небольшие изменения пропускной способности сети будут лишь незначительно влиять на качество видео на экране. Сравните это с рекомендуемым списком битрейтов, который я обнаружил в Интернете:
Представьте, что вы просматриваете видео, закодированное на мобильном устройстве с пропускной способностью 1,4 Мбайт. Единственный возможный вариант — ID 1, а это означает, что любой из пользователей 3G будет видеть только видео с самым низким качеством видео. Кроме того, разница в качестве видео между потоками 1 и 2, вероятно, значительна. Если видео перемещается между битрейтами 1 и 2 несколько раз, изменение качества видео, скорее всего, будет очевидным для конечного пользователя. Этот набор кодировок не очень подходит для потоковой передачи данных на мобильных устройствах.
Лучшая практика № 2: Доступны несколько битрейтов с регулярными интервалами между качествами. Это помогает обеспечить плавное прогрессирование качества видео и предотвратить значительные изменения качества видео.
Видеоплееры отличаются своей агрессивностью, чтобы улучшить качество видео. Некоторые видеопроигрыватели, почувствовав более высокую пропускную способность, начнут процесс замены сегмента — где видео сегменты, уже загруженные с более низким качеством, загружаются снова с более высоким качеством. Это приводит к тому, что один и тот же сегмент загружается более одного раза, но поскольку он улучшает отображаемое видео, я считаю его компромиссным, который обычно оценивается. Например, в таблице ниже сегменты 111-112 изначально загружаются с качеством 0. Плеер регистрирует всплеск пропускной способности и оценивает, что эти 2 сегмента можно заменить и повторно загружать по качеству 2. Однако плеер также довольно агрессивный, загружая 112 третий время в качестве 4. В целом для 4-секундного сегмента 112. потребляется
2 МБ данных. Это может считаться слишком агрессивным — поскольку он тратит большой объем данных.
Мы также видели примеры «замены обратного сегмента», когда плеер загружает более качественную версию после того, как уже имеет более качественную версию на устройстве. В этом случае сегменты 134-134 загружаются с качеством 4 (1,6 MBPS), а затем загружаются с качеством 1 (447 KBPS):
По крайней мере, если качество 4 воспроизводится конечному пользователю,
370 КБ будет потрачено впустую (сумма качественных 1 сегментов). Если воспроизводится качество 1,
1,3 МБ данных теряется, и пользователю предоставляется ухудшенное воспроизведение видео.
Лучшая практика № 3: если ваш видеопроигрыватель агрессивно продвигается к высокоскоростному видео, убедитесь, что замена сегмента только улучшает качество видео. Мониторинг использования данных замены сегмента для ваших пользователей (в Video Optimizer это сообщается как избыточность).
Для видео с несколькими высокими потоками битрейта агрессивный алгоритм битрейта может привести к увеличению количества остановок. Если локальный буфер составляет 30 МБ, но поток работает с 8 Мбайт / с, то локальная локация может быть только 2-3 секунды. Внезапное изменение пропускной способности, вероятно, приведет к остановке, прежде чем сеть и сервер смогут отреагировать.
Лучшая практика # 4: при потоковой передаче видео с высоким битрейтом убедитесь, что буфер устройства может поддерживать много секунд видео для учета внезапных изменений пропускной способности. Альтернатива: ограничить максимальные битрейты для устройств с ограниченной памятью.
Вывод:
Потоковое видео становится все более распространенным в Интернете и в мобильных приложениях. Однако потоковая передача видео сложна десятками потенциальных переменных, которые могут повлиять на качество воспроизведения для ваших клиентов. В этом посте мы выделили лишь некоторые из функций потоковой передачи HLS, которые могут повлиять на время запуска видео, предотвратить блокировки и обеспечить передачу потокового видео высочайшего качества заказчику, одновременно сводя к минимуму потраченные впустую данные.
Автор: Doug Sillars
Редакция: Команда webformyself.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Технология потокового видео и сферы ее применения
Потоковое вещание — это мультимедийный контент, который пользователи непрерывно получают от провайдера услуг. Термин в том числе применим как к таким источникам передачи информации, как радио и телевидение.
Передача потокового видео использует технологии сжатия и буферизации данных, благодаря чему трансляция ведется в режиме реального времени при отправке потока как последовательности сжатых пакетов. Особенность такого метода в том, что пользователю не нужно дожидаться полной загрузки видео файла для того, чтобы начать просмотр.
Способы передачи потокового видео
Для просмотра потокового видео на устройстве пользователя должен быть установлен специальный видеоплеер, поддерживающий эту функцию. Кстати, поставляемый в комплекте стандартного набора ПО Windows Media Player относится к таковым. Среди прочих популярных программ стоит отметить Quicktime Player и RealOne Player.
Однако отсутствие программы на ПК не ограничивает пользователя: в интернете есть множество ресурсов, поддерживающих потоковое онлайн вещание. Самыми известными из них являются Twitch и Youtube. В последнее время технологию подхватили популярные социальные сети – например, Facebook и Вконтакте.
Однако отсутствие программы на ПК не ограничивает пользователя: в интернете есть множество ресурсов, поддерживающих потоковое онлайн вещание. Самыми известными из них являются Twitch и Youtube. В последнее время Facebook и Вконтакте.
Для трансляции потокового мультимедиа обычно используется один из двух способов:
- Последовательный – видеофайл воспроизводится с жесткого диска компьютера пользователя или сервера провайдера услуг. Как правило, при передаче таким способом качество изображения и звука выше. К недостаткам стоит отнести то, что невозможно переключить ролик с одного момента на другой, не дождавшись его буферизации. То есть, интересующий фрагмент должен быть загружен, чтобы пользователь смог его просмотреть. Для трансляции подходит обычный веб-сервер.
- В реальном времени – требует наличия потокового сервера. Этот метод больше подходит для передачи видеофайлов большой длительности. Пользователь может выбрать место, с которого он хочет начать просмотр. Также этот вид потокового мультимедиа вещания используется для трансляции с веб-камеры или захвата экрана.
Используемые форматы и протоколы
Согласно общепринятым нормам, для трансляции видео сегодня используется несколько стандартов сжатия мультимедиа.
К ним относятся:
- MPEG. Первая версия разработана группой специалистов Moving Picture Experts Group в 1988 году. Сегодня актуальны стандарт MPEG-2, используемый для кодирования видео и аудио на DVD, передачи спутникового и кабельного ТВ-сигнала. MPEG-4, кроме вышеперечисленного, регламентирует особенности сжатия 3D-объекктов, видеотелефонии и широкоформатного вещания;
- RealVideo. Видеокодек, разработанный компанией RealNetworks в 1997 году. Формат подходит для трансляции сигнала в сетях TCP/IP (Интернет), однако для локальной сети это не лучший вариант;
- QuickTime. Технология, созданная компанией Apple в 1991 году. Этот мультимедийный фреймворк задействован во всех устройствах производителя, выполняющих вещание или принимающих потоковое видео.
Передача данных в сфере видеотрансляции регламентируется такими протоколами:
- UDP – отправляет поток метаинформации отдельными небольшими пакетами. К недостаткам можно отнести то, что получение пакета пользователем не гарантируется;
- RTSP – аналогичный протокол, «заточенный» на передачу аудио и видео;
- TCP – гарантирует корректность полученной информации. Требует буферизации данных на стороне клиента;
- Unicast – отправка отдельной копии файла каждому пользователю. Неэффективен при большом количестве пользователей, так как требует наличия мощных серверов;
- Multicast – передача по сети одной и той же информации группе пользователей. Требует корректной настройки маршрутизации. К недостаткам относится невозможность реализовать функцию «видео оп запросу»;
- P2P – используется для передачи между пользователями предварительно записанного мультимедийного файла. Позволяет снизить нагрузку на сервер.
Сферы применения потокового видео
Потоковая передача видео в реальном времени сегодня прочно закрепилась в жизни большинства пользователей интернета.
Технология широко используется для решения многих задач.
Просмотр видео в интернете
Как известно, в Глобальной Паутине найдется все – главное уметь искать. Пользователи могут посмотреть любой фильм, мультфильм или видеоклип в удобное время. Интересный факт: пальму первенства вот уже который год стабильно удерживают фильмы категории «18+»;
Видеосвязь
Да, популярные мессенджеры, поддерживающие эту функцию – например, Skype, используют те же технологии и протоколы. Кроме того, видеосвязь сегодня способно обеспечить большинство популярный социальных сетей, а также многие специализированные ресурсы.
Стоит отметить, что видеосвязь может не только удовлетворить потребность в общении и развлечении (как, например, сервис «Чат Рулетка» со случайным подбором собеседника), но находит и практическое применение во время организации обучающих вебинаров или онлайн-конференций.
Просмотр трансляции с веб-камер
Не покидая собственной квартиры, любой пользователь может посмотреть на известные достопримечательности, прочие интересные места или на нашу планету с борта МКС. Однако развлечением использование веб-камер не ограничивается: в последнее время все большую актуальность обретает наблюдение за избирательными участками во время выборов, что помогает обнаружить нарушения.
Широко применяется видеонаблюдение службами безопасности, однако в этом случае трансляция ведется не через интернет, а по локальной сети.
Стриминг
Благодаря доступности технологий при наличии соответствующего оборудования любому пользователю интернета доступно создание собственной трансляции. Более того, для тысяч энтузиастов это стало основным источником дохода: зритель при желании может поддержать стримера, пожертвовав ему определенную сумму.
В этой сфере лидерство стабильно остается за киберспортсменами, ведущими трансляцию игрового процесса.
Стоит отметить, что главная сложность при этом – удержание внимания аудитории: создать не просто банальное прохождение игры, а настоящее шоу, которое будет интересно смотреть, гораздо сложнее, чем настроить оборудование и передавать потоковое мультимедиа приемлемого качества.
Как и любая технология, эта не стоит на месте и стремительно развивается. Возможно, через несколько лет потоковая передача видео откроет перед пользователями возможности, которые казались фантастикой еще вчера.
Программы для потокового видео
Термином «потоковое видео» (streaming video) сегодня обозначают технологии сжатия и буферизации данных, которые позволяют передавать видео в реальном времени через Интернет. Главная особенность потокового видео заключается в том, что при его передаче пользователь не должен ждать полной загрузки файла для того, чтобы его просмотреть. Streaming video пересылается непрерывным потоком в виде последовательности сжатых пакетов и проигрывается по мере того, как передается на компьютер получателя.
Для просмотра потокового видео пользователю обычно нужен специальный проигрыватель, который декодирует данные и выводит расшифрованное изображение на экран. Этот плеер может интегрироваться в оболочку браузера или же работать как самостоятельная программа.
Способы передачи
Существуют два способа передачи потокового видео — последовательный (progressive streaming) и в реальном времени (Real-time streaming). При передаче последовательным способом качество изображения всегда лучше, поскольку видео воспроизводится с вашего жесткого диска. Для такого способа передачи видео можно использовать стандартный веб-сервер.
Однако, недостатком последовательного способа передачи является то, что при воспроизведении файла перескакивать от одного эпизода к другому невозможно. Таким образом, чтобы просмотреть какую-нибудь часть клипа, вам необходимо будет загрузить его до нужного момента. Поэтому последовательная передача видео через интернет, в основном, используется для коротких клипов.
Для осуществления передачи видео в реальном времени требуется специальный потоковый сервер (streaming server). Видеофайл хранится на этом сервере, и для просмотра загружать его на жесткий диск не нужно. Пользователь может начать просмотр видео с любого момента, не дожидаясь, пока файл закачается. Передачу видео в реальном времени удобно использовать для трансляции файлов большой длины.
Потоковые серверы дают возможность управлять медиа-передачей, однако, они более сложны в настройке и администрировании, чем обычные HTTP-серверы. Кроме специальных серверов, используются и особые сетевые протоколы, например, RTSP (Real-Time Streaming Protocol). Этот протокол используется Windows Media по умолчанию, но он также поддерживается Real Video.
RTSP — это протокол, с возможностью контролируемой передачи видеопотока в интернете. Протокол обеспечивает пересылку информации в виде пакетов между сервером и клиентом. При этом получатель может одновременно воспроизводить первый пакет данных, декодировать второй и получать третий.
Протокол RTP (Real-time transport protocol) определяет и компенсирует потерянные пакеты, обеспечивает безопасность передачи контента и распознавание информации. Вместе с RTP работает протокол RTCP (Real-Time Control Protocol). Он отвечает за проверку идентичности отправленных и полученных пакетов, идентифицирует отправителя и контролирует загруженность сети. Форматы
Существует несколько основных форматов потокового видео в интернете. Это — Real Media, Windows Media и Quicktime. До недавнего времени наряду с ними широко использовался MPEG, однако, в последнее время он сильно сдал позиции.
Формат MPEG был разработан компанией Moving Picture Experts и до недавнего времени считался стандартом потокового вещания. Существует несколько версий MPEG.
Формат MPEG-1 был создан в далеком 1988-м году и обеспечивал качество VHS при записи видео на CD-ROM. Несмотря на то, что MPEG-1 разрабатывался как формат хранения, а не передачи файлов, он обеспечивает отличное качество потокового видео на высоких битрейтах. Оптимальный битрейт для этого формата — 1.5мб/с для разрешения 352×240 при частоте 30 кадров в секунду. Однако, файлы MPEG-1 обычно слишком велики для передачи по интернету.
Формат MPEG-2 был разработан для вещания цифрового телевидения и со временем также стал использоваться при записи DVD. Его битрейт еще выше, чем у MPEG-1 (между 4 и 9 мб/c), что позволяет добиться изображения высокой четкости. Его использование как потоковой технологии не очень распространено, так его скорость передачи информации очень велика. Для просмотра файла в формате MPEG-2 в режиме онлайн нужно иметь скорость передачи данных около 400 кб/c и выше.
Формат MPEG-4 был специально разработан для передачи данных по интернету и мобильной связи. Его оптимальный битрейт — между 385 и 768 кб/c. MPEG-4 может использоваться для передачи аудио и видео потоков, обеспечивая при этом высокое качество кодирования при большой степени компрессии. Однако, если на небольшой скорости передачи данных он обеспечивает хорошее качество, для широкополосной передачи он не приспособлен.
RealVideo
RealVideo — это формат, который был разработан для потоковой трансляции. Для передачи данных на DVD или CD-ROM он практически не используется из-за высоких аппаратных требований. Особенностью файлов RealVideo является невозможность редактирования или повторной компрессии. Этот формат использует методы компрессии, которые уменьшают количество кадров в видео, и удаляет ненужную информацию из кадров. Качество при этом будет зависеть от количества деталей в кадрах и от динамики событий. Благодаря большому уровню компрессии этот формат подходит для пользователей с низкой скоростью соединения.
QuickTime
Этот формат, разработанный Apple, широко используется как на компьютерах Mac, так и в среде Windows. QuickTime имеет много общего с форматом Real Media. Степень сжатия файла QuickTime — 1 мб для 3.75 секунд видео, поэтому размер изображения может быть увеличен и уменьшен без потери качества. Это означает, что видеофайл с разрешением 320×240 может быть просмотрен в полноэкранном режиме с таким же качеством. Формат QuickTime лучше всего подходит для последовательной передачи потокового видео, так как в процессе загрузки файла запускается плеер, который воспроизводит полученную информацию.
Windows Media
Windows Media — это относительно молодой формат в области потокового вещания, поддерживаемый Microsoft. Последняя разработка компании — Windows Media Video 9. Этот формат превосходит по производительности своего предшественника WMV8 на 15-30 процентов. Сравнение же с другими форматами потокового вещания тоже говорит только в его пользу. Так, например, видео в формате MPEG-4, транслируемое с битрейтом 6 мб/c, будет выглядеть аналогично сделанному при помощи WMV9 при 2 мб/c. А качество видео в формате WMV9, передаваемого на скорости 150 кб/с, ничуть не хуже, чем аналогичного в формате MPEG-4 на 300 кб/c.
Какой формат выбрать
На сегодняшний день еще можно говорить о том, что значительная часть пользователей выходит в интернет через dial-up, а значит, на очень низких скоростях. Лишь немногие могут себе позволить скорость более 2 мб/c, однако в последние пару лет значительно увеличилось количество пользователей, которые выходят в интернет через выделенную линию со скоростями от 128 кб/с. На таких скоростях уже возможна передача данных с качеством на уровне VHS.
Скорость вашего интернет-соединения имеет значение при выборе формата. Windows Media 7,8, Windows MPEG-4, Real Media, Quicktime лучше всего подходят для диапазона скорости от 36 кб/c до 500 кб/c. Windows media 9, MPEG4 (ISO и DivX) можно выбирать, если ваша скорость от 500 кб/c до 3 мб/c. Для высоких скоростей (от 1 мб/c до 3 мб/c) лучше всего подойдет MPEG-1, а для очень высоких (от 3 мб/c до 15 мб/c) — MPEG2. Хороший кодировщик MPEG-1 даст качество VHS на скорости 1.5 мб/c, качество SVHS — на 2.5 мб/c. MPEG-2 обеспечит качество DVD (4:2:0) на 5 мб/c, видео качество 4:2:2 — на 10 — 15 мб/c. Таким образом, MPEG 1, 2 позволяют достичь очень высокого качества передачи видео, правда, и интернет-доступ для получения этого качества должен быть соответствующий.
Проблемы передачи
При трансляции потокового видео через интернет могут возникать проблемы, ухудшающие качество передачи. Среди них можно выделить несколько основных.
Перебои в связи
Потоковое вещание требует стабильного коннекта. Поскольку интернет не может обеспечить прямую передачу данных между отправителем и получателем, поток может обрываться или приостанавливаться на какое-то время. Решением этой проблемы является буферизация данных, однако, эффективность такого способа при передаче видео очень низка.
Маломощный компьютер
Даже если просмотр потокового контента осуществляется на мощном компьютере, но при этом открыто большое количество приложений, скорость загрузки видео будет невелика. Поэтому желательно закрыть все окна и программы, кроме браузера и проигрывателя.
Помехи на телефонной линии
Эта проблема актуальна только для пользователей, которые выходят в интернет через dial-up. Всевозможные потрескивания, щелчки и прочие шумы снижают качество передачи. Решением этой проблемы может быть использование более качественного доступа в интернет посредством cable или DSL.
Как сохранить видео на диск
Существует несколько способов сохранения потокового видео на диск. Самый простой — определение ссылки на файл и последующая его загрузка любым менеджером закачки.
Обычно ссылка скрыта в метафайле (RAM, ASX, SMIL). Если кликнуть правой кнопкой мыши по ссылке на видеофайл в окне браузера и выбрать команду «Save target as . «, метафайл будет сохранен на жесткий диск. После этого его можно открыть в любом текстовом редакторе (например, в Блокноте) и скопировать ссылку на файл. Если метафайл защищен паролем или скрыт при помощи JavaScript, Flash и т.д., можно попытаться открыть файл в плеере и просмотреть его свойства.
Например, чтобы увидеть ссылку на видео файл в RealOne Player, нужно выполнить команду View > Clip > Clip Info или View > Clip > Clip Source. В качестве альтернативы этому способу можно использовать программы, позволяющие отследить источник файла, например URLSnooper.
Если ссылку определить не удалось, можно попробовать использовать для загрузки специальные программы. Их можно условно разделить на два типа: менеджеры закачки, поддерживающие протоколы, которые используются при передаче потокового видео, и программы для захвата видео потока. Первые позволяют скачать файл с сервера на жесткий диск, а вторые — перехватить его в процессе просмотра и записать отдельным файлом.
HiDownload
Основное преимущество этого менеджера перед аналогичными — возможность записи потоков в форматах Windows Media и RealVideo. HiDownload поддерживает все стандартные протоколы, которые используются для передачи потокового видео. При помощи программы можно также загружать потоковое видео, защищенное паролем.
Net Transport
Бесплатная программа, работающая с большинством потоковых протоколов. Поддерживает протоколы HTTP, HTTPS, FTP, MMS (Microsoft Media Services), и RTSP (Real-Time Streaming Protocol). Как и большинство современных download-менеджеров, Net Transport может разбивать скачиваемый файл на отдельные части, что увеличивает скорость передачи данных. Net Transport позволяет загружать видео в форматах Windows Media и RealVideo, защищенное паролем.
Offline Explorer
Оффлайн-браузер, позволяющий скачивать файлы по протоколам HTTP, FTP, HTTPS, MMS и RTSP. Программу особенно удобно использовать для загрузки больших файлов. Программа доступна в трех версиях, и только две из них (Pro и Enterprise) поддерживают потоковые протоколы.
WM Recorder
WM Recorder записывает потоковое видео в формате Windows Media в процессе просмотра через Windows Media Player. Потоковые данные перехватываются и записываются в файл ASF, который впоследствии может быть воспроизведен любым проигрывателем, поддерживающим этот формат. WM Recorder поддерживает докачку файлов при последовательной передаче. При передаче в реальном времени докачка невозможна. Недостатком WM Recorder можно считать невозможность перехвата файлов, защищенных DRM (Digital Rights Management).
При попытке сохранения видеопотока можно столкнуться с проблемой недостаточной пропускной способности линии. Видео высокого качества требует и большой скорости соединения. Однако, в некоторых случаях возможно сохранить видео высокого качества и при низкоскоростном коннекте. Если используется передача в реальном времени, видео поток не может быть записан на скорости, которая превышает скорость вашего соединения. Если же передача ведется последовательным способом, это возможно. Для этого нужно изменить настройки пропускной способности канала. Некоторые утилиты, например, упомянутые выше HiDownload и WM Recorder позволяют сделать это автоматически.