Homebrew Homebrew app [Release] Video player for 3DS

RoundOxytocin

Member
Newcomer
Joined
Sep 22, 2020
Messages
16
Trophies
0
Age
47
XP
136
Country
Hungary
Great work. Is there any way to give reward?
Also tested on New 3DS XL, and works on XL too. (the release notes was not clear for me)

Just to give help for others to try the 3D video feature:
1. Download a 360p SBS (side-by-side) video from youtube, or convert your video to 360p.
2. Download the 3DS Video 1.32 converter from this thread.
https://gbatemp.net/threads/3ds-video-beta.315365/
(look for unofficial, gives you a mediafire link)
3. Unpack and start the 3DS Video 1.32
4. Choose your file and the destination folder, then set Input Video Type to Side-by-Side then click on Convert
5. Copy your video to your 3DS
6. Start the Video Player then touch the cogwheel.
7. Choose the LCD then the 3D.
8. Press Start button to go back, then touch the video icon
9. Press the X button and select your 3D video.
10. Watch it
 

Moametal

Member
Newcomer
Joined
Aug 16, 2021
Messages
11
Trophies
0
XP
82
Country
Spain
Great work. Is there any way to give reward?
Also tested on New 3DS XL, and works on XL too. (the release notes was not clear for me)

Just to give help for others to try the 3D video feature:
1. Download a 360p SBS (side-by-side) video from youtube, or convert your video to 360p.
2. Download the 3DS Video 1.32 converter from this thread.
https://gbatemp.net/threads/3ds-video-beta.315365/
(look for unofficial, gives you a mediafire link)
3. Unpack and start the 3DS Video 1.32
4. Choose your file and the destination folder, then set Input Video Type to Side-by-Side then click on Convert
5. Copy your video to your 3DS
6. Start the Video Player then touch the cogwheel.
7. Choose the LCD then the 3D.
8. Press Start button to go back, then touch the video icon
9. Press the X button and select your 3D video.
10. Watch it

File not available to download
 
  • Like
Reactions: Core_2_Extreme

P34ch

Active Member
Newcomer
Joined
Apr 11, 2019
Messages
30
Trophies
0
Age
48
XP
88
Country
United Kingdom
Thank you for adding these improvements, both essential imho, this player is looking better and better every new release. It’s brilliant to see that the 2/3ds community is still going strong. Great addition Core_2_Extreme.

--------------------- MERGED ---------------------------

I’d just like to add that the 800 resolution really makes video’s look amazing, the difference is night and day.
 

T0biasCZe

Well-Known Member
Member
Joined
Oct 4, 2019
Messages
220
Trophies
0
Age
18
XP
943
Country
Czech Republic
I tried side by side 800x240px on New 3DS And it doesnt work (i enabled the 3D in settings under LCD)
F3sw6eq.jpg

tPq55S6.jpg
 
  • Like
Reactions: Core_2_Extreme

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,263
Country
United States
Wow, this is amazing work. I never imagined we'd get such a powerful video player on 3DS. :D I think the people who've asked "why would you watch videos on your 3DS?" don't really appreciate the homebrew spirit. It's fun to push old hardware to the limit and see what it can really do. Clearly, the N3DS is able to make a very capable video player, but I think you get extra points for supporting O3DS, too, despite its limitations.

I ran some tests using H.264 400x240p @ 24 fps on N2DSXL. Strangely, the hardware decoder shows the same choppiness reported back in April. The video looks like it's playing at 12 fps instead of 24 with a kind of "slide show" effect, but the numbers on the top screen are constantly around 24 fps. Switching to the software decoder fixes the choppy playback, although I don't know why. Could the video container be a problem? I used MKV, instead of MP4.

I'm also curious: is it possible to play an 800x240 video on the top screen in full screen, since the top screen is actually 800x240 on every 3DS model excecpt the O2DS? In theory it might look a little sharper than 400x240 being doubled to 800x240, but when I tried to play an 800x240 video, it was letterboxed. Of course, 800x240 will look super stretched on a PC, but it should be the correct aspect ratio when displayed on a 3DS.
 
  • Like
Reactions: Core_2_Extreme

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
153
Trophies
0
Age
22
XP
1,163
Country
Japan
Can you place a button to turn off the bottom screen of 3ds or put it black when play a movie?

You can enter full screen mode by pressing SELECT button.

I tried side by side 800x240px on New 3DS And it doesnt work (i enabled the 3D in settings under LCD)
F3sw6eq.jpg

tPq55S6.jpg

You should use motion jpeg video that contain 2 video tracks (that official nintendo 3ds camera uses).

Wow, this is amazing work. I never imagined we'd get such a powerful video player on 3DS. :D I think the people who've asked "why would you watch videos on your 3DS?" don't really appreciate the homebrew spirit. It's fun to push old hardware to the limit and see what it can really do. Clearly, the N3DS is able to make a very capable video player, but I think you get extra points for supporting O3DS, too, despite its limitations.

