Homebrew Homebrew app [Release] Video player for 3DS

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
153
Trophies
0
Age
22
XP
1,163
Country
Japan
Video player for 3DS

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

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

On NEW 3(2)DS, it is recommended to use patched Luma3DS or luma3ds v12.0 (or later) for better performance.​


v1.5.3

Changes​

Audio files more than 2ch (e.g. 2.1ch) has been supported.
Many pixel formats have been supported, however, YUV420P is recommended for performance reason.
Ryukyuan(琉球諸語) translation has been added (by kuragehimekurara1).
Auto mode for top screen mode has been added, when this is enabled (settings -> LCD -> screen mode -> auto) you can just use 3d slider to change between 3D <-> 800px mode.
Simplified Chinese(简体中文) translation has been updated.

Fixed bugs​

Many problems with seek function including backward seeking has been fixed.
Problem that it won't enter sleep mode in some case has been fixed.
Problem that h263p video is not played correctly in some resolution has been fixed.
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.5.3

v1.5.2

Changes​

Ignore unsupported codec so that you can play supported codec only
(e.g. You can now play videos that contain unsupported subtitles/audio)

Fixed bugs​

Hardware decoder won't play videos that contain B-frames smoothly has been fixed
(It means you don't have to care about B-frames when encoding to H.264 videos)
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.5.2

v1.5.1

Added features​

Screen update frequency in audio only files have been increased
Performance has been improved by adding DMA
Video playback is automatically paused when runs out of buffer
(You can change threshold by changing 'Restart playback threshold' settings)
Seeking speed has been improved

Changes​

Disallow sleep when only headset is connected
(allow sleep if headset is disconnected during playback)
App directory has been changed from sdmc:/Video_player/ to sdmc:/3ds/Video_player/
(App will automatically move folder)
Simplified Chinese(简体中文) translation has been updated
Enabled 'correct aspect ratio option' by default

Fixed bugs​

Crashes in hw decoder in some videos have been fixed
Automatically enter full screen mode even file explorer is opened has been fixed
App will freeze if you seek after EOF has been fixed
Unable to pause/resume in tagged mp3 has been fixed
Video position won't be saved in some cases have been fixed
Glitch on video in full screen mode has been fixed
Some directories can't be entered have been fixed
Some videos won't be played at correct speed has been fixed
Frame desync in some 3D videos have been fixed
Download : https://github.com/Core-2-Extreme/Video_player_for_3DS/releases/tag/v1.5.1

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

00000026.jpg


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)

Benchmark
Original video file : Big Buck Bunny
The test videos were generated with following commands :
Code:
mjpeg : ffmpeg -i {input_file} -acodec copy -vcodec mjpeg -s {width}x{height} -q:v 5 -t 03:00 {output_file}
mpeg1video : ffmpeg -i {input_file} -acodec copy -vcodec mpeg1video -s {width}x{height} -q:v 5 -t 03:00 {output_file}
mpeg2video : ffmpeg -i {input_file} -acodec copy -vcodec mpeg2video -s {width}x{height} -q:v 5 -t 03:00 {output_file}
mpeg4 : ffmpeg -i {input_file} -acodec copy -vcodec mpeg4 -s {width}x{height} -q:v 5 -t 03:00 {output_file}
h263p : ffmpeg -i {input_file} -acodec copy -vcodec h263p -s {width}x{height} -q:v 5 -t 03:00 {output_file}
h264 : ffmpeg -i {input_file} -acodec copy -vcodec libx264 -s {width}x{height} -crf 25 -t 03:00 {output_file}
h265 : ffmpeg -i {input_file} -acodec copy -vcodec libx265 -s {width}x{height} -crf 30 -t 03:00 {output_file}
av1 : ffmpeg -i {input_file} -acodec copy -vcodec libsvtav1 -s {width}x{height} -crf 40 -row-mt 1 -cpu-used 5 -t 03:00 {output_file}

NEW3DS
v1_5_3_new_decoding_speed.png


OLD3DS
v1_5_3_old_decoding_speed.png


Supported video codecs

  • AV1
  • H.261
  • H.262
  • H.263
  • H.263+
  • H.264 (AVC, MPEG4 part10)
  • H.265 (HEVC)
  • Motion jpeg
  • MPEG1video
  • MPEG2video
  • MPEG4 (MPEG4 part2)
Supported audio codecs
  • aac (Advanced audio coding)
  • ac3
  • mp1 (MPEG audio layer 1)
  • mp2 (MPEG audio layer 2)
  • mp3 (MPEG audio layer 3)
  • ogg (Vorbis)
  • opus
  • pcm audio
Supported subtitle codecs
  • movtext
  • subrip
  • subviewer (No style support)
Supported containers (extensions)
  • aac
  • ac3
  • avi
  • mkv
  • mp1
  • mp2
  • mp3
  • mov
  • ogg
  • wav

Controls
  • In normal mode
    • A : Play/Pause
    • B : Stop
    • Y : Open settings menu
    • X : Select a file
    • R : Zoom in
    • L : Zoom out
    • CPAD : Move a video and/or subtitle
    • DPAD ←→ : Seek
    • DPAD ↑↓ : Change screen brightness
    • START : Back to main menu
    • SELECT : Enter fullscreen mode
    • Touch on the bar : Seek
  • In fullscreen mode
    • A : Play/Pause
    • DPAD ←→ : Seek
    • DPAD ↑↓ : Change screen brightness
    • SELECT : Exit fullscreen mode
 
Last edited by 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
Does it supports 3d movies?

Sent from my Mi Note 10 Lite using Tapatalk
no.

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

Where has this Brew been all my life?!

(Also, would it be possible to make a "portable" version with the video packed into the CIA?)
It is possible.
 

Core_2_Extreme

Well-Known Member
OP
Member
Joined
Feb 11, 2019
Messages
153
Trophies
0
Age
22
XP
1,163
Country
Japan
Amazing! You made my day.
Would be cool to see some performance improvements in the future so that the Old3DS can play 240p videos at 30fps or more. A frameskip option would be great too.

A frameskip option would be ok if you are playing motion jpeg video otherwise video image will corrupt.
This is because motion jpeg file contain all frames as a keyframe(complete image data) but not H.264(and many codecs).

Anyway I'll add frameskip function so you can see what happen if you skip frame on H.264 file.
 
  • Like
Reactions: Computer_Freak_2004

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Veho @ Veho: New Myoo.