Hardwareversnelling met gebruik van StageVideo

Presentatie met hardwareversnelling, waarin het schalen van video, kleuromzetting en tekenen is opgenomen, verbetert de prestaties en profiteert van decodering met hardwareversnelling. Op apparaten met GPU (hardware)-versnelling kunt u een flash.media.StageVideo-object gebruiken om video direct op het apparaat te verwerken. Directe verwerking betekent dat de CPU andere taken kan uitvoeren terwijl de GPU video verwerkt. De oudere Video-klasse gebruikt daarentegen standaard softwarepresentatie. Softwarepresentatie vindt plaats in de CPU en kan een groot deel van de systeembronnen in beslag nemen.

Momenteel verschaffen nog maar weinig apparaten volledige GPU-versnelling. Met werkgebiedvideo kunnen toepassingen echter optimaal profiteren van de beschikbare hardwareversnelling.

De aanwezigheid van de klasse StageVideo betekent niet dat de klasse Video overbodig is. Samen zorgen deze twee klassen voor de beste videoweergave die gezien de apparaatbronnen op een bepaald moment mogelijk is. Uw toepassing benut hardwareversnelling door naar de desbetreffende gebeurtenissen te luisteren en naar behoefte te schakelen tussen StageVideo en Video.

De klasse StageVideo stelt enkele beperkingen op het videoverbruik in. Lees de richtlijnen door en controleer of uw toepassing deze kan accepteren voordat u StageVideo implementeert. Als u de beperkingen accepteert, moet u de klasse StageVideo gebruiken als Flash Player detecteert dat presentatie met hardwareversnelling beschikbaar is. Zie Richtlijnen en beperkingen.

Parallelle vlakken: werkgebiedvideo en de Flash-weergavelijst

In het werkgebiedvideomodel kan Flash Player video onderscheiden van de weergavelijst. Flash Player deelt de samengestelde weergave op in twee vlakken met z-volgorde:

Werkgebiedvideovlak
Het werkgebiedvideovlak bevindt zich op de achtergrond Flash Player geeft alleen video met hardwareversnelling weer. Vanwege dit ontwerp is dit vlak niet beschikbaar als hardwareversnelling niet wordt ondersteund of niet beschikbaar is op het apparaat. In ActionScript verwerken StageVideo-objecten de video's die in het werkgebiedvideovlak worden afgespeeld.

Vlak voor Flash-weergavelijst
Elementen in de Flash-weergavelijst worden op een vlak vóór het werkgebiedvideovlak geplaatst. Tot deze elementen worden alle elementen gerekend die de runtime kan renderen, zoals afspeelknoppen. Als hardwareversnelling niet beschikbaar is, kunnen video's alleen in dit vlak worden afgespeeld, en wel met gebruik van het klasseobject Video. Werkgebiedvideo wordt altijd achter beelden uit de Flash-weergavelijst afgespeeld.

Het StageVideo-object wordt weergegeven in een met het venster uitgelijnde, niet geroteerde rechthoek op het scherm. U kunt objecten niet in een laag achter het werkgebiedvideovlak plaatsen. U kunt het vlak met de Flash-weergavelijst echter wel gebruiken om andere beelden in een laag vóór het werkgebiedvlak te plaatsen. Werkgebiedvideo wordt tegelijkertijd met de weergavelijst uitgevoerd. U kunt de twee mechanismen dus tegelijk gebruiken om één visueel effect te maken dat gebruikmaakt van twee verschillende vlakken. U kunt het voorste vlak bijvoorbeeld gebruiken voor afspeelknoppen om de op de achtergrond uitgevoerde werkgebiedvideo te bedienen.

Werkgebiedvideo en H.264-codec

In Flash Player-toepassingen bestaat het implementeren van video met hardwareversnelling uit twee stappen:

  1. De video coderen als H.264

  2. De StageVideo-API implementeren

Voer beide stappen uit om de beste resultaten te bereiken. Met de H.264-codec kunt u maximaal profiteren van hardwareversnelling, van videodecodering tot presentatie.

