1. MarioKartFan

    MarioKartFan GBAtemp Fan
    Member

    Joined:
    Aug 27, 2019
    Messages:
    422
    Country:
    Algeria
    The argument that the screen resolution is too low to make watching movies on the 3DS credible belies the fact that people watch movies on their phones all the time even though many of them have tablets, iPads, kindle fires, and laptops right next to them, all of which provide a technically superior solution. It's not always about fidelity. Sometimes its about convenience and flexibility. I have found myself in situations many times where I wished I could bust out my 3DS and throw on a movie. At these resolutions, the file sizes will be small - and Handbrake makes encoding a breeze. It'll be trivial to load a few dozen movies onto the 3DS for pinch situations.

    I cannot wait for this application to mature just a bit more more.
     
    Core_2_Extreme likes this.
  2. Core_2_Extreme

    OP Core_2_Extreme Advanced Member
    Newcomer

    Joined:
    Feb 11, 2019
    Messages:
    60
    Country:
    Japan
    Chainhunter, Enkuler, Traace and 3 others like this.
  3. SHgamer1221

    SHgamer1221 Member
    Newcomer

    Joined:
    Jan 8, 2021
    Messages:
    45
    Country:
    Israel
    press X friend

    — Posts automatically merged - Please don't double post! —

    Just press X my friend...
     
    Core_2_Extreme likes this.
  4. IGHOR

    IGHOR Member
    Newcomer

    Joined:
    Sep 16, 2017
    Messages:
    46
    Country:
    Ukraine
    Sounds cool!
    Can you please share ffmpeg command line to convert video for the best performance?
     
    Traace and Core_2_Extreme like this.
  5. Steven Lopez

    Steven Lopez Member
    Newcomer

    Joined:
    Feb 3, 2011
    Messages:
    10
    Country:
    United States
    Thank you for this contribution to the 3DS homebrew scene! I am super excited for this project's future development. I've been waiting for a fully featured 3DS video player without audio desync and that uses a common video format for quite a while. I've been watching the commits and just tested out the hardware decoder release on my New 3DS XL... wow!

    480p runs almost perfectly (slight slowdowns at certain points). Keep in mind that I got the tested file from some place I can't remember a long time ago and haven't done any prior conversion to playing, so I don't know if the file was optimal for performance.

    I think 360p will be the sweet spot for great quality (given 3DS screen size and resolution) and perfect performance (given how that 240p runs perfectly and 480p runs almost perfectly).

    Three more things I would like to suggest/request to make this even better:

    1.) While hardware decoding performance seems to no longer be an issue at all with 240p and, I imagine, 360p (and is only sometimes slightly an issue in 480p), there is still a choppiness to the video regardless of resolution when the video is panning or things are moving fast (choppiness that doesn't exist with the web browser's hardware video decoding). It *looks* like an FPS drop due to the lack of smoothness, but I'm not sure what exactly causes it. If this is fixable, then in my opinion, this fix would make this video player perfect quality and anything else is cherries on top. Here is a 12 second example of this happening (240p): https://drive.google.com/file/d/1zDWiqchRJLLBH__LTj4rVCHur8miynNb/view?usp=sharing

    2.) Add a theater mode. How I'm imagining it, you would press a button (Select for example) and the video goes full screen on the top screen and the bottom screen goes black. By full screen, I mean the video either is stretched to take up the full top screen or the top screen is black where the video isn't being played (ie: if the video aspect ratio is different than the screen and can't be stretched).

    3.) I know you are probably working on this, but a CIA fix for the hardware decoder would be super nice.

    Edit: just changed sharing options on video so anyone can watch it from that link
     
    Last edited by Steven Lopez, Apr 13, 2021
    Core_2_Extreme likes this.
  6. MarioKartFan

    MarioKartFan GBAtemp Fan
    Member

    Joined:
    Aug 27, 2019
    Messages:
    422
    Country:
    Algeria
    @Steven Lopez

    That's a really good post and does a nice job of summarizing my own reaction to this beta. It's remarkable how quickly @Core_2_Extreme implemented hardware decoding and the performance improvement is equally remarkable. The UI is looking prettier too :)

    480p videos look surprisingly sharp on the N3DS. The sound and video decode in perfect sync, and the videos do not stutter or anything. But I notice the same thing as you with panning or zooming in with my own custom 480p h.264 encode.
     
    Core_2_Extreme and Steven Lopez like this.
  7. Steven Lopez

    Steven Lopez Member
    Newcomer

    Joined:
    Feb 3, 2011
    Messages:
    10
    Country:
    United States
    Okay, updated testing results (using first hardware decoder beta v1.1.0 on New 3DS XL):

    Previously, I tested a 240p (400x240) video that performed great, but was choppy when the camera panned (linked example above). I have since reconverted that file, testing if the fact that my converter had changed the fps from the native 23.976 to 24.000 was the cause. But strangely, I have been unable to reproduce that choppiness with any reconverted version of this file that I throw at the player (other than the original file with the issue).

    Results for an anime episode (same video, newly converted from original source), h.264 480p (854x480), 96kbps AAC audio, freshly converted with AnyVideoConverter: You are right @MarioKartFan , this freshly converted video runs perfectly 99.6% of the time with only the slightest of audio hiccups from CPU/GPU over-utilization. It looks super sharp. It runs almost perfectly performance-wise (it rivals the Netflix app, which runs absolutely perfectly with no exceptions ever).

    Quality-wise, this video looks perfect most of the time (way better than Netflix!), with a notable exception: Sometimes, some of the colors persist on the screen, (most often) when the scene changes. This happens in blurred blocks usually. It can even get very messy at moments, turning a character into an amorphous set of blurred blocks. While this issue occurs most often during scene changes, it can occur when a character is standing still. This happens 100% of the time when seeking and persists for a very long time (though this does not occur at all in the first choppy video I mentioned in this post). I am guessing (merely speculating) that this issue **when caused by seeking specifically** is due to the same thing that causes the video to not be correctly decoded at first.

    Here is a 21-second example: https://drive.google.com/file/d/17VB4pZzL80fLMeHAjsiizUYDf9hS2cEO/view?usp=sharing
    The first blur across the face of the character wearing red happened on its own. The next three full screen blurs happened exactly when I deliberately seeked to three different places in the video, waiting a few seconds between each seek. You'll notice that each time the blur starts (which is at the instant I seek), it lasts for a few seconds, covering up the scene.

    This issue occurs much more frequently (meaning much of the time) on its own with a converted YouTube video I tested out.

    *btw, the videos are from the anime Hunter X Hunter, which can be watched with a Crunchyroll subscription! I highly recommend it!
     
    Last edited by Steven Lopez, Apr 15, 2021
    Core_2_Extreme likes this.
  8. wiiztec

    wiiztec GBAtemp Fan
    Member

    Joined:
    Apr 3, 2009
    Messages:
    431
    Country:
    United States
    Anyone gotten this to work in citra? I just get a black screen
     
    Core_2_Extreme likes this.
  9. MarioKartFan

    MarioKartFan GBAtemp Fan
    Member

    Joined:
    Aug 27, 2019
    Messages:
    422
    Country:
    Algeria
    Why would you run a video player through an emulator? Just use VLC.
     
    placebo_yue and Core_2_Extreme like this.
  10. Steven Lopez

    Steven Lopez Member
    Newcomer

    Joined:
    Feb 3, 2011
    Messages:
    10
    Country:
    United States
    After years of trying off and on to get 3DS homebrew to compile from source into a .3dsx, I have finally succeeded, which means more testing results!

    I've tested the third commit since v1.1.0 ("Added buffering"). Performance seems to be the same, but all of the blurred blocks and other image/color distortions (both during normal video and when seeking) have disappeared! Visual playback is now perfect! This was the result for not just Hunter x Hunter, but other shows and converted YouTube videos (though I've only test 2 YouTube videos). Super excited with this progress!

    I also tested the fourth and final commit since v1.1.0 ("Improved hardware decoding performance"). Unfortunately, this commit seems to crash the system upon attempting to load any kind of video. I've included the crash output.

    I have some slightly intensive 480p videos ready for testing performance when the time comes that currently slightly stutter at certain points.

    p.s. - I've noticed for all versions, closing the software by either pressing the Home button and "clicking" Close or by pressing the Home button and then switching software leads to a crash.
     

    Attached Files:

    Last edited by Steven Lopez, Apr 18, 2021
  11. Core_2_Extreme

    OP Core_2_Extreme Advanced Member
    Newcomer

    Joined:
    Feb 11, 2019
    Messages:
    60
    Country:
    Japan
    I changed some code last commit should work now.
     
    Steven Lopez likes this.
  12. MarioKartFan

    MarioKartFan GBAtemp Fan
    Member

    Joined:
    Aug 27, 2019
    Messages:
    422
    Country:
    Algeria
    Core_2_Extreme likes this.
  13. Core_2_Extreme

    OP Core_2_Extreme Advanced Member
    Newcomer

    Joined:
    Feb 11, 2019
    Messages:
    60
    Country:
    Japan
    Chainhunter, Steven Lopez and ber71 like this.
  14. Blazer72854

    Blazer72854 Newbie
    Newcomer

    Joined:
    Apr 16, 2021
    Messages:
    1
    Country:
    United States
    A lot of people have been looking for something like this this is cool ill try it out later
     
    MarioKartFan and Core_2_Extreme like this.
  15. Steven Lopez

    Steven Lopez Member
    Newcomer

    Joined:
    Feb 3, 2011
    Messages:
    10
    Country:
    United States
    ^Yeah, I've been waiting for a long time for something like this! Thanks again to Core_2_Extreme!

    More testing results:
    • I can confirm that v1.1.1 fixes the bug where the homebrew crashes upon loading a video that was introduced in commit 'Improved hardware decoding performance'.
    • Previously I mentioned how the video player crashes upon pressing Home and then Close. I've since discovered this only happens if there is a video currently being played (exiting the video beforehand seems to fix the issue). Definitely a minor thing, but I thought I'd point it out.
    • From the user-side v1.1.1 introduced, most notably, fixes to all graphical/color glitches during normal video playback and when seeking. These fixes seem to have been fully implemented sometime by commit "Added buffering". Further commits seem to focus on optimization based on descriptions and code changes (I'm not a strong programmer though!). I was testing the "Added buffering" commit against the v1.1.1 release earlier, and it seems to me that v1.1.1 has (very) slightly decreased performance compared to the "Added buffering" commit. I measured this by how often I heard the audio slightly stutter, indicating lag. I tested this with Hunter X Hunter (HxH) episodes and a converted YouTube video (both 480p 854x480 H.264 23.976fps / 30fps (HxH/YouTube video) video and 96kbps AAC audio). Neither version has much lag at all and the lag is just an almost instantaneous blip most times, except for noticeable lag in very intensive scenes (ie: Disney movies with lots of pixie dust moving all over the screen). Note: I have not tested this in ECO mode where you can see the number of rendered frames yet.
    Edit: I just tested a random unconverted 1280x720 YouTube video I found and while I couldn't see the improvement because it was a music video with a relatively static background that doesn't move much, the FPS did go from 41-44 to 50-53 by switching from the "Added buffering" commit to the v1.1.1 release. Very laggy sound either way.
     
    Last edited by Steven Lopez, Apr 19, 2021
    Core_2_Extreme likes this.
  16. Core_2_Extreme

    OP Core_2_Extreme Advanced Member
    Newcomer

    Joined:
    Feb 11, 2019
    Messages:
    60
    Country:
    Japan
    For better performance, I recommend you turn the eco mode on.
    If you turn the eco mode on, rendering framerate will fit to decoding framerate so CPU and GPU usage will decrease and decoding speed would increase.

    note : framerate on the top screen is 'rendering fps' not 'decoding fps'.
     
    Steven Lopez likes this.
  17. CatYTLink

    CatYTLink Newbie
    Newcomer

    Joined:
    Oct 3, 2020
    Messages:
    2
    Country:
    Germany
    What are you going todo with the Recording option? I tested it and it seems to work pretty well (n3ds). Glad to see something like this finally achieved.
     
    Last edited by CatYTLink, Apr 22, 2021
    Core_2_Extreme likes this.
  18. Core_2_Extreme

    OP Core_2_Extreme Advanced Member
    Newcomer

    Joined:
    Feb 11, 2019
    Messages:
    60
    Country:
    Japan
    I added it for take a bug report.
     
  19. placebo_yue

    placebo_yue GBAtemp Fan
    Member

    Joined:
    Aug 7, 2019
    Messages:
    408
    Country:
    Argentina
    i've read before the CIA version wasn't useable? should i install 3DSX or can i use CIA now? I'm on O3DS btw so i know performance will be less than perfect but i'm curious about the improvements made since i last tested it. I'll make sure to run a video that matches the screen resolution this time
     
    Core_2_Extreme likes this.
  20. Steven Lopez

    Steven Lopez Member
    Newcomer

    Joined:
    Feb 3, 2011
    Messages:
    10
    Country:
    United States
    Both the .3dsx and .cia versions can play videos; however the hardware decoder will not function with a .cia installation as of right now. The hardware decoder provides massive performance enhancements on the New 3DS.

    If my understanding is correct, I do not believe that the Old 3DS has hardware decoding abilities and would thus be unable to take advantage of the hardware decoder anyways. I would install the v1.1.1 .cia and use the software decoder.

    Also, any video that is of a resolution width / height = 1.77777 will be "full screen" automatically (the info bar will still be there regardless, otherwise it would be 1.6666666). 427x240 will approximately give you this. 640x360 will give you this. 854x480 will give you this. I would recommend 240p for old 3DS, though I haven't tested it.
     
    Last edited by Steven Lopez, Apr 23, 2021
    MarioKartFan and Core_2_Extreme like this.
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - [Release], player, Video