Как работает обнаружение полосы пропускания во Flash / FMS - PullRequest
3 голосов
/ 03 апреля 2012

Я поддерживаю видеосистему для клиента, который использует JW Player с Flash Media Server для потоковой передачи некоторого видео.До недавнего времени это было просто выталкивание одного потока на одном битрейте.Это, очевидно, не идеально для всех, поэтому я смотрю на определение пропускной способности.

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

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

Итак, два вопроса из этого:

  • Что происходит, когда полоса пропускания пользователя находится прямо на границе между двумя потоками?Будут ли они переключаться между двумя потоками?

  • Есть ли какие-либо рекомендации по минимизации количества прыжков для таких пользователей (и вообще)?

1 Ответ

0 голосов
/ 03 апреля 2012

Я не знаю, как это делает JW Player, но есть «родной» способ сделать это.Возможно, этот игрок использует его, а может и нет - кто знает.Проигрыватели флэш-видео традиционно изготавливаются на индивидуальной основе, и проигрыватели «сделай все» оказались в целом низкого качества.Так что, возможно, было бы неплохо, учитывая конкретные требования по сборке плеера самостоятельно - это довольно много тестирования, но не так уж много кода.

Как это работает «изначально»: подробная информация .В двух словах, вам необходимо реализовать 2 функции: onBWCheck и onBWDone для объекта, используемого в качестве клиента NetConnection экземпляра.Процесс обнаружения более или менее похож на этот: сервер отправляет пакет некоторого размера, и после его получения он рассчитывает время, необходимое для прохождения пакета.Он будет пытаться делать это до тех пор, пока не «подумает», что он находит нужную пропускную способность.

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

По правде говоря, потоковая передача Flash по своей конструкции предпочитает низкую скорость с меньшим запаздыванием, чем высокую скорость, возможно, с большим запаздыванием.Но эти значения не являются абсолютными и действительно зависят от каждой конкретной ситуации и маршрута к серверу, интернет-провайдера пользователя и т. Д. Поэтому, если бы я был вами, я бы не подписывал документ, в котором говорилось бы: «Нет гистерезиса», однакопредлагать хорошее качество не лишено смысла :)

...