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 (since v0.7.0) 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​
  • Shadermania, you can apply any shader compatible with MPV to NXMP​



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,
I will commit to github also a “guide” to build it (only linux right now)

I am polishing code, testing fixes, doing all type of tests (with diff type of servers/configs) , when all is “decent” i will commit all as always and make a stable release with it

Also a new rendering routine (with a spearate thread like SwitchWave, i take portions of code there, @averne is so skilled) will make stuff more stable

Enjoy!
Post automatically merged:

Side note, with all the changes (inside imgui and deko startup) there is no need for a splashscreen at startup, it just turns on :toot:
 
Last edited by proconsule54,
Time for a new openbeta.

https://mega.nz/file/XoMRWToL#JcIwOf6G8MCcfcEWqvftkLphdcxpuhcHcSJLaRIdMKk

this is a changelog of the work on openbeta1 and openbeta2

Code:
### Added

- Added new network config syntax (fixes password with @ and add pubkey auth for sftp connections)
- UPNP (same code of 0.8.0 with minor fixes)
- HW Deinterlace
- File based translations (using json files)

## Fixed

- NFS entry duplication
- Software decoding (broken on 0.9.0 deko3d version)
- USB Browser fixed (no more duplicated devices)

# Removed

- Shadermania (now NXMP uses only deko3d, no more opengl)

### Changes

- Changed Rendering routine in a more sane way
- Updated all libs to last version
- Updated brasilian translation

the new network syntax is this

Code:
Network from version 0.9.1 can also be added in this way

For SMB

[Samba Test]
server = 192.168.1.1
type = smb
username = USERNAME
password = PASSWORD
path = SHAREPATH

For ssh/sftp

[SSH Test]
server = 192.168.1.1
type = sftp
username = USERNAME
password = PASSWORD
path = REMOTEPATH
port = 22

sftp can also use pub/priv key for auth

[SSH Test]
server = 192.168.1.1
type = sftp
username = USERNAME
path = REMOTEPATH
pubkeypath = /switch/nxmp/sshkey/id_rsa.pub
privkeypath = /switch/nxmp/sshkey/id_rsa
port = 22

the langs folder contains the translations that was previous on header files, now are json you can edit/add what you want (only ENG and ITA are hard coded)


Issue so far:
Playlist is still very bugged i suggest to not use it (i will fix it)

I am writing a build guide that will be in github as BUILD.md file.

Was a massive ammount of work but i think NXMP deserve it.

I will fix the rest piror to release a new stable (this openbeta is better in terms of stability)

Enjoy!
Post automatically merged:

Have anyone tried it? it works better? let me know
Post automatically merged:

Ok time for stable release.

0.9.1
https://github.com/proconsule/nxmp/releases/download/v0.9.1/nxmp-0.9.1.zip


ALl the changes are commited to github, also https://github.com/proconsule/nxmp/blob/master/BUILD.md is a small guide to build it

also libsmb2 libnfs and sqlite3 are in libs directory ad PKGBUILD.

Enjoy!
 
Last edited by proconsule54,
So we have two good media players actively developed, switchwave and nxmp.
I presume that both have similar support for media formats.
@proconsule54 could you please explain the differences? Is nxmp more focused on being user friendly, for example? Thank you for sharing your efforts.
 
  • Like
Reactions: proconsule54
Time for a new openbeta.

https://mega.nz/file/XoMRWToL#JcIwOf6G8MCcfcEWqvftkLphdcxpuhcHcSJLaRIdMKk

this is a changelog of the work on openbeta1 and openbeta2

Code:
### Added

- Added new network config syntax (fixes password with @ and add pubkey auth for sftp connections)
- UPNP (same code of 0.8.0 with minor fixes)
- HW Deinterlace
- File based translations (using json files)

## Fixed

- NFS entry duplication
- Software decoding (broken on 0.9.0 deko3d version)
- USB Browser fixed (no more duplicated devices)

# Removed

- Shadermania (now NXMP uses only deko3d, no more opengl)

### Changes

- Changed Rendering routine in a more sane way
- Updated all libs to last version
- Updated brasilian translation

the new network syntax is this

Code:
Network from version 0.9.1 can also be added in this way

For SMB

[Samba Test]
server = 192.168.1.1
type = smb
username = USERNAME
password = PASSWORD
path = SHAREPATH

For ssh/sftp

[SSH Test]
server = 192.168.1.1
type = sftp
username = USERNAME
password = PASSWORD
path = REMOTEPATH
port = 22

sftp can also use pub/priv key for auth

[SSH Test]
server = 192.168.1.1
type = sftp
username = USERNAME
path = REMOTEPATH
pubkeypath = /switch/nxmp/sshkey/id_rsa.pub
privkeypath = /switch/nxmp/sshkey/id_rsa
port = 22

the langs folder contains the translations that was previous on header files, now are json you can edit/add what you want (only ENG and ITA are hard coded)


Issue so far:
Playlist is still very bugged i suggest to not use it (i will fix it)

I am writing a build guide that will be in github as BUILD.md file.

Was a massive ammount of work but i think NXMP deserve it.

I will fix the rest piror to release a new stable (this openbeta is better in terms of stability)

Enjoy!
Post automatically merged:

Have anyone tried it? it works better? let me know
Post automatically merged:

Ok time for stable release.

0.9.1
https://github.com/proconsule/nxmp/releases/download/v0.9.1/nxmp-0.9.1.zip


ALl the changes are commited to github, also https://github.com/proconsule/nxmp/blob/master/BUILD.md is a small guide to build it

also libsmb2 libnfs and sqlite3 are in libs directory ad PKGBUILD.

Enjoy!
Hi,

