Flash/AIR Stage Video на iOS - это возможно? Какова производительность?

Кто-нибудь из вас может указать мне какой-то ресурс о производительности видео AIR (3.2) на устройствах iOS.

Меня интересует:

  • доступен StageVideo
  • разрешено/включено потоковое видео
  • является ли производительность нормально с видео высокой четкости?
  • есть .flv воспроизведение разрешено? (как насчет на Android: flash уже есть)

Ответы

Ответ 1

Только H264 имеет аппаратное декодирование в iOS. Это означает сопоставимую производительность видео с родным проигрывателем только для H264 (в лучшем случае) декодирования для Sorenson и VP6 (даже с низкими разрешениями).

"AIR 3 для iOS использует объект StageVideo для видео H.264 с аппаратным декодированием, ограниченный поддержкой для функций NetStream. AIR 3 для iOS также поддерживает кодеки On2 и Sorenson через объект StageVideo. Эта поддержка не использует аппаратное декодирование, и это не ограничивает функциональность NetStream".   flash.media.StageVideo

FLV и MP4 являются форматами инкапсуляции. FLV может содержать VP6 + MP3 или H264 + AAC (или любой из них в одиночку). MP4 может содержать H264 + AAC. Документы ничего не говорят о том, что FLV не поддерживается iOS.

Однако, в iOS, если FLV/H264 не будет воспроизводиться, вы не сможете перевести его на MP4 "на лету" из-за следующего ограничения (иначе вы потеряете аппаратное декодирование): "Примечание. Этот метод не поддерживается для видео H.264 в AIR 3.0 для iOS".   flash.net.NetStream:: appendBytes()

Ничего не сказано о Sorenson или VP6, которые не были отправлены на пересылку на лету (таким образом, они должны быть).

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

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

"Оказывается, потоковая передача видео H264 в реальном времени не отображается на устройствах iOS в Adobe Air. Другие видеокодеки будут работать (H263), но не для H264. Вы будете потреблять фид, но только слышу звук. Я подтвердил это после разговора с членами команды разработчиков Adobe Air". Из Форумы Adobe

Насколько хорошо декодирование H264 на разных процессорах Apple ARM действительно сильно зависит от настроек кодирования видео (B-кадры или ключевые кадры, битрейты и т.д.) и, тем не менее, у вас есть динамический контент, статический контент, быстрые сцены переключения, разрешение, цвет паллеты и т.д.

Вывод: Используйте FLV или MP4 (в зависимости от того, что вам больше подходит), с H264 + AAC внутри. Поэкспериментируйте с настройками кодирования или множеством видео, на которые вы нацеливаетесь (если есть). Определите, что является самым низким (самым старым) устройством iOS, на которое вы хотите настроить таргетинг, и протестируйте его.

Ответ 2

Я не знаю, как производительность складывается, но в документах Actionscript для NetStream есть информация об использовании NetStream/Video для воспроизведения видео в AIR на устройствах iOS:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#play%28%29

StageVideo поддерживается для видео H.264 на iOS с AIR 3:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/StageVideo.html

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