SwitchWave
Nintendo Switch向けのハードウェアアクセラレーション対応メディアプレーヤーで、mpvおよびFFmpegをベースに構築されています。機能
- FFmpeg用のカスタムハードウェアアクセラレーションバックエンド、動的周波数スケーリング対応。以下のコーデックをデコード可能:
- MPEG1/2/4
- VC1
- H.264/AVC(ハードウェアでは10ビット以上非対応)
- H.265/HEVC(ハードウェアでは12ビット以上非対応)
- VP8
- VP9(ハードウェアでは10ビット以上非対応)
- deko3dを使用したmpv用カスタムグラフィックスバックエンド、対応内容:
- 4k60fpsでの再生
- 直接レンダリング(ソフトウェアデコードの高速化)
- カスタムポストプロセスシェーダー
- ネイティブNintendo APIを使用したmpv用カスタムオーディオバックエンド、5.1サラウンドまでのレイアウトに対応
- HTTP/S、Samba、NFS、SFTPを介したネットワーク再生
- libusbhsfsを利用した外部ドライブサポート
- 負荷がかかっていても豊富でレスポンシブなユーザーインターフェース
スクリーンショット
セットアップ
- 最新リリースをダウンロードし、SDカードのルートに展開してください(フォルダを上書きせずにマージするよう注意)
- ネットワーク共有はアプリから設定可能で、mpvの設定も内蔵エディタで編集可能です(マニュアル参照)
- 再生中にメニューや、メニューが使えない場合はコンソールから動的にほとんどのランタイムパラメータを調整可能です(マニュアル)
ビルド
Docker(推奨)
./build-docker.sh
これはツールチェーンイメージを構築し、すべてを自動的にコンパイルします。出力は build/ にあります。デフォルトの GIMP 2 ではなく GIMP 3 でビルドするには:
GIMP_VERSION=3 ./build-docker.sh
マニュアル
- Switchホームブリュー開発用にdevkitpro環境をセットアップします。
- 次のパッケージをインストールします:
switch-bzip2、switch-dav1d、switch-freetype、switch-glm、switch-harfbuzz、switch-libarchive、switch-libass、switch-libfribidi、switch-libjpeg-turbo、switch-libpng、switch-libwebp、switch-curl、switch-libssh2、switch-mbedtls、switch-ntfs-3g、およびswitch-lwext4。さらに、次のビルド依存関係が必要です:switch-pkg-config、dkp-meson-scripts、dkp-toolchain-vars、およびGIMP(2または3)。 - libusbhsfsのGPLビルドをコンパイルしてインストールします。
- libsmb2とlibnfsをコンパイルしてインストールします。
- FFmpegを設定、コンパイル、インストールします:
make configure-ffmpeg && make build-ffmpeg -j$(nproc)。 - libuamを設定、コンパイル、インストールします:
make configure-uam && make build-uam。 - mpvを設定、コンパイル、インストールします:
make configure-mpv && make build-mpv。 - 最後に、メインアプリケーションをコンパイルし、リリース配布物をビルドします:
make dist -j$(nproc)。 - 出力は
build/に生成されます。
クレジット
- スクリーンショットボタンのオーバーライド方法についてはBehemothに感謝します。