NXMP Nintendo Switch Media Player

nxmp-banner.jpg


NXMP is an open-source Nintendo Switch media player based on MPV and FFMPEG, supporting a wide range of media file formats and codecs.
NXMP is coded by @proconsule54 and @darkxex

It support HTTP,FTP,SFTP,Samba,NFS streaming and it also support Enigma2 decoders. Starting from 0.7.0 Version it features HW Decoding for H264,HEVC,VP9,VP8,MPEG2 up to 4K HDR@30fps


Project repository|Stable Build
Stable: v0.9.3​



Features:
  • HW Decoding for (H264,HEVC,VP9,VP8,MPEG2)​
  • Extense support of media file formats and codecs, including audio too as well​
  • Touch and controller support, control the MP as you want​
  • Video deinterlace support​
  • Advanced image settings, configure the brightness and color options, change aspect ratio and rotate the screen​
  • Custom subtitles, you can configure options like color, text size and position to your preferences​
  • Full sound EQ, allow adjust the sound equalizer to your preferences, you can define presets too​
  • Chapters navigator with titles support​
  • Selector of Video/Audio/Subtitle tracks during play​
  • Playlist queue, allow to enque desired files on a playlist for non-stop play​
  • Resume play, you can continue your videos where you previusly stop it​
  • Watch status, watched videos are marked as green on file explorer​



Media sources supported:
  • Nintendo Switch SD Card
  • USB drive attached to dock or Switch with USB C adapter (FAT, NTFS and EXT4, up to 32 drives)
  • HTTP/S files through network
  • FTP and SFTP files
  • Samba (SMB) files shared throught network
  • NFS
  • Enigma2 (allow to view TV channel from satellite decoders compatible with this protocol)


Screenshoots:

2021110300034400.jpg2021110300031500.jpg2021110300032100.jpg2021110300023000.jpg



Post here any kind of bug/suggestions.
Enjoy!

Thanks to libusbhsfs https://github.com/DarkMatterCore/libusbhsfs for USB drives support
Thanks to @averne for HW Decoding FFMpeg! and for many many hints
Thanks to @bodyXY for the banner and the icons!
Thanks to @Godorowski for player UI design and releated icons
Thanks to @Chocola for beta testing a player guide
 
Last edited by proconsule54,
Ocurrs the same to my kid, It is very cold and he didn't stop playing with his friends without care of it.

Two weeks ago got sick, he recover and want to go to school the last day because halloween party, and only on this day, he back again sick.

They are children, they are things that will continue to happen but the positive point is that they recover easily.

I'm happy to read that he are recovering xP
Same for me 🙄, even if my two children are used to though conditions leaving in the mountains, they still get ill sometimes. Most of the time, being at school with friends. 🙄.
 
This feature is as useless as fun (in my opinion). since i dont have access to HW decoder ad so the GPU is nearly unused i want to stress it a bit with something....so why not have fun with shaders...... as far as i know the GPU of switch is pretty powerful for some basic shaders....
As i said are useless but fun and it doesn't impact the code (as they are external shaders files).
an example:

shader-test.jpg

Stupid, useless, but fun.
They can become more usefull for audio playback (i am working on getting the audio sample back in some way) for have cool vis plugins.
This test is from a video (007).

and also they can be added by users!.
This can be done thanks to mpv that gives access to adding shaders. just adapt it a bit.

to see what shaders can do take a look at this https://www.shadertoy.com/

Enjoy my madness....:wacko:
 
All modularity of homebrew are awesome and usefull, this allow users to implement their custom shaders and filters ^^

I investigate about HW decoder, it's accesible and working with Ubuntu, but didn't find any hint or documentation for Horizon OS :/

The overclock option for 1080p proposed before seems a good workarround meanwhile HW decoder can't be implemented, obviusly disabled by default and with warning with possible negative effects when you try to enable it.
 
Who is intrested into porting a shadertoy shader to MPV (and to NXMP also in near future) is a simple process.
i will write a really simple guide to do so its just a matter of giving the right coordinate system.
 
The overclock option for 1080p proposed before seems a good workarround meanwhile HW decoder can't be implemented.
If I understood how NXMP works, 🤔. No need to overclock GPU or RAM ? Only the CPU ? Will do tests with some 1080p sources I have and running well on other “media players”.
 
  • Like
Reactions: proconsule54
If I understood how NXMP works, 🤔. No need to overclock GPU or RAM ? Only the CPU ? Will do tests with some 1080p sources I have and running well on other “media players”.

Some users report a bit lagging on 1080p videos, personally didn't see any problem playing my medias.

For now, libnx don't have access to GPU hardware decoder, so the only way it's assign the decoder task to CPU.

The CPU isn't the best option for this tasks and seems that sometimes lag a bit with 1080 videos on stock clock, the same users that report this afirm that with a OC the issues get solved.

GPU and RAM are unnecesary to OC, all decoding task its over CPU for now.
 
GPU is used only for some process inside the decoding chain (colorspace conversion if i am not wrong) scaling and if you use it the deinterlace i have implemented (that is a shader) all of them uses low resources on gpu so an overclock here is not important.
i am looking deeply at the open source HW decoding code of linux, it is not impossible to achive in horizonOS but i need time to figure out how to get it working,

I am sure that libnx guys are also looking at it, ther is no trace of hevc decoding but h264 4k is possible (with some colorspace error of course)
 
  • Like
Reactions: Chocola
i am looking deeply at the open source HW decoding code of linux, it is not impossible to achive in horizonOS but i need time to figure out how to get it working,

I am sure that libnx guys are also looking at it, ther is no trace of hevc decoding but h264 4k is possible (with some colorspace error of course)

