1

Тема: Методы передачи потока, через HMS или что такое транскодирование

Передача потока, через DLNA с использование программы Home Media Server (HMS)

Последняя и самая большая комплексная статья в этот году из запланированных, по разъяснению теории передачи потока от сервера (HMS/ПК) к клиенту (устройство), ответы на вопросы: какой вид передачи потока существует, что такое транскодирование, так ли оно сильно нагружает ПК, почему поток идет не плавно, влияет ли оно на качество и для чего вообще внедрено в HMS.

На эти и еще возможно смежные вопросы я и постараюсь сегодня ответить в этой статье, дабы простым и доступным языком без особых технических изысканий вам стало более или менее понятно, как это работает и что с этим делать.

Статья будет интересна не только тем кто в первые знакомиться с HMS, но и бывалым пользователям.

Немного теории, совсем чуть-чуть

DLNA (Digital Living Network Alliance) - набор инструкций и стандартов, целью которого является обеспечение гарантии, что все устройства в вашем доме способны легко взаимодействовать между собой, создавая надежную потоковую сеть.

Транспортный поток - унифицированный протокол для передачи аудио и видеоданных, для возможности передачи между устройствами.

Подробнее про транспортный поток, можно прочитать в теме Мануал по настройки устройства.

Помимо транспортного потока, в передачу включаются также технические данные, такие как заголовки, маркеры и т.д., если вы хотите узнать подробнее, то в сети можно найти всю эту информацию.

Передача потока, через DLNA/UPnP сервер HMS

Теперь перейдем непосредственно к самим видам передачи потока, через HMS (хотя в большей степени эта информация будет справедлива и для остальных медиасерверов).

В первую очередь стоит разделить передачу потока от HMS к устройству, на две большие группы, это "прямая передача" и "передача с использование транскодирования", теперь поговорим более подробнее о каждом виде передачи и разделим их на подгруппы, так как и здесь существует ряд способов передачи контента.

Прямая передача потока

Прямая передача потока - передача исходного потока без изменений.

Включает в себя способы передачи, как для локальных потоков (файлов/торрент файлов), так и для онлайн потоков (подкасты, подкасты торрент телевидения, торрент подкасты, IPTV подкасты (исключая плейлисты IPTV, добавленные через папку "Интернет телевидение")).

Отдельно скажу о локальных торрент потоках (не подкасты торрент телевидения, торрент подкасты), запускаются через встроенный торрент клиент в самом HMS (основан на библиотеке libtorrent), для устройства такой поток воспринимается, как обычный локальный поток и обрабатывается соответственно.

Теперь подробнее про виды прямой передачи:

- Прямая локальная передача (файлов/торрент файлов) осуществляется, через настроенную таблицу поддерживаемых файлов в настройках устройства и настроенный профиль устройства.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2869&download=0

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2870&download=0

Примечание №1

Также существует, методика автоматического наполнения таблицы, путем активирования функций по автоматическому добавлению данных в устройство.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2870&download=0

Активируем и запускаем различные контейнеры/форматы/сжатия, программа сама внесет их в таблицу, работает не на всем оборудование.

Примечание №2

Полное отключение транскодирования, для передачи потока в настройках устройства.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2869&download=0

Данный метод работает не на всем оборудование, не дает 100% гарантии по запуску контента на устройстве.

Если все вышеизложенные требования соблюдены и вы программе рассказали, что ваше устройство умеет, то при запуске локального потока, в панели транскодирования будет пусто

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2865&download=0

Для локальных торрент потоков, методика запуска исходного потока, немного отличается (хотя требования по таблице и настройке устройства должны быть соблюдены)

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2865&download=0

Необходимо заметить, что путь запуска из программы и из устройства будет идентичным.
Важно, не пугайтесь оригинальный поток без транскодирования запускается из папки транскодирование, это нормально! (сама папка исключительно служебная).

Подробнее про настройку устройства, можно прочитать в теме Мануал по настройки устройства.

- Прямая передача онлайн потоков (подкасты, подкасты торрент телевидения, торрент подкасты, IPTV подкасты (исключая плейлисты IPTV, добавленные через папку "Интернет телевидение")).

Здесь также различают несколько видов передачи потока.

