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

Визуализация с аппаратным ускорением, включающая масштабирование видео, преобразование цветов и блитирование, повышает производительность декодирования с аппаратным ускорением. На устройствах, поддерживающих (аппаратное) ускорение с использованием графического процессора, с помощью объекта flash.media.StageVideo можно обрабатывать видео непосредственно аппаратными средствами устройства. При прямой обработке ресурсы центрального процессора освобождаются для выполнения других задач, в то время как графический процессор занимается обработкой видео. С другой стороны, существующий класс Video обычно использует программную визуализацию. Программная визуализация выполняется центральным процессором, для чего может использоваться значительная часть ресурсов системы.

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

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

Класс StageVideo накладывает некоторые ограничения на использование видео. Перед реализацией StageVideo ознакомьтесь с рекомендациями и убедитесь, что они применимы к приложению. Если ограничения допустимы, используйте класс StageVideo при обнаружении средой Flash Player возможностей визуализации с аппаратным ускорением. См. раздел « Рекомендации и ограничения ».

Параллельные плоскости: список отображения для видео рабочей области и Flash

В модели видео рабочей области приложение Flash Player можно отделить видео из списка отображения. Приложение Flash Player разделяет составной экран на две плоскости с порядком размещения по оси Z:

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

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

Полноразмерное изображение
Плоскости отображения видео

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

Видео рабочей плоскости и кодек H.264

В приложениях Flash Player аппаратное ускорение видео реализуется в два этапа:

  1. Кодирование видео в формат H.264

  2. Реализация API-интерфейса StageVideo

Для получения наилучшего результата необходимо выполнить оба этапа. Кодек H.264 позволяет максимально использовать преимущества аппаратного ускорения: от декодирования видео до его визуализации.

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

Рекомендации и ограничения

При воспроизведении видео в полноэкранном режиме видео рабочей области всегда доступно, если устройством поддерживается аппаратное ускорение. Однако Flash Player также выполняется в браузере. В контексте браузера на доступность видео рабочей области влияет параметр wmode . Если необходимо использовать видео рабочей области, рекомендуется всегда устанавливать wmode="direct" . Видео рабочей области несовместимо с другими параметрами wmode в других режимах, кроме полноэкранного. Данное ограничение означает, что в среде выполнения видео рабочей области может становиться недоступным в непредсказуемых случаях. Например, если во время воспроизведения видео пользователь выходит из полноэкранного режима, вновь происходит возврат в контекст браузера. Если для параметра wmode браузера не установлено значение "direct" , видео рабочей области может неожиданно стать недоступным. Проигрыватель Flash Player передает изменения контекста воспроизведения приложений с помощью набора событий. При реализации API-интерфейса StageVideo нужно сделать резервную копию объекта Video на случай, если видео рабочей области станет недоступным.

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

  • Для каждого SWF-файла проигрыватель Flash Player разрешает не более чем четырем объектам StageVideo отображать видео одновременно. Однако фактическое ограничение может быть ниже, в зависимости от аппаратных ресурсов устройства.

  • Хронометраж видео не синхронизируется с хронометражем содержимого, которое отображается в среде выполнения.

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

  • Нельзя поворачивать видео.

  • Вы не можете растровый кэш видеоролик или использовать объект BitmapData, чтобы получить доступ к нему.

  • Нельзя применять фильтры к видео.

  • Нельзя применять преобразования цветов к видео.

  • Нельзя применять значение альфа к видео.

  • Режимы наложения, которые применяются к объектам в плоскости списка отображения видео, не применяются к видео рабочей области.

  • Видео можно разместить только в пределах полных пикселей.

  • Хотя рендеринг с использованием графического процессора является лучшим решением, доступным для аппаратных средств конкретного устройства, он не обеспечивает 100 % «идентичности пикселей». Небольшие варианты имеют место из-за разниц платформы и драйвера.

  • Несколько устройств не делают поддержки все необходимые цветовые пространства. Например, некоторые устройства не делают Купленной 709 поддержки, стандарт H.264. В таких случаях для быстрого отображения можно использовать стандарт BT.601.

  • Вы не можете использовать видеоролик рабочей область с параметрами WMODE, например, нормальный, непрозрачный, или прозрачный. Видео рабочей области поддерживает параметр WMODE=direct в других режимах, кроме полноэкранного. Параметр WMODE не работает в Safari 4 и более поздних версиях, а также в IE 9 и более поздних версиях.

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