Homebrew Homebrew app [Release] Video player for 3DS

avichou

New Member
Newbie
Joined
Feb 8, 2022
Messages
4
Trophies
0
Age
21
Location
france
XP
30
Country
France
What command are you trying to use?
Code:
ffmpeg -i INPUT -filter_complex "split[l][r];[l]stereo3d=sbsl:ml[left];[r]stereo3d=sbsl:mr[right]" -map [left] -map 0:a -c:a copy left.mkv -map [right] -map 0:a -c:a copy right.mkv
macOS 12.2.1 ,terminal .
video is right and left so correct command.

outputs "zsh: no matches found:"

maybe i didnt put the filename correctly in strings ,but i tried with 1)no string 2) quotes"" 3)<>​
 
  • Like
Reactions: Core_2_Extreme

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
393
Trophies
0
Age
34
Location
California
XP
1,585
Country
United States
Hmm... I see you're adding AV1 support. What kind of decoding speed can N3DS get with such a new codec?

I also noticed some changes related to images. Are you going to implement an image viewer, on top of the video and audio player functionality? :O
 
  • Like
Reactions: Core_2_Extreme

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
132
Trophies
0
Age
20
XP
883
Country
Japan
Code:
ffmpeg -i INPUT -filter_complex "split[l][r];[l]stereo3d=sbsl:ml[left];[r]stereo3d=sbsl:mr[right]" -map [left] -map 0:a -c:a copy left.mkv -map [right] -map 0:a -c:a copy right.mkv
macOS 12.2.1 ,terminal .
video is right and left so correct command.

outputs "zsh: no matches found:"

maybe i didnt put the filename correctly in strings ,but i tried with 1)no string 2) quotes"" 3)<>​
For me, your command line worked and generated left.mkv and right.mkv.
Are you trying to encode your video as 3d video?
 

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
132
Trophies
0
Age
20
XP
883
Country
Japan
Hmm... I see you're adding AV1 support. What kind of decoding speed can N3DS get with such a new codec?

