Ну вы конечно молодцы, сократили задержку — похвастались. А нам то что с вашей статьи? Технических подробностей и секретов вы не хотите рассказывать, кроме того, что используется wowza. Это не совсем формат хабра.
Статья всё же называется «Мониторинг задержки при проведении трансляций», а не «Настройка Wowza Streaming Engine на минимальную задержку». Я согласен (и отметил это в тексте), что описанный способ прост и с виду наивен, но он работает. И за годы работы я ничего похожего ни у кого не видел, и это создавало ряд трудностей. На вопрос «Какая у вас в тракте задержка?» могли ответить что угодно — «Ну, с полсекунды, наверное...», «Да вообще моментально всё пролетает!» и никогда никто не говорил конкретных цифр.
Про настройку Wowza тоже напишем, если будет хоть какой-то интерес к данной теме.
Я так понял, что описанный метод измерения задержки — для пуско-наладочных работ, точнее, для живого человека. А во время проведения мероприятий, что, тоже живой человек постоянно мониторит обратный поток (копию прямого потока)? Или же есть какая-то мониторилка, которая все данные собирает и хранит? Более интересно, как в машино-читаемом виде задержку в одну сторону мониторить.
Да, так можно измерять задержку только на подготовительной фазе. Про контроль задержки в реальном времени, так чтобы эта «измерялка» еще не мешала приёму-передаче видеопотока я не слышал, попробуем изобрести свою.
Зачем изобретать? в 0-ю видеостроку внедрить двоичный счетчик… или использовать для этих целей телетекст, там постоянно идет «сканирование» страниц покадрово со счетчиком. Если задать модулю генерацию страниц из всего диапазона можно запросто вычислить задержку со скоростью кадров, а если использовать телетекст штатно, можно определять задержку по 100-й странице но результаты будут раз в минуту-другую. Причем это можно железно автоматизировать и на светодиодном индикаторе сразу показывать задержку в сотых долях секунды.
В упор не понял, где в конверторе VGA->HDMI такие конские задержки в сотни и тысячи милисекунд. Я такой юзал одно время для подключения cintiq'а (для рисования). Поверьте мне, при рисовании каждый кадр лага глаза режет — а тут, ничего было, нормально.
Конвертер-конвертору рознь. Почему SDI-HDMI железка от AJA стоит 500$, от BMD 300$, а китайский Lenkeng 50$? Вот когда взялись анализировать задержки по каждому устройству, с интересом заметили, что в одном сигнал конвертируется за 1 кадр, а в другом за 3 кадра. Плюс, я писал в конвертацию из цифры в VGA, а не VGA->HDMI, как в вашем примере. Допускаю, что ЦАП и АЦП могут требовать разного времени обработки.
Но на самом деле, задержки там и правда «конские». Обратите внимание на любом концерте или массовом мероприятии, с какой задержкой выводится картинка на экранах за сценой.
ЦАП и АЦП вообще работают мгновенно. А вот мост их соединяющий… задержка появляется там где нет возможности обработки сигнала на лету — например нельзя выдать результат немедленно приняв только первый байт. Но вообще видеосигнал к такой категории не относится и его можно конвертировать теоретически с задержкой в длительность одной строки. Но для этого нужна параллельная обработка, дорогие ПЛИСы… для экономии делают проще — сначала сохраняют в буфер полностью кадр, а потом этот буфер выводят на другой интерфейс. Кадр к этому времени доступен целиком, задача по выводу сильно упрощается, может даже за счет готовых решений. Но имеем задержку уже как минимум в один кадр.
Иногда размер буфера не один кадр а десяток-другой, чтобы предотвратить возможные выпадения кадров по независящим от конвертора причинам(сбилась синхронизация кадровая из-за помех и т.д.) и при несовпадении частоты кадров на входе и выходе в результате задержка еще больше.
В любом мало-мальски серьёзном видеотракте сигнал проходит сильно больше одного устройства. Задержки есть и при формировании сигнала в камере, и при обработке его в видеомикшере, при конвертации в потоковое видео и так далее, пока картинка не дойдёт до экрана. Какие-то сложные истории, типа контроллеров светодиодных экранов или Watchout-станций могут увеличить задержку тотально, до нескольких секунд.
Я вам по большому секрету скажу — чаще Йоту резервируем Мегафоном. Хотя вышки одни и те же, при длительном аплоаде с большим битрейтом Йота ведёт себя намного стабильнее. Плюс у Йоты полный безлимит, а у Мегафона даже на дорогих тарифах есть фиксированный объем трафика, который, бывало, внезапно заканчивался… Главный минус Йоты — у них зарезаны скорости, больше 20-22 Мбит/сек входящей и 7-8 исходящей я не видел даже в очень хороших условиях приёма. Мегафон же может и 60-80 входящей и 20-30 исходящей показать, но, как уже сказал, скорость может очень сильно «плавать».
Ну и вдогонку — никто не мешает основной канал и резервный настроить на разные вышки. Поскольку мы используем направленные антенны, это не является особой сложностью.
Мониторинг задержки при проведении онлайн-видеотрансляций и телемостов