Met werkgebiedvideo wordt het teruglezen van GPU naar CPU overbodig. Met andere woorden, de GPU hoeft gedecodeerde frames niet meer terug te sturen naar de CPU om te worden samengesteld met objecten uit de weergavelijst. De GPU stuurt gedecodeerde en gerenderde frames in plaats daarvan rechtstreeks naar het scherm, en wel achter de objecten uit de weergavelijst. Deze techniek verlaagt het CPU- en geheugenverbruik en verschaft bovendien hogere pixelprecisie.

Richtlijnen en beperkingen

Wanneer video op het volledige scherm wordt uitgevoerd, is werkgebiedvideo altijd beschikbaar als het apparaat ondersteuning biedt voor hardwareversnelling. Flash Player wordt echter ook uitgevoerd in een browser. In een browsercontext beïnvloedt de instelling wmode de beschikbaarheid van werkgebiedvideo. Als vuistregel geldt dat u wmode="direct" altijd beter kunt gebruiken als u werkgebiedvideo wilt gebruiken. In andere modi dan de modus Volledig scherm is werkgebiedvideo niet compatibel met andere wmode-instellingen. Dat betekent dat werkgebiedvideo tijdens de runtime op onvoorspelbare wijze kan afwisselen tussen beschikbaar en niet beschikbaar. Als de gebruiker bijvoorbeeld de modus Volledig scherm sluit terwijl werkgebiedvideo wordt uitgevoerd, verandert de videocontext weer terug naar de browser. Als de browserparameter wmode niet is ingesteld op "direct", kan werkgebiedvideo ineens onbeschikbaar worden. Flash Player meldt wijzigingen in de afspeelcontext aan de hand van een serie gebeurtenissen aan toepassingen. Als u de StageVideo-API implementeert, bewaart u een Video-object als back-up voor het geval werkgebiedvideo onbeschikbaar zou worden.

Vanwege het rechtstreekse verband met de hardware, beperkt werkgebiedvideo enkele videofuncties. Werkgebiedvideo dwingt de volgende beperkingen af:

  • Flash Player beperkt voor elk SWF-bestand het aantal StageVideo-objecten dat tegelijkertijd video's kan weergeven tot vier. De feitelijke limiet kan echter lager zijn, afhankelijk van de hardwarebronnen van het apparaat.

  • De timing van de video is niet gesynchroniseerd met de timing van de inhoud die in de runtime wordt weergegeven.

  • Het weergavegebied van de video is altijd een rechthoek. U kunt geen geavanceerde weergavegebieden gebruiken, zoals een ellips of onregelmatige vormen.

  • De video kan niet worden gedraaid.

  • U kunt de video niet in de bitmapcache plaatsen en niet openen via het BitmapData-object.

  • Er kunnen geen filters worden toegepast op de video.

  • Er kunnen geen kleurtransformaties worden toegepast op de video.

  • Er kan geen alphawaarde worden toegepast op de video.

  • Overvloeimodi die u toepast op objecten in het weergavelijstvlak zijn niet van toepassing op werkgebiedvideo.

  • De video kan alleen worden geplaatst op grenzen met hele pixels.

  • Hoewel GPU-rendering de beste beschikbare rendering voor de desbetreffende hardware is, is er geen sprake van 100% identieke pixels op verschillende apparaten. Er kunnen kleine verschillen optreden die te wijten zijn aan stuurprogramma- en platformverschillen.

  • Enkele apparaten bieden geen ondersteuning voor alle vereiste kleurruimten. Sommige apparaten bieden bijvoorbeeld geen ondersteuning voor BT.709, de H.264-standaard. In dergelijke gevallen kunt u BT.601 gebruiken voor snelle weergave.

  • U kunt werkgebiedvideo niet gebruiken met WMODE-instellingen, zoals Normaal, Dekkend of Transparant. Werkgebiedvideo ondersteunt WMODE=direct alleen als de modus Volledig scherm niet actief is. WMODE heeft geen effect in Safari 4 of hoger en in IE 9 of hoger.

In de meeste gevallen beïnvloeden deze beperkingen videospelertoepassingen niet. Gebruik waar mogelijk werkgebiedvideo als u deze beperkingen kunt accepteren.