I also noticed some changes related to images. Are you going to implement an image viewer, on top of the video and audio player functionality? :O
According to my tests, N3DS can decode up to [email protected] (of course it deoends on video type) with 3 threads (core #1, #2 and #3).
For single thread decoding, it drops around [email protected]

I'm not planning on adding "image viewer" but I added support for mp3 with picture so you can use it as image viewer if you want.
For audio player, yes, I added "disable video" so that you can listen to only music if you want.
 
  • Like
Reactions: AleronIves

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
99
Trophies
0
Age
36
XP
322
Country
Italy
I'm trying to compile this from master and this is what I get:

[email protected] Video_player_for_3DS % make
Building 3dsx...
linking Video_player_for_3DS.elf
/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: /Users/max/Downloads/Video_player_for_3DS/library/libctru/lib/libctru.a(syscalls.o): in function `__system_initSyscalls':
C:\Users\cache\Documents\GitHub\libctru-master\libctru\release/C:/Users/cache/Documents/GitHub/libctru-master/libctru/source/system/syscalls.c:65: undefined reference to `__syscalls'
collect2: error: ld returned 1 exit status
make[1]: *** [/Users/max/Downloads/Video_player_for_3DS/Video_player_for_3DS.elf] Error 1
make: *** [all] Error 2

I'm on macOS 10.15.7 with latest devkitPro 3ds-dev etc installed. I already successfully compiled other things (like Luma3DS) so the tools are working.
Perhaps I'm missing some dependency? I don't know...
 
  • Like
Reactions: Core_2_Extreme

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
132
Trophies
0
Age
20
XP
883
Country
Japan
I'm trying to compile this from master and this is what I get:



I'm on macOS 10.15.7 with latest devkitPro 3ds-dev etc installed. I already successfully compiled other things (like Luma3DS) so the tools are working.
Perhaps I'm missing some dependency? I don't know...

I fixed the problem, it should work now,
Clone the newest commit and try again.
 

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
99
Trophies
0
Age
36
XP
322
Country
Italy
I fixed the problem, it should work now,
Clone the newest commit and try again.

Hi that fixed it however you include linux versions of both makerom and bannertool and try to use those by default in your Makefile so on a Mac that last stage simply fails.
My workaround has been to replace those binaries with a symlink to the Mac binaries I already had installed (or I could've edited the Makefile).

You might consider not carrying the binaries at all and specify them as dependencies. If someone is compiling your app should be able to compile them as well if needed

EDIT: I installed it and both the 3dsx and cia crash on my New 2DS XL, I opened an issue on GitHub with pictures and the crash dumps
 
Last edited by Yrouel,
  • Like
Reactions: Core_2_Extreme

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
132
Trophies
0
Age
20
XP
883
Country
Japan
v1.5.0 release

Subtitles have been supported (*0)
Disable video, audio and subtitle have been added
Audio desync has been fixed
AV1 videos have been supported
The problem some video won't play smoothly in sw decoder has been fixed
Screen brightness adjustment function has been added (DPAD "↑" and "↓")
Other minor changes
*0 No style support, only plain text

On NEW 3(2)DS, it is recommended to use patched Luma3DS for better performance.


Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.5.0
 
Last edited by Core_2_Extreme,

NitroXL

Member
Newcomer
Joined
Mar 11, 2022
Messages
11
Trophies
0
Location
bobux land
XP
50
Country
United Kingdom
Video player for 3DS

Discord channel : https://discord.gg/MMsAXvetpR

If you want to watch youtube video on new 3ds, you can use thirdtube (developed by @windows_server_2003)

v1.5.0
Subtitles have been supported (*0)
Disable video, audio and subtitle have been added
Audio desync has been fixed
AV1 videos have been supported
The problem some video won't play smoothly in sw decoder has been fixed
Screen brightness adjustment function has been added (DPAD "↑" and "↓")
Other minor changes
*0 No style support, only plain text
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.5.0

v1.4.2
Unexpected touch in Nintendo's home menu has been fixed
Multi-threaded decoding stability has been fixed and it is enabled by default
Seeking stability has been fixed
Repeat, in order, random playback mode have been added
Other minor changes
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.4.2

v1.4.1
The "FSUSER_OpenFile() failed" error has been fixed
Adjusted font and button size in settings menu
Multi-threaded decoding is disabled by default because it has stability problem
Polish(Polski) translation has been added (by JustScratchCoder)
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.4.1

v1.4.0
Decoded image(raw) buffer has been added and it makes playback
much much much much better (especially on OLD3DS)
Spanish(español) translation has been added (by Cookiee)
Romanian(Română) translation has been added (by Tescu48)
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.4.0

v1.3.3
'aspect ratio 10:3 mode' has been changed to 'correct aspect ratio mode' (follow sar value(*0))
Color conversion speed has been improved
Simplified Chinese(简体中文) translation has been added (by LITTOMA)
Italian(italiano) translation has been added (by dixy52-beep)
*0 if video size is 800x240 and no sar value is set, it autmatically apply sar 1:2
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.3.3

v1.3.2
Added aspect ratio 10:3 mode (for 800x240 videos)
Added disable resize and move video mode
Added remember video pos mode (resume from that pos next time)
Other minor changes
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.3.2

v1.3.1
Volume adjustment has been added (from 0% to 999%)
Direction pad seeking has been added (from 1 second to 99 seconds)
Hungarian(magyar) translation has been added (by vargaviktor)
Other minor changes
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.3.1

v1.3.0
The video that has more than one audio tracks has been supported (Press Y key-> select audio track to select track)
Multi-threaded decoding has been supported (Press Y key-> use multi-threaded decoding to toggle)
Hardware decoder has been merged (Press Y key-> use hw decoder to toggle)
Full screen mode has been supported (Press select key to toggle)
Other minor changes
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.3.0

v1.2.0
Hardware decoding won't work in .cia has been fixed
Hardware decoding won't work in some resolution has been fixed
Added hardware color conversion for software decoder
Added 3D video support(*)
Other minor changes and optimization

* New 3DS or 3DS only, software decoder only, in order to see 3D video as 3D you need to enable 3D mode in settings(settings->LCD->Screen mode->3D)
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.2.0

v1.1.1
Video will not be decoded correctly in hardware decoder has been fixed
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.1.1

v1.1.0
Added hardware decoder (β)
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.1.0

v1.0.1
Added allow skip frames option
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.0.1

v1.0.0
Initial release
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.0.0

Source : https://github.com/Core-2-Extreme/Video_player_for_3DS

View attachment 255791

Features
Hardware accelerated decoding(*0)✅
Hardware accelerated color conversion✅
Multiple video codec support(MPEG4, H.264, H.265, Motion Jpeg) ✅
Multiple audio codec support(mp1, mp2, mp3, ac3, aac, ogg, pcm audio) ✅
Seek ✅
3D video(*1)✅
Zoom in/out video ✅
Move video ✅
File explorer ✅

⚠️ *0 New 3DS and New 2DS only
⚠️ *1 New 3DS and 3DS only, software decoder only, in order to see 3D video as 3D
you need to enable 3D mode in settings(settings->LCD->Screen mode->3D)
How to convert your 3d video for 3DS : https://gbatemp.net/threads/release-video-player-for-3ds.586094/page-10#post-9575227 (by T0biasCZe)

Performance
⚠️ Decoding speed depends on encoder option, video type, video scene, etc...
⚠️ This table shows average fps, so you may hear stutter audio if you use this framerate.
(Lower video resolution or framerate in that case)
Software decoding in this table uses only one thread not multi-threaded decoding.

MPEG1video​

MPEG1video test file was encoded following command :
ffmpeg -i {input_file_name} -acodec copy -vcodec mpeg1video -s {width}x{height} -r 30 -q:v 15 {output_file_name}


MPEG1video256x144 (144p)426x240 (240p)640x360 (360p)800x240854x480 (480p)
OLD3DS Software decoding69.0fps39.9fps24.0fps27.4fps16.7fps
NEW3DS Software decoding532.0fps267.2fps119.8fps158.0fps69.4fps

MPEG2video​

MPEG2video test file was encoded following command :
ffmpeg -i {input_file_name} -acodec copy -vcodec mpeg2video -s {width}x{height} -r 30 -q:v 15 {output_file_name}


MPEG2video256x144 (144p)426x240 (240p)640x360 (360p)800x240854x480 (480p)
OLD3DS Software decoding67.1fps37.6fps22.3fps26.3fps15.4fps
NEW3DS Software decoding518.8fps254.2fps113.9fps145.7fps65.9fps


H263+​

H263+ test file was encoded following command :
ffmpeg -i {input_file_name} -acodec copy -vcodec h263p -s {width}x{height} -r 30 -q:v 15 {output_file_name}


H263+256x144 (144p)424x240 (240p)640x360 (360p)800x240856x480 (480p)
OLD3DS Software decoding62.8fps35.6fps21.1fps24.6fps8.7fps
NEW3DS Software decoding527.9fps257.8fps113.1fps144.2fps33.9fps


H264​

H264 test file was encoded following command :
ffmpeg -i {input_file_name} -acodec copy -vcodec libx264 -s {width}x{height} -r 30 -preset fast -profile:v baseline {output_file_name}


H264256x144 (144p)426x240 (240p)640x360 (360p)800x240854x480 (480p)
OLD3DS Software decoding30.7fps15.9fps8.8fps10.2fps5.4fps
NEW3DS Software decoding226.7fps95.1fps43.4fps53.2fps25.1fps
NEW3DS Hardware decoding560.6fps338.7fps206.0fps235.3fps114.7fps


H265​

H265 test file was encoded following command :
ffmpeg -i {input_file_name} -acodec copy -vcodec libx265 -s {width}x{height} -r 30 -preset fast -profile:v main {output_file_name}


H265256x144 (144p)426x240 (240p)640x360 (360p)800x240854x480 (480p)
OLD3DS Software decoding22.4fps11.3fps6.2fps7.2fps3.9fps
NEW3DS Software decoding136.8fps55.7fps26.4fps30.9fps15.3fps


Supported video codec
Motion jpeg
MPEG4 (MPEG4 part2)
MPEG1video
MPEG2video
H.263
H.263+
H.264 (MPEG4 part10)
H.265 (HEVC)

Supported audio codec
mp1 (MPEG audio layer 1)
mp2 (MPEG audio layer 2)
mp3 (MPEG audio layer 3)
ac3
aac (Advanced audio coding)
ogg (Vorbis)
pcm audio

Controls
A : Play/Pause
B : Stop
Y : Debug
X : Select file
R : Zoom in
L : Zoom out
C/DPAD : Move video
touch the bar : Seek
could you add a slightly better GUI? It looks pretty bare-bones to me.
 
  • Like
Reactions: Core_2_Extreme

Zeninari

Active Member
Newcomer
Joined
Apr 24, 2021
Messages
44
Trophies
0
Age
18
XP
100
Country
United States
v1.5.0 release

Subtitles have been supported (*0)
Disable video, audio and subtitle have been added
Audio desync has been fixed
AV1 videos have been supported
The problem some video won't play smoothly in sw decoder has been fixed
Screen brightness adjustment function has been added (DPAD "↑" and "↓")
Other minor changes
*0 No style support, only plain text

Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.5.0

Thanks For The Patch (i can finally play my tagged files properly :‍P) And I Can Finally Manage Brightness Easier So Thank You XD It Was Always Not So Bright Or Too Bright And Going Through The Menu Was A Hassle.

Edit: not really a big deal but pausing doesn't seem to work properly(tagged files) . . .
 
Last edited by Zeninari,
  • Like
Reactions: Core_2_Extreme

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
393
Trophies
0
Age
34
Location
California
XP
1,585
Country
United States
Did you set the aspect ratio flagging on the video correctly when you encoded it? If it's a 1.66:1 video (400x240) using 800x240 for 800px mode, the x264 --sar 1:2 switch should be used during encoding.
 
  • Like
Reactions: Core_2_Extreme
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Dark_Phoras @ Dark_Phoras:
    I have no idea what's happening with all my friends from other places
    Gift
  • KenniesNewName @ KenniesNewName:
    It's weird people in their mid 50s-20s seems to like social media more than TikTok and YouTube
    Gift
  • KenniesNewName @ KenniesNewName:
    Unless they get paid to upload videos
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I used TikTok a couple of days and got tired
    Gift
  • Dark_Phoras @ Dark_Phoras:
    But it's still better than Facebook
    Gift
  • KenniesNewName @ KenniesNewName:
    One dude here swore I was trolling him on twitch and I never even used it
    Gift
  • Dark_Phoras @ Dark_Phoras:
    But that's a thing with social media; it creates an illusion of proximity, when in truth everyone is overwhelmed with all the information and all the social demands in the platforms
    Gift
  • Dark_Phoras @ Dark_Phoras:
    And a lot of people are addicted to the phone, checking social media or talking with someone. Some exercise in the gym while being glued to the phone, not even activity takes them away from it
    Gift
  • Dark_Phoras @ Dark_Phoras:
    And I was like that too, until I left social media. Now sometimes I'm grabbing my phone, opening the browser and thinking: I've seen everything I wanted to see, I don't have a reason to use the phone. And I put it down
    Gift
  • KenniesNewName @ KenniesNewName:
    I'd rather look at my phone than sit at a computer 24/7
    Gift
  • KenniesNewName @ KenniesNewName:
    Funnily when I'm out I hardly use my phone other than checking a message here and there
    Gift
  • KenniesNewName @ KenniesNewName:
    I'm mostly too busy making sure my neighbor doesn't get himself arrested
    Gift
  • Dark_Phoras @ Dark_Phoras:
    This evening two guys were speeding head first into my car in these:
    bolt-announces-a-custom-built-scooter-model-2-1024x536.jpg
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I didn't make case, I made my manoeuver to park the car. But I caught them off-guard, the one ahead hit the brakes and had to jump from the scooter. For a second I thought he would go against the car. They were trying to race through a gap they perceived, thinking I was going to always drive forward
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I guess they learned a valuable lesson, don't assume that real roads are a playground
    Gift
  • KenniesNewName @ KenniesNewName:
    I had a woman walk in the middle of the intersection once I was debating on flooring it
    Gift
  • Dark_Phoras @ Dark_Phoras:
    In those cases I honk
    Gift
  • KenniesNewName @ KenniesNewName:
    I need to get my uncle to install a cow horn
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Those scooters go 40km/h, and the kids were riding them with no helmets
    Gift
  • Dark_Phoras @ Dark_Phoras:
    And trying to make for the gap like they're Millennium Falcon
    Gift
  • KenniesNewName @ KenniesNewName:
    Annoying can't find any type c to usb adapters in my place at least they're like $3
    Gift
  • KenniesNewName @ KenniesNewName:
    Sweet found one installing emudeck
    Gift
  • KenniesNewName @ KenniesNewName:
    Lol stupid ips is blocking rom sites time for a vpn
    Gift
  • Gift
  • sley @ sley:
    hrth
    Gift
    sley @ sley: hrth