1. Оригинальная ссылка - здесь все очень просто, HMS в запросе ищет ссылку на искомый контент вида "название контента.контейнер" (может быть различных форматов), после напрямую отдаёт ее устройству, дальше устройство уже самостоятельно получает поток.
2. Оригинальная ссылка (перенаправление) - все также как и в предыдущем методе, за исключение того, что не устройство тянет поток, а сам HMS и передает его устройству.
3. Оригинальный поток (http:// rtmp://) - здесь HMS вообще ничего не ищет и не передает, просто отдаёт ссылку на страницу, где располагается ссылка на поток и все, дальше само устройство уже находит, получает и тянет поток, при этом методе после отправки ссылки на страницу, HMS может быть даже выключен.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2864&download=0

Как вы заметили, я еще дополнительно отметил пункт MIME тип, так вот, если устройству требуются пояснение по контейнеру транспортного потока, то их необходимо указывать в настройках подкаста, чтобы устройство разобралось, что MKV это MKV, а не TS или AVI.

Кратко о MIME - Техническая информация (идентификатор) в тексте с указанием типа данных, передаваемых посредством DLNA (в нашем случае), можно провести аналогию с id тегами в аудио файлах.

Подробнее про MIME типы, можно прочитать в теме Мануал по настройки устройства.

Все описанные методики прямой передачи, дают неоспоримые преимущества, а именно использование на лету вшитых данных в контейнер (аудио дорожек, субтитров и т.д.), использование перемотки, переходов по главам и т.д.

И последнее, что хотелось пояснить про прямую передачу онлайн потока, как бы не был хорош этот способ, есть у него огромный минус, а именно 90% устройств не умеют его использовать в той или иной форме, это касается и новых и старых устройств.

С прямой передачей потока на этом мы закончили, теперь перейдем непосредственно к передачи потока с использованием транскодирования.

Транскодирование и все, что с ним связано

Такое ли оно страшное как его описывают на просторах сети, давайте для начала разберемся, а что это такое.

Транскодирование - если совсем по простому, то это комплекс преобразований из одного контейнера/формата в другой с задействованием кодера при необходимости, для конвертации видео и аудио дорожек из одного сжатия в другое.

К примеру есть поток, который содержит в себе контейнер MKV/формат mkv/сжатие H.264, так вот транскодирование позволяет нам на лету преобразовать его, например в TS/ts/MPEG4.

То, чем обычно пугают рядовых пользователей говоря про транскодирование, нагрузка на ПК и ухудшение качества, можно назвать мифами, которые сегодня мы развеем.

Но если мы говорим конкретно про HMS, то транскодирование это вообще целый комплекс по передаче потока от сервера к устройству, не всегда несущий за собой нагрузку или ухудшение качества, иногда направленный исключительно на простую передачу потока.

Давайте же для начала определим, что умеет транскод в HMS (касается и видео и аудио содержимого): переупаковывать из контейнера в контейнер, преобразовывать форматы, конвертировать сжатия, изменять выходные показатели, добавлять субтитры или любую другую текстовую информацию, менять разрешения и много чего еще, то есть здесь мы получаем полноценный конвертор в медиасервере.

Очень важный аспект, что при использование всех нижеследующих методик, нужно обязательно убирать MIME тип в настройках подкастов, если он там проставлен, так как пояснения, здесь получает устройство из настроек профиля устройства и профиля транскодирования.

Теперь давайте разберемся, какие методы передачи потока существуют, через транскод и как их разумнее использовать.

Разделения на типы содержимого контента при транскодирование не имеют значения, то есть при этом способе передачи, нет разницы какой поток локальный или онлайн.

Перепаковка, метод копирования - легкая передача потока, через транскод, с использованием одного из кодеров встроенных в программу, которые меняют контейнер с одного на другой (к примеру с MKV на TS).

При этом методе полностью отсутствует нагрузка на ПК и HMS никак не влияет на качество исходного материала, так как просто переносит его в новый контейнер, путем копирования.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2866&download=0

Для возможности передачи таким методом, так же очень важны настройки устройства: включая таблицу поддерживаемых форматов/сжатие видео и аудио/разрешение/приоритетные форматы/MIME тип.

Как настроить устройство, под эту методику, можно прочитать в теме Мануал по настройки устройства.

Для чего нужен такой метод, который очень похож на прямую передачу, а все очень просто, нужен он для "всеядных" или почти "всеядных" устройств, которые не понимают или не умеют работать с ссылками на прямой поток, а взаимодействуют исключительно с привычными контейнерами мультимедийного содержания.

Перейдем к второму методу передачи потока, через транскодирование.

Частичный транскод - этот метод, так же попадает в категорию легкого транскода, здесь все та же перепаковка, но копирование происходит, только видео дорожки, тогда как аудио дорожка изменяется.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2868&download=0

Важно понимать и в этом случае HMS не изменяет исходную видео дорожку, ухудшение по качеству не происходит, так же как и особой нагрузки на ПК.

Методика отлично подходит для устройств, в которые производитель не добавил лицензированных аудио обработчиков (часто не лицензируют AC3 Dolby Digital или DTS).

Так же не стоит забывать, что здесь важны правильные настройки устройства, с установленными приоритетами в какой формат и в какое качество перегонять аудио дорожку, причем HMS умеет на лету сохранять: количество каналов, качество и дополнительные данные вшитые в аудио дорожку.

Как настроить устройство, под эту методику, можно прочитать в теме Мануал по настройки устройства.

И последний метод, самый требовательный к мощности ваше ПК, на который установлен медиасервер.

Полноценное транскодирование - метод полной конвертации видео (аудио) дорожек, с изменением контейнера/формата/сжатия/качества/пропорций/разрешения и других параметров, с существенной нагрузкой на оборудование.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2867&download=0

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

Ухудшается ли качество? выходного потока в сравнение с исходным, частично, здесь все зависит от вашего ЦП, если он сильно проседает по скорости обработки потока, то да!!!
Кодер будет снижать качество плавно, минимизируя нагрузка и предотвращая потерю кадров (скажем по правде, что не всегда с этим справляется надлежащим образом, вот почему многие сталкиваются с эффектом потери кадров/подергивания изображения), если ЦП справляется с нагрузкой, то потери качества выходного материала или минимальны (незаметны глазу) или их нет.

Все настройки для процесса конвертации берутся из настроек устройства.

Как настроить устройство, под эту методику, можно прочитать в теме Мануал по настройки устройства.

Существует способ немного, а иногда и существенно сократить нагрузку на ЦП, а именно использовать аппаратное ускорение с задействованием видеокарты, как дискретной так и встроенной.

Небольшой ликбез, как это реализовать

+ открыть спойлер

Что такое профили транскодирования - специальные скрипты, в которых строго заданны параметры и функции для кодеров.

Подробнее про профили транскодирования, можно прочитать и скачать в теме Описание профилей транскодирования.

Для использования встроенной карты или карты без поддержки CUDA, используем профили транскодирования для активации функции аппаратного ускорения в HMS, посредством технологии Direct-X Video Acceleration (DXVA2) или Intel QSV (Quick Sync Video).

Из плюсов: работа со всеми сжатиями и видеокартами, из минусов: эффективность самой работы оставляет желать лучшего. Разгрузка ЦП в среднем от 5-30%.

Список профилей:

+ открыть спойлер

- Фильмы (основной) - FFMPEG + hwaccel
- Фильмы (основной) + HW Acceleration
- Фильмы (основной) с корректным AR и HWACCEL

Для использования карт с поддержкой CUDA и входящих в список соответствия, задействовать профили транскодирования не нужно, так как активация происходит уже в настройках самой программы.

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=2863&download=0

Команды для копирования: x.264 - nvenc_h264, HEVC - nvenc_hevc

Список видеокарт с поддержкой CUDA
https://developer.nvidia.com/cuda-gpus

Из плюсов: колоссальная эффективность, плавающее подключение, равномерное сглаживание проседаний при обработке потока, из минусов: поддержка только сжатий H.264 (x.264) и HEVC (h.265).
Разгрузка ЦП в среднем от 40-80%.

Послесловие

На этом думаю можно считать статью завершенной, все что касалось методик передачи потока, через HMS я рассказал, да здесь я не коснулся передачи потоков музыкального содержимого (но думаю, что это мы оставим на будущее).

Постарался рассказать вам об этой теме простыми словами, как это работает и нужно ли так сильно бояться транскодирования, надеюсь было интересно и вы с пользой потратили своё время.


Удачи и всех вам благ*BYE*

Всех с наступающим Новым Годом ;)


