Informacje o przyspieszaniu sprzętowym za pomocą klasy StageVideo

Wyświetlanie z przyspieszeniem sprzętowym — w tym skalowanie wideo, konwersja kolorów i kopiowanie bitowe — daje lepsze wyniki dekodowania z przyspieszeniem sprzętowym. Na urządzeniach oferujących przyspieszanie GPU (sprzętowe) można za pomocą obiektu flash.media.StageVideo przetwarzać wideo, korzystając bezpośrednio z elementów sprzętowych urządzenia. Takie bezpośrednie przetwarzanie nie obciąża procesora, dzięki czemu może on realizować inne zadania w trakcie obróbki wideo przez GPU. Starsza klasa Video najczęściej używa wyświetlania programowego. Wyświetlanie programowe odbywa się przy użyciu procesora, co może skutkować używaniem znacznej części zasobów systemowych.

Obecnie niewiele urządzeń obsługuje pełne przyspieszanie GPU. Funkcja wideo na stole montażowym pozwala aplikacjom maksymalnie wykorzystywać dostępne opcje przyspieszania sprzętowego.

Wprowadzenie klasy StageVideo nie oznacza, że klasa Video jest przestarzała. Stosowanie obu tych klas razem pozwala uzyskać optymalne wyświetlanie wideo odpowiednio do zasobów dostępnych na urządzeniu w danej chwili. Aplikacja korzysta z przyspieszania sprzętowego, wykrywając odpowiednie zdarzenia oraz zgodnie z wymaganiami przełączając klasy StageVideo i Video.

Klasa StageVideo nakłada pewne ograniczenia na używanie wideo. Przed wprowadzeniem klasy StageVideo do implementacji należy zapoznać się ze wskazówkami, aby mieć pewność, że aplikacja będzie mogła działać mimo tych ograniczeń. Jeśli można zaakceptować związane z tym ograniczenia, należy stosować klasę StageVideo zawsze wtedy, gdy program Flash Player wykryje dostępność wyświetlania z przyspieszeniem sprzętowym. Zobacz Wskazówki i ograniczenia .

Płaszczyzny równoległe: Wideo na stole montażowym i lista wyświetlania programu Flash

Model wideo na stole montażowym pozwala programowi Flash Player na oddzielenie wideo od listy wyświetlania. Program Flash Player dzieli kompozycję wyświetlaną na ekranie między dwie płaszczyzny uporządkowane względem osi Z:

Płaszczyzna wideo na stole montażowym
Płaszczyzna wideo na stole montażowym jest umieszczona w tle. Wyświetla jedynie wideo z przyspieszeniem sprzętowym. Z powodu takiego układu ta płaszczyzna jest niedostępna, jeśli przyspieszanie sprzętowe nie jest obsługiwane lub nie jest dostępne na urządzeniu. W języku ActionScript wideo odtwarzane na płaszczyźnie wideo na stole montażowym obsługują obiekty StageVideo.

Płaszczyzna listy wyświetlania programu Flash
Jednostki z listy wyświetlania programu Flash są nakładane na płaszczyznę znajdującą się przed płaszczyzną wideo na stole montażowym. Jednostki z listy wyświetlania obejmują wszystko, co jest renderowane przez środowisko wykonawcze, łącznie z elementami sterującymi odtwarzaniem. Gdy przyspieszanie sprzętowe jest niedostępne, nie można odtwarzać wideo na tej płaszczyźnie za pomocą obiektu klasy Video. Wideo na stole montażowym jest zawsze odtwarzane za grafiką listy wyświetlania programu Flash.

Powiększ obraz
Płaszczyzny wyświetlania wideo

Obiekt StageVideo jest wyświetlany w prostokątnym obszarze ekranu wyrównanym do okna, bez zastosowanego obrotu. Nie można nakładać warstw obiektów za płaszczyzną stołu montażowego. Korzystając z płaszczyzny listy wyświetlania programu Flash, można nałożyć inną grafikę na płaszczyznę stołu montażowego. Wideo na stole montażowym jest odtwarzane równolegle z listą wyświetlania. Używając tych dwóch mechanizmów równocześnie, można utworzyć ujednolicony efekt wizualny oparty na dwóch oddzielnych płaszczyznach. Na przedniej płaszczyźnie można na przykład umieścić elementy sterujące wideo, które jest umieszczone na stole montażowym i odtwarzane w tle.

Wideo odtwarzane na stole montażowym i kodek H.264

W aplikacjach programu Flash Player implementacja przyspieszania sprzętowego przebiega w dwóch krokach:

  1. Kodowanie wideo do formatu H.264

  2. Implementacja interfejsu API klasy StageVideo

