Om maskinvaruacceleration med StageVideo

Maskinvaruaccelererad presentation – med videoskalning, färgkonvertering och blitting-teknik – förstärker prestandafördelarna med maskinvaruaccelererad avkodning. På enheter som har GPU-acceleration (maskinvara) kan du använda ett flash.media.StageVideo-objekt för att bearbeta video direkt på enhetens maskinvara. Direktbearbetning frigör CPU-kapacitet för andra uppgifter medan GPU:n hanterar videon. I den äldre Video-klassen används å andra sidan vanligtvis programvarupresentation. Programvarupresentation sker i CPU:n och den kan uppta en avsevärd del av systemresurserna.

För närvarande har få enheter full GPU-acceleration. Med scenvideofunktionen kan dock program maximalt utnyttja den maskinvaruacceleration som trots allt är tillgänglig.

Klassen StageVideo ersätter inte helt klassen Video. Tillsammans ger de här båda klasserna optimal videovisning i förhållande till enhetens resurser vid den aktuella tidpunkten. Ditt program utnyttjar maskinvaruaccelerationen genom att lyssna efter lämpliga händelser och växla mellan StageVideo och Video efter behov.

Med klassen StageVideo införs vissa begränsningar på videoanvändning. Innan du implementerar StageVideo bör du granska riktlinjerna och se till att de fungerar i programmet. Om du accepterar begränsningarna kan du använda klassen StageVideo när maskinvaruaccelererad presentation identifieras i Flash Player. Se Riktlinjer och begränsningar .

Parallella planer: Scenvideo och Flash-visningslistan

Med scenvideomodellen kan separat video spelas upp i Flash Player från visningslistan. Den sammansatta visningen delas upp mellan två z-ordnade plan i Flash Player:

Scenvideoplan
Scenvideoplanet ligger i bakgrunden. Där visas endast maskinvaruaccelererad video. På grund av den här designen är det här planet inte tillgängligt om maskinvaruacceleration inte stöds eller inte är tillgängligt på enheten. I ActionScript hanterar StageVideo-objekt video som spelas upp på scenvideoplanet.

Plan med visningslistan i Flash
Enheter på visningslistan i Flash sätts samman i ett plan framför scenvideoplanet. Entiteter av visningslistor omfattar allt som återges i körningstiden, inklusive uppspelningskontroller. När maskinvaruacceleration inte är tillgängligt kan videofilmer bara spelas upp på det här planet med Video-klassobjektet. Scenvideo visas alltid bakom grafiken i visningslistan i Flash.

StageVideo-objektet visas i en icke-roterad, rektangulär del av skärmen, justerad efter fönstret. Du kan inte lägga objekt i lager bakom scenvideoplanet. Du kan emellertid använda planet med visningslistan i Flash för att placera andra bilder i lager ovanpå scenvideoplanet. Scenvideo körs samtidigt med visningslistan i På så sätt kan du använda de två funktionerna tillsammans för att skapa en visuellt enhetlig effekt med två separata plan. Du kan till exempel använda det främre planet för uppspelningskontroller, som används på scenvideon i bakgrunden.

Scenvideo och H.264-kodek

I Flash Player-program innebär implementering av maskinvaruacceleration för video två steg:

  1. Kodning av videon som H.264

  2. Implementering av StageVideo API

För bästa resultat ska du utföra båda stegen. Med H.264-kodeken kan du till fullo utnyttja maskinvaruacceleration, från videoavkodning till presentation.

Scenvideo eliminerar GPU-till-CPU-återläsning. GPU skickar alltså inte längre avkodade bildrutor tillbaka till CPU:n för sammansättning med visningslisteobjekt. I stället skickar GPU:n avkodade och återgivna bildrutor direkt till skärmen, bakom visningslisteobjekten. Tekniken minskar CPU- och minnesanvändning samt förbättrar pixelåtergivningen.

Riktlinjer och begränsningar

När video körs i helskärmsläge är scenvideo alltid tillgängligt om enheten har stöd för maskinvaruacceleration. Flash Player körs dessutom i en webbläsare. I webbläsarsammanhang kan inställningen wmode påverka scenvideons tillgänglighet. Därför bör du alltid använda wmode="direct" om du vill att scenvideo ska vara tillgängligt. Scenvideo är inte kompatibelt med andra wmode -inställningar om inte helskärmsläge används. Den här begränsningen innebär att scenvideo kan växla mellan att vara tillgängligt och otillgängligt på ett oförutsägbart sätt under körning. Om användaren till exempel avslutar helskärmsläget när scenvideon spelas upp, ändras videosammanhanget tillbaka till webbläsaren. Om parametern wmode för webbläsaren inte har angetts som "direct" kan scenvideon plötsligt bli otillgänglig. Information om ändringar av uppspelningssammanhanget skickas från Flash Player till program genom en uppsättning händelser. Om du implementerar StageVideo API ska du behålla ett Video-objekt som säkerhetsnivå när scenvideo blir otillgängligt.

På grund av scenvideons direkta förhållande till maskinvaran begränsar den vissa videofunktioner. Scenvideo påtvingar följande begränsningar:

  • För varje SWF-fil begränsas antalet StageVideo-objekt som samtidigt kan visa video till fyra i Flash Player. Den faktiska gränsen kan vara ännu lägre, beroende på enhetens maskinvaruresurser.

  • Videotimingen är inte synkroniserad med timingen av innehåll som visas i körningsmiljön.

  • Visningsområdet för videofilmen kan bara vara en rektangel. Du kan inte använda mer avancerade visningsområden, som elliptiska eller oregelbundna former.

  • Du kan inte rotera videofilmen.

  • Du kan inte bitmappscacha videon eller använda BitmapData-objekt för att komma åt den.

  • Du kan inte använda filter på videofilmen.

  • Du kan inte använda färgomvandlingar på videofilmen.

  • Du kan inte använda ett alfavärde på videofilmen.

  • Blandningslägen som du tillämpar på objekt i visningslisterutan gäller inte scenvideo.

  • Du kan bara placera videofilmen på helpixelgränser.

  • Även om GPU-återgivningen är den bästa möjliga för aktuell enhetsmaskinvara är den inte ”pixelidentisk” till 100 % på alla enheter. Mindre variationer förekommer beroende på drivrutin och plattform.

  • Ett fåtal enheter saknar stöd för alla färgrymder som krävs. Vissa enheter har till exempel inte stöd för BT.709, H.264-standarden. I så fall kan du använda BT.601 för snabb visning.

  • Du kan inte använda scenvideo med WMODE-inställningar som normal, ogenomskinlig eller genomskinlig. Scenvideo har bara stöd för WMODE=direct om inte helskärmsläge används. WMODE har ingen effekt i Safari 4 eller senare, och i IE 9 eller senare.

I de flesta fall påverkar de här begränsningarna inte videouppspelningsprogram. Om du kan acceptera begränsningarna bör du alltid använda scenvideo om det går.