Homebrew SwitchWave: a hardware-accelerated media player

  • Thread starter Thread starter averne
  • Start date Start date
  • Views Views 32,137
  • Replies Replies 56
  • Likes Likes 56

averne

Well-Known Member
Member
Joined
Jan 21, 2020
Messages
216
Reaction score
669
Trophies
0
XP
2,721
Country
France
banner.png


SwitchWave is a media player for the Nintendo Switch, which aims at providing a smooth and feature-complete experience, for both quick playback and video enthusiasts.
It builds on ffmpeg and mpv for stability and broad compatibility.


Release | Source code

Features
  • Hardware decoding for all codecs supported by the Switch (MPEG1/2/4, H264, H265, VP8, VP9, VC1, and MJPEG)
  • Rich, dynamic interface for all relevant playback settings
  • Built-in config editor for mpv and in-app settings
  • Efficient GPU video rendering using deko3d
  • Native audio backend supporting up to 5.1 channel layouts
  • Network playback of SMB, NFS and SFTP shares
  • External USB drive support via libusbhsfs

Installation
Uncompress the release archive to the root of your SD card (be careful to not overwrite folders).
The release archive is bundled with sensible settings for mpv, which can be completed in-app via the editor.
A help tab is provided for usage reference.

Screenshots
378985653-09aed446-148a-4276-8b07-336890c224a3.jpg
378985648-6e354511-47bc-4898-881c-348d5a9e6fbc.jpg

378985655-b86eb7c6-4229-46c6-8709-86d1a6ee8eed.jpg
378985659-70f4be3e-fa1e-434a-b76c-4fb6b671f80e.jpg
 
Last edited by averne,
While more options are always welcomed, what advantages has this over mpv?
mpv isn't available natively on the Switch.
I believe this project is what would get closest to a desktop media player experience, with a powerful playback interface, and near-complete support for mpv's wide breadth of options, both at runtime via the console, and offline via the config editor.
I also put a lot of effort into ensuring good stability and responsiveness.
 
Sorry, I wrote mpv instead of nxmp.
Same question. nxmp has hardware support, not very stable but i've watched a few movies from start to finish.
Thank you for your contributions, anyway.
 
mpv isn't available natively on the Switch.
I believe this project is what would get closest to a desktop media player experience, with a powerful playback interface, and near-complete support for mpv's wide breadth of options, both at runtime via the console, and offline via the config editor.
I also put a lot of effort into ensuring good stability and responsiveness.
does it work for shoujo ramune
 
Very nice.

Got my Plex Media folder on my NAS set with NFS permissions, and now in portable mode, I'm streaming LotR: Fellowship. 4k x265 HDR10 video, 7.1ch AAC, and even using VOBSUB-encoded english subtitles. Not a hitch to be seen.

2024102315050500-638E7E1EEC4CD8A239243633C0345A07.jpg



I will say though that using the "Recent" tab to get back into the movie, I was getting a loading failed (-13) dialog, but going through directories to it directly was fine. Tried the same with The Hobbit: An Unexpected Journey, and it was fine with the Recent tab.
 
This is awesome! Tried to stream several 4k HEVC 10 bit movies from my NAS, even some HDR ones with bitrate up to 30-40mbps, not a single dropped frame. I don't even know switch has hardware decoder for HEVC videos. Great work, thank you so much, now I can use my switch as a media player
 
I did accidentally enter into a "#recycle" directory on my shared folder, and it locked up the entire system. Since I have no need for a recycle bin there and it's meant to be read-only, I deleted it on my end.

In my Plex Media directory, I also have music, so I gave that a try, and that works too. So far MP3 and FLAC are working, with showing the cover image if one is available.

edit:

Regarding the "loading failed (-13)" error I experienced with the Recent tab when trying to load LotR:Fellowship, it seems when I am hovering over the particular entry, in the Description where it displays the file name, it's not printing it out in full correctly. Where it should print the extension ("mkv" in this case), it instead is showing some junk like "?m9". So I imagine it's trying to load based on that, and fails. The name in question is long at 107 characters, which includes the extension. I'll go ahead and enter that into the Issues tab.

Double-checking the actual entry in its directory, it displays the Name on the side just fine, so something about how it stores it into the history?

So, taking into account the overall length of the path of the file and the filename itself, it came to 259 characters. So I am going to assume there is a limit of 255 or 256 characters per entry, because I just tested another movie deep in some long path names, and that got jumbled even more.
 
Last edited by DiscostewSM,
I did accidentally enter into a "#recycle" directory on my shared folder, and it locked up the entire system. Since I have no need for a recycle bin there and it's meant to be read-only, I deleted it on my end.

In my Plex Media directory, I also have music, so I gave that a try, and that works too. So far MP3 and FLAC are working, with showing the cover image if one is available.

edit:

Regarding the "loading failed (-13)" error I experienced with the Recent tab when trying to load LotR:Fellowship, it seems when I am hovering over the particular entry, in the Description where it displays the file name, it's not printing it out in full correctly. Where it should print the extension ("mkv" in this case), it instead is showing some junk like "?m9". So I imagine it's trying to load based on that, and fails. The name in question is long at 107 characters, which includes the extension. I'll go ahead and enter that into the Issues tab.

Double-checking the actual entry in its directory, it displays the Name on the side just fine, so something about how it stores it into the history?

So, taking into account the overall length of the path of the file and the filename itself, it came to 259 characters. So I am going to assume there is a limit of 255 or 256 characters per entry, because I just tested another movie deep in some long path names, and that got jumbled even more.
Good find about the path length thing, that's probably the reason for the bug.
As for the #entry thing, it's probably a bad interaction with imgui.
I'll get on those when I have a chance.
 
Impressive, I never expected we would get that many options on the Switch. While I wanted to use Switchfin (Jellyfin) for when I get my Synology NAS, I'll definitely also try out this one to see if it plays my media better.

Thank you for your work!
 
USB support is just plug-and-play into any available USB port in docked, or you need enable something else?
 
  • Like
Reactions: nWo
This is awesome! Tried to stream several 4k HEVC 10 bit movies from my NAS, even some HDR ones with bitrate up to 30-40mbps, not a single dropped frame. I don't even know switch has hardware decoder for HEVC videos. Great work, thank you so much, now I can use my switch as a media player
I've tested samples up to 300Mbps 4k 10bit HEVC that played fine, so yeah I would expect 40Mbps to be fine :D
 

Site & Scene News

Popular threads in this forum