Мультибитрейт, или Adaptive Bit Rate -- это технология, позволяющая передавать пользователю видео, адаптирующееся под его ширину канала.
Итак, чтобы видео у пользователя воспроизводилось без задержек, нужно отдавать ему данные, закодированные с разным битрейтом, разным разрешением и другими настройками в зависимости от ширины канала пользователя. Причем желательно реагировать на изменения этой ширины канала, и переключать пользователя на поток с соотвествующим битрейтом.
Описанные ранее технологии http streaming от Apple, Microsoft и Adobe поддерживают эту возможность. Мультибитрейт так же поддерживается во Flash Media Server версии 3.5 и выше (по rtmp протоколу). Wowza Media Server со 2й версии тоже поддерживает мультибитрейт, но ограничено, только в случае http streaming для iPhone/iPad.
Здесь вы можете посмотреть видеоурок адобоского евангелиста Tom Krcha, как реализовать воспроизведение видео с мультибитрейтом на флэш клиенте и FMS 3.5.
Однако эта технология работает не идеально. Трудно добиться гладкого, бесшовного перехода с одного битрейта на другой.
Во первых, как мы помним, закодированное видео состоит из опорных кадров и P-кадров. Поэтому, переключившись на другой поток, мы не можем ничего показать, пока не получим опорный кадр. Если такие переключения будут происходить часто, то будут задержки в воспроизведении.
Во вторых, не так просто точно определить ширину канала и вовремя заметить, что она изменилась. Поэтому может случиться, что пользователь получает видео в неподходящем битрейте, что опять же даст задержки.
Кроме того технология создает дополнительные издержки для владельца сервиса -- сложнее кодировать видео и нужно хранить больший объем данных.
Add new comment