[ Windows 軟體 ] 影音:KMPlayer,PowerDVD,Vista 與 AVC1 硬體解碼

<!–
.style2 {color: #FF0000}
.style3 {
font-size: large;
font-weight: bold;
}

–>
這裡來說明如何在 Vista 中,讓 KMPlayer 使用 PowerDVD 的 decoder,在播放 AVC1 影片時進行硬體解碼,同時還可以讓外掛字幕繼續運作。

PowerDVD 的解碼器也算是很有名氣,而且支援許多顯示卡的硬解功能。如果只是單純的硬解,那沒什麼。這篇要說明的是,如何開啟硬解來播放 AVC1,還能夠外掛字幕。 

  1. 先安裝 PowerDVD。這篇文章的環境,選用安裝的是 PowerDVD Ultra 8。
  2. 安裝 KMPlayer。這篇文章的環境,選用安裝的是 KMPlayer 2.9.3.1432 R2。
  3. 啟動 KMPlayer,按 F2 叫出「參數設定」視窗。
  4. 點選「外部視訊解碼器」。位於「過濾器控制」下的「解碼器使用」下。
  5. 點擊右側下方的「搜索外部解碼器(S)」按鈕,開啟「外部解碼器/過濾器管理」視窗。
  6. 點擊左下方按鈕群的「在搜索後新增」按鈕,靜待片刻後,KMPlayer 會自動將搜尋到的解碼器新增,並打勾選取。
  7. 點擊右側下方「確定(O)」按鈕,回到「參數設定」視窗。
  8. 點擊右側「外部視訊解碼器」頁下方的 AVC1 右邊的下拉式選單,在選單中選擇「*CyberLink H.264/AVC Decoder (PDVD8)」,然後點擊下拉式選單右側的「…」按鈕,會跳出「Filter Info」視窗。
  9. 在「Filter Info」視窗中,將「Miscellaneous」處的「Use DxVA」打勾,如下圖:

    然後按「確定(O)」,回到「參數設定」視窗。
  10. 點選左側的「視訊處理」,點選右側的「轉譯器」頁籤。
  11. 點擊中間的「轉譯器」右邊的下拉式選單,點選「Enhanced Video Renderer(C/A)」(警告:這一步很重要,請不要選錯)。
  12. 點擊右下角的「關閉(C)」按鈕。
  13. 設定完成。

如何得知硬體解碼(硬體加速)有啟動呢?
播放影片時,按下 Ctrl-Tab 叫出「進階播放資訊」視窗,在「視訊資訊」欄如果有出現 dxva 字樣,就表示硬體加速有啟動,如下圖:

如果出現的不是 dxva 字樣,就表示目前是靠軟體解碼。例如下圖就是沒有啟動硬體解碼的進階播放資訊內容:

另外也可以從 CPU 使用率來觀察。接下來做個小實驗,根據 CPU 使用情況來瞭解硬體解碼與軟體解碼所消耗的 CPU 資源。這邊播放用的展示影片,是從 Elecard 下載的兩隻影片,一隻是 720p 的 AVC1,另外一隻則是 1080p 的 AVC1。

下載頁面連結為:http://www.elecard.com/download/clips.php

下載的影片連結,
720p 的為:http://www.elecard.biz/clips/mp4/misc/FCL_720p.mp4
1080p 的為:http://www.elecard.biz/clips/mp4/misc/FCL_1080p.mp4

播放時,KMPlayer 調用的 AVC1 Decoder 實驗組為 PowerDVD H.264/AVC Decoder (PDVD8),對照組為 CoreAVC Video Decoder(設定為預設值,版本為 v1.8)。
實驗結果:

720p
使用 PowerDVD Decoder(硬體解碼)播放時,CPU 的閒置時間(越接近 100 表示 CPU 使用率越低)

使用 CoreAVC 播放時,CPU 的閒置時間(越接近 100 表示 CPU 使用率越低)

從上面兩張圖可以看出來,使用硬解的時候,CPU 消耗的運算能力明顯比軟解要少的多。

接下來,來看看 1080p 的部份。

1080p
使用 PowerDVD Decoder(硬體解碼)播放時,CPU 的閒置時間(越接近 100 表示 CPU 使用率越低)

使用 CoreAVC 播放時,CPU 的閒置時間(越接近 100 表示 CPU 使用率越低)

在 1080p 的影片中,可以發現調用 PowerDVD 的 decoder 並啟動硬解,消耗的運算能力與 720p 相差無幾,但是純軟解的 CoreAVC 則需要更大的運算能力,才能完成任務。

最後,關於外掛字幕的部份

在步驟 11 的地方,要把轉譯器設定為「Enhanced Video Renderer(C/A)」,是外掛字幕能否顯示的重要關鍵。如果選擇了「增強視訊轉譯器(僅 Vista)」,雖然硬解依然可以啟動,但是卻無法宣染,所以無法再貼上字幕。

實驗的對象:
一,整合了音訊,視訊與字幕的 MKV 檔
二,上述用來測試 CPU 消耗,使用的 720p MP4,使用 Subtitle Wrokshop 編輯一個字幕(smi)

在上述兩種情況,都可以正常的顯示字幕。

使用過程中,還是有遇到一些異常的狀況。首先是,播放有字幕的影片時,有時候會發生影像停滯,但是字幕繼續更新,聲音也正常播放,播放時間表也正常進行的異常情況。這時候只要按一下向左方向鍵(預設功能是倒退五秒鐘),就會恢復正常,繼續播放。

另外,測試播放 1080p 的影片 CPU 消耗時,調用 PowerDVD Decoder 時,影像會發生異常狀況(破格,暫停,全部變成綠色),但是調用 CoreAVC 播放時,就沒有問題。
有興趣的人,不妨自己試試看。