Video player 3DS - GameBrew
Homebrew video player for the 3DS with multi-language support.
On NEW 3(2)DS, it is recommended to use the patched Luma3DS or Luma3DS v12.0 (or later) for better performance.
Supported codec & extensions
| Video | Audio | Subtitle | Containers |
|---|---|---|---|
| AV1 | aac (Advanced audio coding) | movtext | aac |
| H.261 | ac3 | subrip | ac3 |
| H.262 | mp1 (MPEG audio layer 1) | subviewer (No style support) | avi |
| H.263 | mp2 (MPEG audio layer 2) | mkv | |
| H.263+ | mp3 (MPEG audio layer 3) | mp1 | |
| H.264 (AVC, MPEG4 part10) | ogg (Vorbis) | mp2 | |
| H.265 (HEVC) | opus | mp3 | |
| Motion jpeg | pcm audio | mov | |
| MPEG1video | ogg | ||
| MPEG2video | wav | ||
| MPEG4 (MPEG4 part2) |
Recommended resolution
On NEW 3(2)DS, it is recommended to use patched Luma3DS or the latest Luma3DS for better performance.
Videos that in this resolution will be played without any problems in most of the situations.
| Recommended resolution | mpeg1video | mpeg2video | H263+ | H264 | H265 |
|---|---|---|---|---|---|
| OLD3DS Software decoding | 400x240@30 | 400x240@30 | 400x240@24 | 256x144@24 | 256x144@10 |
| NEW3DS Software decoding | 800x240@30 | 800x240@30 | 800x240@30 | 800x240@30 | 800x240@20 |
| NEW3DS Hardware decoding | none | none | none | 800x240@60 | none |
Videos that in this resolution may be played without problems if video is not moving a lot.
| Maximum resolution | mpeg1video | mpeg2video | H263+ | H264 | H265 |
|---|---|---|---|---|---|
| OLD3DS Software decoding | 800x240@24 | 800x240@24 | 800x240@20 | 400x240@15 | 256x144@20 |
| NEW3DS Software decoding | 800x480@30 | 800x480@30 | 800x480@30 | 800x480@24 | 800x240@30 |
| NEW3DS Hardware decoding | none | none | none | 1280x720@20 | none |
Note: Video resolution that exceeds screen resolution (400x240 on OLD2DS, 800x240 on OLD3DS, NEW2DS and NEW3DS) has little visible effect.
Preparing videos
Using ffmpeg (advanced users):
- Download and install ffmpeg.
- For NEW3DS and NEW2DS:
ffmpeg -i {input_file_name} -acodec aac -vcodec libx264 -s 800x240 -preset medium -crf 25 {output_file_name} - For OLD3DS and OLD2DS:
ffmpeg -i {input_file_name} -acodec aac -vcodec mpeg4 -s 400x240 -crf 25 {output_file_name}
- For NEW3DS and NEW2DS:
- Copy generated video files to your 3DS (anywhere on your SD card).
- Replace
{input_file_name}with your input file name and{output_file_name}with your output file name. - Example:
ffmpeg -i original_video.mp4 -acodec aac -vcodec libx264 -s 800x240 -preset medium -crf 25 converted_video.mp4 - For converting 3D video, refer to this post by T0biasCZe.
Fast and simple alternatives - you can use these tools:
Decoding speed/Benchmark
Decoding speed depends on encoder option, video type, video scene, etc...
Original video file: Big Buck Bunny
The test videos were generated with following commands:
- 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:
Old3DS:
How to watch 3D video
This feature is for new 3DS or 3DS only, software decoder only.
To see 3D video as 3D, enable 3D mode in settings (Settings> LCD> Screen mode> 3D).
Supported languages
- English.
- Japanese/日本語.
- Hungarian/Magyar (translated by vargaviktor).
- Simplified Chinese/简体中文 (translated by LITTOMA).
- Italian/Italiano (translated by dixy52-beep).
- Spanish/Español (translated by Cookiee).
- Romanian/Română (translated by Tescu48).
- Polish/Polski (translated by JustScratchCoder).
- Ryukyuan/琉球諸語 (translated by kuragehimekurara1).
Normal mode:
A - Play/Pause
B - Stop
Y - Open settings menu
X - Select a file
R/L - Zoom in/out
Circle Pad - Move a video and/or subtitle
D-Pad Left/Right - Seek
D-Pad Up/Down - Change screen brightness
Start - Back to main menu
Select - Enter fullscreen mode
Touch on the bar - Seek
Fullscreen mode:
A - Play/Pause
D-Pad Left/Right - Seek
D-Pad Up/Down - Change screen brightness
Select - Exit fullscreen mode