I ran some tests using H.264 400x240p @ 24 fps on N2DSXL. Strangely, the hardware decoder shows the same choppiness reported back in April. The video looks like it's playing at 12 fps instead of 24 with a kind of "slide show" effect, but the numbers on the top screen are constantly around 24 fps. Switching to the software decoder fixes the choppy playback, although I don't know why. Could the video container be a problem? I used MKV, instead of MP4.

I'm also curious: is it possible to play an 800x240 video on the top screen in full screen, since the top screen is actually 800x240 on every 3DS model excecpt the O2DS? In theory it might look a little sharper than 400x240 being doubled to 800x240, but when I tried to play an 800x240 video, it was letterboxed. Of course, 800x240 will look super stretched on a PC, but it should be the correct aspect ratio when displayed on a 3DS.

Idk why some video run lower framerate in hardware decoding (I'm currently investigating)
And there are some workarounds :
・Encode your video using baseline profile
・Use lower preset ultrafast, faster etc... instead of slow, slower etc...
・Encode your video using CPU(libx264) not GPU(nvenc, intel qsv, amf)

I think it's not impossible, but it seems that c3d and c2d(drawing library) stretched 800*240 as 800*480 internally.
 

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,263
Country
United States
Idk why some video run lower framerate in hardware decoding (I'm currently investigating)
I'm glad you're able to replicate the problem, and it's not just me. :P

I do all of my encoding with Avisynth feeding x264 CLI, so I have access to every encoding option. Your workarounds made me curious if CABAC is related to the problem, as CABAC is forbidden in the Baseline profile:

https://en.wikipedia.org/wiki/Advanced_Video_Coding#Feature_support_in_particular_profiles

I encoded the video again with the same settings as before, but this time I added the --no-cabac switch. The video playback seems slightly less choppy than when CABAC is used, but software decoding is still definitely smoother. I suppose the problem could also be related to the number of reference frames or B frames, but it would take many encodes to try every possible combination of options.

I think it's not impossible, but it seems that c3d and c2d(drawing library) stretched 800*240 as 800*480 internally.
How odd. I assumed that since the 3DS screen is 240p, any video encoded specifically for the 3DS should also be 240p, since there won't be any benefit to higher resolutions on a low resolution screen. Maybe one benefit is not triggering bugs in the various libraries you're using, eh? :P
 
  • Like
Reactions: Core_2_Extreme

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
153
Trophies
0
Age
22
XP
1,163
Country
Japan
I'm glad you're able to replicate the problem, and it's not just me. :P

I do all of my encoding with Avisynth feeding x264 CLI, so I have access to every encoding option. Your workarounds made me curious if CABAC is related to the problem, as CABAC is forbidden in the Baseline profile:

https://en.wikipedia.org/wiki/Advanced_Video_Coding#Feature_support_in_particular_profiles

I encoded the video again with the same settings as before, but this time I added the --no-cabac switch. The video playback seems slightly less choppy than when CABAC is used, but software decoding is still definitely smoother. I suppose the problem could also be related to the number of reference frames or B frames, but it would take many encodes to try every possible combination of options.


How odd. I assumed that since the 3DS screen is 240p, any video encoded specifically for the 3DS should also be 240p, since there won't be any benefit to higher resolutions on a low resolution screen. Maybe one benefit is not triggering bugs in the various libraries you're using, eh? :P

hmm, interesting, I'll investigate it.

how to convert the image to two track mjpeg tho ?

I used ffmpeg to convert.
e.g.

ffmpeg.exe -i [input file0] -i [input file1] -map 0:v:0 -map 0:a:0 -map 1:v:0 -vcodec mjpeg -s 426x240 -b:v 2M -acodec copy [output file]
In this command, audio is used from [input file0], if you want to use from [input file1] change from -map 0:a:0 to -map 1:a:0.
 
  • Like
Reactions: placebo_yue

T0biasCZe

Well-Known Member
Member
Joined
Oct 4, 2019
Messages
220
Trophies
0
Age
18
XP
943
Country
Czech Republic
ok thank you i will try it when i come back from school (i dont have sd card reader here)
i tried similar ffmpeg command, but it was crashing for some reason
 
  • Like
Reactions: Core_2_Extreme

placebo_yue

Well-Known Member
Member
Joined
Aug 7, 2019
Messages
739
Trophies
0
Age
33
XP
1,264
Country
Argentina
ffmpeg.exe -i [input file0] -i [input file1] -map 0:v:0 -map 0:a:0 -map 1:v:0 -vcodec mjpeg -s 426x240 -b:v 2M -acodec copy [output file]
this is crucial information i suggest you add it on the OP so everyone knows how to easily create the videos to be used. Otherwise you'll have half of the people in here struggling with that part and perhaps even dismissing your great app because of that!
 
  • Like
Reactions: Core_2_Extreme

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    sorabora tempBOT: sorabora has joined the room.