Это может быть интересно *WRITE*

Прикреплённые файлы сообщения

Включение аппаратной обработки (видеокарты с поддержкой CUDA).png 88.79 kb, скачивалось 305 раз, начиная с 2017.12.21

Включение прямой передачи онлайн потока.png 109.58 kb, скачивалось 309 раз, начиная с 2017.12.21

Запуск оригинального торрент потока и расположение панели передачи и танскодирования потока.png 147.17 kb, скачивалось 255 раз, начиная с 2017.12.21

Метод передачи потока (копирование, перепаковка).png 156.13 kb, скачивалось 271 раз, начиная с 2017.12.21

Метод передачи потока (полноценное транскодирование).png 194.25 kb, скачивалось 238 раз, начиная с 2017.12.21

Метод передачи потока (частичный транскод).png 156.62 kb, скачивалось 245 раз, начиная с 2017.12.21

Расположение таблицы поддерживаемых форматов и отключение транскодирования для устройства.png 163.36 kb, скачивалось 233 раза, начиная с 2017.12.21

Таблица поддерживаемых форматов и включение автоматического наполнение.png 73.49 kb, скачивалось 280 раз, начиная с 2017.12.21

WD TV LS+Sony KDLS5600/Samsung UEF5400/Sony PS 3/Yamaha RX-V379/hms 2.33
Кладовая HMS (список полезных ссылок и инструкций)
https://hms.lostcut.net/misc.php?action=pun_attachment&item=2914&download=0
Временно отсутствую
Спасибо сказали: ivan.abramov33, 75476822