Just tested the 0.9.1 released in github as stable.
Have some stuff to report:

When Turned on the DB and it says:
- Dbfile Corruted( had this issue before but can't remember how i solved it) to be honest, it was a work around actually that I made, if you have a fix It would be appreciated cause i thought i backed up the old version but, no.. : (
it is all gone now.

Just updated my translation:
- As soon as i try to save via GUI the new choice of lang to my, the app won't let me back to the landpage, meaning pressing B button won't take any effect had to press Y to back to my media list, tried to load content.. but nothing, the app crashed, try to boot again back to recheck (change the lang) back to English it won't let me at all.

Also:
After change to my language it won't save the change at all as well : ( it says: save changes > yes > exit > reboot the app > it come back in English.

To work around it:
Go to the lang option list > change to any language (don't go back) > change to English again > confirm the changes saving it then > Y > (to return to main window options) > exit. Try to boot the NxMp again. now it should work properply.

Update:
Happening in openBeta 2 as well if matters.

Update 2:
I figure out how to 'fix' the db corrupted thing Finally LOL..

The config.ini comes with: /switch/nxmp/nxmp.db
My forwarder is pointing to: /switch/NxMp-0.9.1/nxmp.db

Meaning, it won't let me create the DB at all this way, it needs to point to exactly the name of the path/file etc...
I'm dumb sorry about that. It's because i like to use more than one version (stable/beta)etc. that it causes this mess lol.

Thanks again for your effort with the app!
 
Last edited by andersoncardoso,
  • Like
Reactions: proconsule54
Thanks for the feedback!

I fixed on github the source for the language selection/save if anyone want to compile it.

I will release a new version with other fix when all is done.
Post automatically merged:

Now i am reviewing playlist system.
Any bugs on video decoding? (Hope none)
 
Last edited by proconsule54,
Fixed playlist for local fs and usb, disabled on remote

commited to github
Post automatically merged:

i am fixing also archive read from usb.

And i am working on a secret cool and exclusive feature….

Enjoy!
 
Last edited by proconsule54,
  • Like
Reactions: FFTW and ber71
The only issue with pdf is the huge size of the lib, that makes nxmp from 29mb to 64mb.
But rendering pdf can be useful in many way so not that bad
 
The guiless mode for file argv playback is still very quick
Post automatically merged:

https://github.com/proconsule/nxmp/releases/tag/v0.9.2

Happy new release


## [0.9.2]

### Added

- PDF file support

## Fixed

- fixed archive file seek (useful for playback video file inside an archive)
- fixed archive reading from USB
- playlist from local sdcard and USB drives
- settings language selection/save


Enjoy!
 
Last edited by proconsule54,
The guiless mode for file argv playback is still very quick
Post automatically merged:

https://github.com/proconsule/nxmp/releases/tag/v0.9.2

Happy new release


## [0.9.2]

### Added

- PDF file support

## Fixed

- fixed archive file seek (useful for playback video file inside an archive)
- fixed archive reading from USB
- playlist from local sdcard and USB drives
- settings language selection/save


Enjoy!
woah thank you so much going to use it now.
 
  • Like
Reactions: proconsule54
This isn't the cool feature i was talking about but might be useful, NXMP can open PDF and render it quite well
i am using mupdf (that is already on switch portlibs) and it works very well!

Enjoy (expect a release soon)
Just to provide a counter opinion, I really like the PDF feature and I'd love to see it kept in! But it's up to you, of course.
 
Is pdf rendering working well?

Hi, even though I don't have much use for this feature, I tested the PDF handling since you haven't got any responses. I tested PDFs of multiples sizes, all of them open just fine (the biggest one was over 200MB). Navigation is very smooth and responsive, but I would love to have an option to read the PDF files with the Switch in vertical position, that would be great for eBooks. Now for the issues, no matter what I do, after going though a few pages of the PDF, the Switch freezes for a while then shows the error "The software was closed because an error occurred".

This a very cool software and I really appreciate your efforts in improving it. If I may suggest a feature, I would love to see some better handling of .m3u files, something that shows them in a playlist style instead of individual links. Thanks again for this cool software!
 
Last edited by HiroshiYamauchi,
Thank you @proconsule54 for all your hard work. I'm a big fan since the beginning and truth be told, this app is a Godsend. So many good times testing and enjoying the app.

As stated above, after some pages the PDF crashes. Not sure what triggers it, I have used small and medium size PDF's.

Now, I don't know how difficult or out of context could it be, but, could the app someday read .cbr files? I loved some comic readers on my switch but sadly, they are outdated and don't have support on newer firmwares.

Just a suggestion, the app is great as it is! Thanks for the PDF reader, looking forward to keep testing it until it reaches perfection.
 
Thank you @proconsule54 for all your hard work. I'm a big fan since the beginning and truth be told, this app is a Godsend. So many good times testing and enjoying the app.

As stated above, after some pages the PDF crashes. Not sure what triggers it, I have used small and medium size PDF's.

Now, I don't know how difficult or out of context could it be, but, could the app someday read .cbr files? I loved some comic readers on my switch but sadly, they are outdated and don't have support on newer firmwares.

Just a suggestion, the app is great as it is! Thanks for the PDF reader, looking forward to keep testing it until it reaches perfection.
You supported me a lot, with testing and translation. Thanks also for all the suggestions!

For cbr files they should be normal rar files, easy to support it
 
Does NXMP support refresh rate changing?
What I mean is, if you start a 24fps video, does the Switch display adjust itself to 24hz, so it doesn't stutter every few seconds?

Or ar least in docked mode?
I saw this FPSLocker plugin and it seems to do just that for games.
 
Last edited by FR0ZN,

Site & Scene News

Popular threads in this forum