HWAcceleratedVP9Player

Hardware Accelerated VP9 Player in macOS 11.0 Big Sur beta 4+

8
1
Swift

HWAcceleratedVP9Player

macOS 11.0 Big Sur beta 4 から VP9 のHW支援でのデコードに対応したのを利用し、VP9 入り MP4 のファイルを再生するデモです。

How to build

git clone して HWAcceleratedVP9Player.xcodeproj を開きビルドしてください。
Team や Signing Certificate を変更する必要があるかもしれません。

VP9 入り MP4 の作り方

通常通りに VP9 が入った WebM ファイルを用意し、 ffmpeg -i vp9.webm -codec copy vp9.mp4 で作成できます。

ただし、現段階でOpusには対応していないようなので、-acodec aacなどで音声を変換する必要があるかもしれません。

How it works

VP9 のハードウェアデコーダは macOS 11.0 beta 4 から追加された VTRegisterSupplementalVideoDecoderIfAvailable(_:) API に 0x7670303 (FourCode で vp09) を渡すと有効化できます。

このAPIを呼んで有効化した後に AVPlayer などに VP9 入り MP4 を読ませると普通に再生してくれます (ただし HW 支援がないと失敗するかも)。

詳しい呼び方は WebKit のこのへん https://trac.webkit.org/log/webkit/trunk/Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm を見るとよいでしょう。

(GitHub の webkit/webkit にはまだ同期されてないようなので注意。 qtwebkit/webkit-mirror とか見るといいかも)