W celu uzyskania najlepszych rezultatów należy wykonać oba te kroki. Kodek H.264 pozwala w pełni wykorzystać możliwości przyspieszania sprzętowego — zarówno w zakresie dekodowania, jak i wyświetlania.

Korzystając z wideo na stole montażowym, można wyeliminować wielokrotne przekazywanie danych między GPU a procesorem. GPU nie musi już wysyłać dekodowanych klatek z powrotem do procesora w celu utworzenia kompozycji z obiektami znajdującymi się na liście wyświetlania. Zamiast tego GPU dekoduje klatki i renderuje je bezpośrednio na ekran, umieszczając klatki za obiektami z listy wyświetlania. Ta technika zmniejsza użycie pamięci i procesora, a także poprawia jakość obrazu na poziomie pikseli.

Wskazówki i ograniczenia

Gdy materiał wideo jest uruchomiony w trybie pełnoekranowym, wideo na stole montażowym jest zawsze dostępne, o ile urządzenie obsługuje przyspieszanie sprzętowe. Program Flash Player działa jednak również w przeglądarkach. W kontekście przeglądarki na dostępność wideo na stole montażowym ma wpływ ustawienie wmode . Jeśli ma być używane wideo na stole montażowym, należy zawsze próbować używać ustawienia wmode="direct" . Podczas odtwarzania w trybie innym niż pełnoekranowy wideo na stole montażowym nie jest zgodne z innymi ustawieniami wmode . To ograniczenie oznacza, że wideo na stole montażowym może w czasie wykonywania w nieprzewidywalny sposób stawać się dostępne i niedostępne. Jeśli na przykład użytkownik wyłączy tryb pełnoekranowy podczas odtwarzania wideo na stole montażowym, kontekst wideo powróci do przeglądarki. Jeśli dla parametru wmode przeglądarki nie ustawiono wartości "direct" , wideo na stole montażowym może nagle stać się niedostępne. Program Flash Player informuje aplikacje o zmianach kontekstu odtwarzania za pośrednictwem zestawu zdarzeń. W przypadku implementacji z zastosowaniem interfejsu API klasy StageVideo należy utrzymywać zapasowy obiekt Video stosowany w sytuacjach, gdy wideo na stole montażowym nie jest dostępne.

Z powodu bezpośredniego związku ze sprzętem wideo na stole montażowym ogranicza niektóre funkcje wideo. W przypadku wideo na stole montażowym występują następujące ograniczenia:

  • Dla każdego pliku SWF program Flash Player ogranicza do czterech liczbę obiektów StageVideo mogących równocześnie wyświetlać wideo. Rzeczywiste ograniczenie może być jednak mniejsze z powodu zasobów sprzętowych urządzenia.

  • Wideo nie jest synchronizowane z zawartością wyświetlaną przez środowisko wykonawcze.

  • Obszar wyświetlania wideo może być tylko prostokątny. Nie można użyć bardziej zaawansowany obszarów wyświetlania, na przykład eliptycznych lub nieregularnych.

  • Nie można obracać wideo.

  • Nie można stosować bufora bitmapowego do wideo ani uzyskiwać dostępu do wideo za pomocą obiektu BitmapData.

  • Nie można stosować filtrów do wideo.

  • Nie można stosować przekształceń kolorów do wideo.

  • Nie stosować wartości alfa do wideo.

  • Tryby mieszania zastosowane do obiektów na płaszczyźnie listy wyświetlania nie dotyczą wideo na stole montażowym.

  • Wideo można umieścić tylko w obramowaniu ustawionym równo z pikselami.

  • Renderowanie GPU odbywa się w najlepszy sposób dostępny na danym urządzeniu, jednak nie oferuje całkowicie (co do piksela) identycznych wyników na różnych urządzeniach. Występują drobne zmiany spowodowane różnicami między sterownikami i platformami.

  • Kilka urządzeń nie obsługuje wszystkich wymaganych przestrzeni kolorów. Na przykład niektóre urządzenia nie obsługują standardu BT.709 formatu H.264. W takich wypadkach do szybkiego odtwarzania można użyć opcji BT.601.

  • Wideo na stole montażowym nie można używać z ustawieniami WMODE takimi jak normal, opaque czy transparent. Podczas wyświetlania w trybie innym niż pełnoekranowy wideo na stole montażowym obsługuje tylko ustawienie WMODE=direct . Parametr WMODE nie ma wpływu na przeglądarki Safari 4 i Internet Explorer 9 ani ich nowsze wersje.

W większości przypadków te ograniczenia nie mają wpływu na aplikacje odtwarzaczy wideo. Jeśli można zaakceptować te ograniczenia, należy używać wideo na stole montażowym, gdy tylko jest to możliwe.