關於使用 StageVideo 的硬體加速

硬體加速呈現方式包括視訊縮放、色彩轉換和位圖傳送,可增強硬體加速解碼的效能。在提供 GPU (硬體) 加速的裝置上,您可以使用 flash.media.StageVideo 物件,直接在裝置硬體上處理視訊。直接處理可在 GPU 處理視訊時釋放 CPU 以執行其他工作。另一方面,舊版 Video 類別通常使用軟體呈現方式。軟體呈現方式在 CPU 上進行,可能耗用大量的系統資源。

目前僅有少數裝置提供完整的 GPU 加速功能。不過,舞台視訊可讓應用程式充分利用可用的硬體加速。

StageVideo 類別的存在,並不代表 Video 類別已經過時。這兩個類別結合起來在任何指定時間,提供裝置資源允許的最佳視訊顯示經驗。您的應用程式可以偵聽適當的事件,並視需要在 StageVideo 與 Video 之間切換,以充分利用硬體加速。

StageVideo 類別會在視訊用途上強制實行某些限制。在實作 StageVideo 之前,請檢視原則,並確定您的應用程式接受那些限制。若您接受那些限制,請在 Flash Player 偵測到可用的硬體加速呈現方式時使用 StageVideo 類別。請參閱 原則與限制

平行平面:舞台視訊與 Flash 顯示清單

使用舞台視訊模型時,Flash Player 可從顯示清單中分離視訊。Flash Player 會在兩個 Z 順序堆疊的平面之間分割複合顯示:

舞台視訊平面
舞台視訊平面位於背景。它只會顯示硬體加速視訊。因為這個設計,如果在裝置上不支援硬體加速或是未提供,則無法使用此平面。在 ActionScript 中,StageVideo 物件會處理在舞台視訊平面上播放的視訊。

Flash 顯示清單平面
Flash 顯示清單實體會在舞台視訊平面前面的平台上複合。顯示清單實體包括執行階段顯示的任何內容,包括播放控制項。未提供硬體加速時,只能使用 Video 類別物件在此平面上播放視訊。舞台視訊永遠會顯示在 Flash 顯示清單圖形的後面。

StageVideo 物件會以螢幕中一個非旋轉且與視窗對齊的矩形區域顯示。您不能將物件放置在舞台視訊平面之後。不過,您可以使用 Flash 顯示清單平面,將其他圖形放置在舞台視訊平面之上。舞台視訊會與 顯示清單同時執行。因此,您可以同時使用兩種機制,在兩個不同平面建立統一的視覺效果。例如,您可以使用播放控制項的前面平面,以便操作背景執行的舞台視訊。

舞台視訊與 H.264 轉碼器

在 Flash Player 應用程式中,實作視訊硬體加速包含兩個步驟:

  1. 將視訊編碼為 H.264

  2. 實作 StageVideo API

為獲得最佳結果,請執行這兩個步驟。H.264 轉碼器可讓您發揮硬體加速的最大功能,包括視訊解碼與呈現方式。

舞台視訊可消除 GPU 對 CPU 回讀。換言之,GPU 不會再將解碼的影格傳送回 CPU 來複合顯示清單物件。而是直接將解碼與顯示的影格傳送到螢幕的顯示清單物件後面。此技術可減少 CPU 與記憶體使用量,並可提供較佳的像素真實度。

原則與限制

當視訊以全螢幕模式執行時,若裝置支援硬體加速,則永遠可使用舞台視訊。但 Flash Player 也會在瀏覽器中執行。在瀏覽器內容中, wmode 設定會影響舞台視訊的可用性。如果您想要使用舞台視訊,請一律嘗試使用 wmode="direct" 。舞台視訊不是全螢幕模式時,則不相容於其他 wmode 設定。這個限制表示在執行階段舞台視訊可能會在可用與無法使用的狀態之間游移不定。例如,如果使用者在舞台視訊執行時結束全螢幕模式,則視訊內容會回到瀏覽器。如果將瀏覽器 wmode 參數設為 "direct" ,舞台視訊可能會突然變成無法使用。Flash Player 可透過一組事件向應用程式溝通播放內容變更。若您實作 StageVideo API,請保留 Video 物件做為備份,以便在無法使用舞台視訊時使用。

因為舞台視訊與硬體的直接關係,它會限制某些視訊功能。舞台視訊會強制下列限制:

  • 對於每個 SWF 檔案,Flash Player 會將可以同時顯示視訊的 StageVideo 物件數目限制為四個。不過,須視裝置硬體資源而定,實際限制有可能更少。

  • 視訊時間未與執行階段顯示的 內容時間同步。

  • 視訊顯示區域僅能為矩形。您無法使用較為進階的顯示區域,像是橢圓形或不規則形狀。

  • 您無法旋轉視訊。

  • 您無法以點陣圖快取視訊,也無法使用 BitmapData 物件存取它。

  • 您無法對視訊套用濾鏡。

  • 您無法對視訊套用顏色變化。

  • 您無法對視訊套用 Alpha 值。

  • 您套用至顯示清單平面物件的混合模式,不會套用至舞台視訊。

  • 您只能將視訊置於完整像素邊界。

  • 雖然 GPU 顯示是供指定裝置硬體使用的最佳方案,但是它在不同裝置並不是 100% 的「像素相同」。由於驅動程式與平台的不同,會有些微的差異。

  • 有一些裝置不支援所有需要的顏色空間。例如,有些裝置不支援 BT.709 (H.264 標準)。在這種情況下,您可以使用 BT.601 進行快速顯示。

  • 您無法以 WMODE 設定 (例如,一般、不透明或是透明) 使用舞台視訊。舞台視訊不是全螢幕模式時,僅支援 WMODE=direct 。WMODE 對 Safari 4 或更新版本、IE 9 或更新版本沒有作用。

在大部分情況下,這些限制不會影響視訊播放程式應用程式。如果您可以接受這些限制,請盡可能使用舞台視訊。