Содержание
Дата публикации: 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
Источник: https://calendar.perfplanet.com/
Редакция: Команда webformyself.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Узнать подробнее
Верстка-Мастер. От теории до верстки популярных шаблонов
Изучите современную верстку сайтов с нуля
Подробнее Небольшие правки, которые могут сильно повлиять на доступность вашего сайтаTypeScript — Вложенный оператор if —>
Метки:сайтостроение
Похожие статьи:
Комментарии Вконтакте:
Комментарии Facebook:
https://webformyself.com/potokovoe-video-chto-eto-takoe/—>
Доброго дня!
Если у вас есть какая-нибудь камера или ТВ-тюнер, и вы хотите сделать свою трансляцию в локальной сети (или в интернет) — то эта заметка для вас. ?
Впрочем, никто не мешает с таким же успехом вещать и просто какие-нибудь фильмы/музыку, например, с ПК на ТВ или мобильные гаджеты…
Единственное, учитывайте, что ваш компьютер (который транслирует) должен быть достаточно производительным (чтобы избежать лагов и подвисаний). К тому же, нужно иметь хорошее и стабильное подключение к сети (не ниже 10 Мбит/с). В помощь: тест скорости интернета.
В этой заметке я по шагам рассмотрю все необходимые действия как для вещания по локальной сети, так и по интернету. Разумеется, в вашем случае могут быть небольшие отличия (например, при выборе устройства захвата…).
Ладно, ближе к теме…
*
Трансляция видео в сеть: пример настройки вещания
Запуск трансляции
ШАГ 1
И так, для нашей задачи понадобится универсальный кросс-платформенный плеер VLC. Программа позволяет не только смотреть потоковое видео в сети, но и создавать трансляцию самостоятельно…
VLC
Сайт разработчика: https://www.videolan.org/vlc/index.ru.html
Основные преимущества проигрывателя:
- «всеядность»: воспроизводит файлы, внешние диски, сетевые трансляции и т.д.;
- поддерживает все популярные форматы файлов: 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-адрес трансляции»).
Поток / VLC
ШАГ 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
Разумеется, подобную информацию также можно узнать в настройках роутера. Скрин ниже в качестве примера.
Глобальный IP-адрес
ШАГ 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
Если вышеприведенные настройки были корректно заданы — то через несколько секунд начнется показ трансляции (см. скрин ниже). Задача выполнена?!
Видео пошло
*
Дополнения приветствуются…
Удачной работы!
?
RSS (как читать Rss)Другие записи:
- Ноутбук и ПК подключены к Wi-Fi роутеру: как передавать между ними файлы, сделать общедоступную …
- Как изменить расширение файла и его атрибуты…
- Что делать если не работает клавиатура на ноутбуке
- Не могу войти в аккаунт Steam, что можно сделать?
- Как защитить от редактирования ячейки в Excel — запрет ввода ошибочных данных
- Глянцевая или матовая поверхность лучше? Советы по выбору монитора
- Как узнать расстояние между городами: сколько километров от одного города до другого, сколько часов …
- Как ускорить видеокарту AMD (Radeon) — повышение FPS в играх
Локальные сети – далеко не редкость. Они есть в офисах, на предприятиях и даже в частных квартирах и домах. Жизнь, опутанная локальной сетью, на порядок удобнее: быстрее происходит обмен данными. Не каждый знает, что в рамках такой сети можно открыть самое настоящее видео вещание. Наш материал постарается объять необъятное. Мы узнаем: как настроить вещание в локальной сети, а также создадим веб страницу, которая будет доступна всем компьютерам, подключенным в сеть. Открывая ее в браузере, пользователь сможет насладиться просмотром транслируемого видео. Одним из главных инструментов в нашей работе станет VLC Media Player, он позволяет не только воспроизводить аудио и видео файлы, но организовывать потоковое вещание в сети.
Предлагаю более внятно обозначить условия нашей задачи. В нашей сети есть два компьютера. Первый работает под управлением Windows 7 , второй под управлением Ubuntu Linux.
Компьютерам присвоены следующие IP адреса:
192.168.1.2 – компьютер под управлением Windows 7
192.168.1.3 – Ubuntu Linux
Маска подсети: 255.255.255.0
Так как моя сеть организована при помощи роутера, IP адрес – 192.168.1.1 занят этим полезным аппаратом.
Если вы еще не настроили локальную сеть дома, то рекомендую прочитать статью: «Как подключить два компьютера в локальную сеть?»
Теперь непосредственно о том, что нужно сделать:
-
Настроить потоковое вещание фильма с компьютера под управлением Windows 7 на компьютер с Ubuntu Linux. В нашем случае это будет культовый мультфильм советских времен «Корабль-Призрак»
-
Создать на компьютере под управлением Windows 7 сайт, который будет доступен со второго компьютера.
-
На сайте мы разместим страничку, которая будет транслировать наше потоковое видео. Соответственно, открывая этот сайт с компьютера под управлением Ubuntu Linux, без каких либо ухищрений можно будет насладиться просмотром любимого «Корабля-Призрака».
Версия этого замечательно плеера существует, как под Windows, так и под Ubuntu Linux. Это не случайно, ибо построен плеер на основе открытого исходного кода.
В Ubuntu Linux для установки плеера достаточно войти в «Центр приложений», в поиске ввести VLC и нажать кнопку «Установить»
Для того, чтобы скачать и установить плеер под операционную систему Windows 7, необходимо перейти по ссылке:
http://www.videolan.org/vlc/
Это страница разработчиков плеера. Здесь нас интересует одна единственная кнопка «Download VLC”.
Нажатие ее перенесет нас на страничку скачивания. Сохраняем дистрибутив с программой к себе на компьютер и запускаем его установку.
Итак, на всех компьютерах установлен VLC Media Player . Переходим на компьютер с Windows 7, открываем плеер и заходим в главное меню «Медиа» — «Потоковое вещание»
Первое, что мы должны сделать — это добавить наш мультфильм в список воспроизведения. Для этого нажимаем кнопку «Добавить» и с помощью проводника Windows выбираем этот фильм на жестком диске нашего компьютера.
После того, как фильм добавлен в плейлист, в нижней части окна нажимаем кнопку «Поток» и переходим на следующую страницу
В следующем окне от нас не требуется практически ничего, кроме как нажать кнопку «Следующий»
Откроется очень важное окошко. Здесь нам не отделаться простым нажатием на одну кнопку и придется произвести определенные магические действия, чтобы потоковое видео в недалеком будущем действительно транслировалось по сети.
Первое, на что нужно обратить внимание – это выпадающий список в верхней части. Здесь происходит выбор протоколов, по которым будет происходить вещание. На самом деле про каждый из них можно написать отдельную статью. И, вероятно, в будущем мы это сделаем.
Сегодня же мы просто выберем протокол HTTP и нажмем кнопку «Добавить»
Откроются текстовые поля «Порт» и «Путь». Трогать их не нужно. Оставим все как есть и обратим внимание на выпадающий список «Профиль», что располагается ниже. Здесь мы выберем вариант :
Video – MPEG-2 + MPGA (TS)
После того, как выполнено все вышенаписанное, мы опять нажимаем кнопку «Следующий» и переходим к следующему окну. Здесь нас ожидает своего рода резюме по произведенным ранее действиям. В общем-то, в данном окне наша задача – просто нажать на кнопку «Поток»
Если вы все сделали правильно, то в окне плеера мы увидим скромную надпись «Потоковая передача». Это означает, что трансляция нашего видео торжественно открыта, и можно приступать к просмотру.
Для просмотра мы переместимся на компьютер под управлением Ubuntu Linux, где уже установлен VLC Media Player. Открываем его и заходим в главное меню «Медиа» — «Открыть URL»
Откроется окошко, где в единственное текстовое поле необходимо ввести адрес нашего потока с вещанием.
Вводим: http://192.168.1.2:8080
После чего нажимаем кнопку «Воспроизвести».
Можно смело насладиться просмотром мультфильма «Корабль – призрак»
Используемые источники:
- https://webformyself.com/potokovoe-video-chto-eto-takoe/
- https://ocomp.info/kak-translirovat-video.html
- http://www.imsprice.ru/internet-lan/90-kompyuternye-seti/222-nastroika-veschaniya-potokovogo-video-v-lokalnoi-seti-s-pomoschy