A hardware-accelerated media player for the Nintendo Switch, built on mpv and FFmpeg.
- Custom hardware acceleration backend for FFmpeg, with dynamic frequency scaling. The following codecs can be decoded:
- MPEG1/2/4
- VC1
- H.264/AVC (10+ bit not supported by hardware)
- H.265/HEVC (12+ bit not supported by hardware)
- VP8
- VP9 (10+ bit not supported by hardware)
- Custom graphics backend for mpv using deko3d, supporting:
- Playback at 4k60fps
- Direct rendering (faster software decoding)
- Custom post-processing shaders
- Custom audio backend for mpv using native Nintendo APIs, supporting layouts up to 5.1 surround
- Network playback through Samba, NFS or SFTP
- External drive support using libusbhsfs
- Rich and responsive user interface, even under load
- Download the latest release, and extract it to the root of your sd card (be careful to merge and not overwrite folders)
- Network shares can be configured through the app, as can mpv settings via the built-in editor (refer to the manual)
- Most relevant runtime parameters can be dynamically adjusted during playback through the menu, or failing that, the console (manual)
The build process is roughly outlined in the following:
- Set up a devkitpro environment for Switch homebrew development.
- Install the following packages:
switch-bzip2,switch-dav1d,switch-freetype,switch-glm,switch-harfbuzz,switch-libarchive,switch-libass,switch-libfribidi,switch-libjpeg-turbo,switch-libpng,switch-libwebp,switch-libssh2,switch-mbedtls,switch-ntfs-3g,switch-lwext4andswitch-pkg-config. In addition, the following build dependencies are required:dkp-meson-scripts,dkp-toolchain-vars, and Gimp. - Compile and install a GPL build of libusbhsfs.
- Compile and install libsmb2 and libnfs.
- Configure, compile and install FFmpeg:
make configure-ffmpeg && make build-ffmpeg -j$(nproc). - Configure, compile and install libuam:
make configure-uam && make build-uam. - Configure, compile and install mpv:
make configure-mpv && make build-mpv. - Finally, compile the main application and build the release distribution:
make dist -j$(nproc). - Output will be found in build/
- Behemoth for the screenshot button overriding method.