I don't want to be the bad guy but you might be wasting your time.

Nvidia uses to bundle a big blob in their privative linux drivers, which handles almost everything related to the hardware. The open source libraries that you can inspect are mostly stubs.
 
  • Like
Reactions: proconsule54
I don't want to be the bad guy but you might be wasting your time.

Nvidia uses to bundle a big blob in their privative linux drivers, which handles almost everything related to the hardware. The open source libraries that you can inspect are mostly stubs.

yes they are incomplete at the moment but gave some resources on how it works.
the real deal is when Nouveau driver will release something for tegra hw decoder (the 3d acceleration was taken there).
 
Awesome Homebrew by an Awesome Dev I must say.
Thank you very much for your hard work on this.
I can say it does an excellent job at its current stage (I'm playing everything I want and amazingly enough the UI is simple and fast!!!)
Only suggestion "if possible": 1) dpad up & down to control volume / 2) resume playback where left.
 
Awesome Homebrew by an Awesome Dev I must say.
Thank you very much for your hard work on this.
I can say it does an excellent job at its current stage (I'm playing everything I want and amazingly enough the UI is simple and fast!!!)
Only suggestion "if possible": 1) dpad up & down to control volume / 2) resume playback where left.
Thanks, the resume exist but must be activated in settings menu.

the dpad suggestion is good.
 
  • Like
Reactions: Zumoly and Chocola
Thanks, the resume exist but must be activated in settings menu.

the dpad suggestion is good.

Isn't redundant having a dedicated volume buttons?

I know the volume keys are more strong and hard to push than DPAD, but since smartphones almost everyone use the volume buttons instead other controlls.

Anyways seems good suggestion and usefull for some people, for example any that have volume buttons damaged, I'm just paranoid with redundant asigns to controlls because can be used to hotkey other actions (fast swtich of aspect ratio for example).

It's like my opinion of X and DPAD-Down buttons, the UX showed with "X" appear redundant too, because the new UX introduced with audio player its better and show more info.

The menu are better placed to "-" or "X", this are the menu keys on the mostly switch games and are the first keys that you try by intuition when you want to open menu.

This is the principal reason because I didn't commit the docs yet, seems that some controlls can be remaped better, but it's understantable when software are on early versions.

For HUD, the most intuitive case its pause the video (HUD fade in for a few seconds but if you didn't made any other input automatically fade out) or just touch the screen to show it a few seconds, I know that touch method can be polemic for accidental touchs, but the player have a lock controlls feature to prevent accidental inputs.

Just my opinion about controlls, most used controlls for Switch (mixed with things from Android Kodi, MX Player and VLC for touch inputs and gestures), obviusly not the preference of all, and maybe as future feature the posibility to remap controlls be a good idea to let people set the most confortable controlls for their preferences.
 
Last edited by Chocola,
Isn't redundant having a dedicated volume buttons?

I know the volume keys are more strong and hard to push than DPAD, but since smartphones almost everyone use the volume buttons instead other controlls.

Anyways seems good suggestion and usefull for some people, for example any that have volume buttons damaged, I'm just paranoid with redundant asigns to controlls because can be used to hotkey other actions (fast swtich of aspect ratio for example).

It's like my opinion of X and DPAD-Down buttons, the UX showed with "X" appear redundant too, because the new UX introduced with audio player its better and show more info.

The menu are better placed to "-" or "X", this are the menu keys on the mostly switch games and are the first keys that you try by intuition when you want to open menu.

This is the principal reason because I didn't commit the docs yet, seems that some controlls can be remaped better, but it's understantable when software are on early versions.

For HUD, the most intuitive case its pause the video (HUD fade in for a few seconds but if you didn't made any other input automatically fade out) or just touch the screen to show it a few seconds, I know that touch method can be polemic for accidental touchs, but the player have a lock controlls feature to prevent accidental inputs.

Just my opinion about controlls, most used controlls for Switch (mixed with things from Android Kodi, MX Player and VLC for touch inputs and gestures), obviusly not the preference of all, and maybe as future feature the posibility to remap controlls be a good idea to let people set the most confortable controlls for their preferences.
I agree with your argument for the most part but think of those who are watching videos in tabletop mode or using Bluetooth earbuds for example, that'll be super useful.
 
  • Like
Reactions: Chocola
@Chocola you are right, buttons need a remap, in the TODO list as high priority.
A beta version 0.5.1 named "ShaderMania is neraly ready for testers".

In docked mode a method to rise lower volume is needed.
 
  • Like
Reactions: Chocola
I agree with your argument for the most part but think of those who are watching videos in tabletop mode or using Bluetooth earbuds for example, that'll be super useful.

@Chocola you are right, buttons need a remap, in the TODO list as high priority.
A beta version 0.5.1 named "ShaderMania is neraly ready for testers".

In docked mode a method to rise lower volume is needed.

True, these cases need DPAD for volume, I'm ok with that then xP

I'm ready to test when you upload it ^^

I try to build from sources but SQLite lib it's missing.
 
  • Like
Reactions: proconsule54
I am preparing all build instruction to get ffmpeg mpv and all others lib built

Beta sent in pm

First tests results sent to pm :)

With build info can contribute atleast with little things for now, the proposal of DPAD Volume control for example, letting you more free time xP
 
  • Like
Reactions: proconsule54
Thanks, the resume exist but must be activated in settings menu.

the dpad suggestion is good.
using the right analog stick would be a far better option. Kodi does that and it works perfectly, and you have already assigned some great uses to the Dpad while the right analog stick is completely unused.
 
  • Like
Reactions: proconsule54

Site & Scene News