Search Unity

Feedback Unity Recorder mp4 default quality settings still abysmal output quality

Discussion in 'Audio & Video' started by svenneve, Jan 12, 2022.

  1. svenneve

    svenneve

    Joined:
    May 14, 2013
    Posts:
    80
    This has been an on going issue since even before the recorder was in the packagemanager, and various Unity developers have made numerous promises and statements that it is being looked at.

    But still after more than 4 years, the mp4 default quality settings have not been touched at at all and they are still absolutly abysmal in output quality, so bad in fact that we can't even use it for rendering out the most simple intermediates for clients even on the 'high' setting.

    Is recorder still being developed at all? Are there still any plans to fix this (besides the unfulfilled promises and empty statements made in the past?)

    I hate to be such a negative d**k on this forum all the time, but at this point it is getting kinda ridiculous.
     
  2. unitybru

    unitybru

    Unity Technologies

    Joined:
    Jan 28, 2020
    Posts:
    225
    Recorder is actively being developed, we've been fixing bugs and adding features based on the priority we get from talking to our users.
    An improvement is in the works regarding quality, please be a bit more patient.
     
  3. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    If you want feedback/a vote, I agree MP4 is unusable from a quality perspective. WEBM has been working well for me however with the Recorder, so I convert WEBM to MP4 outside Unity.
     
  4. unitybru

    unitybru

    Unity Technologies

    Joined:
    Jan 28, 2020
    Posts:
    225
  5. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    Sounds promising. I cannot use HDRP or the latest Unity version on my project unfortunately at this stage, but do you know if it supports slowing down the Play mode to ensure all frames can be encoded?

    MP4 was a problem before not because of lack of options/quality, but because (I believe) it keeps the game going full speed and does not let the encoder finish a full quality encode of each frame. If the overall scene got too busy, quality dropped. WebM on the other hand slows down the game play and so captures every frame at top quality. I could not see anything on the screenshots in that area. For filmmaking, quality is what matters (not render speed, which is critical for games).
     
  6. unitybru

    unitybru

    Unity Technologies

    Joined:
    Jan 28, 2020
    Posts:
    225
    @akent99 All the frames are encoded from the same source there, is no difference between the different codecs.
    The difference in the final quality depends on the encoding choices and the codec logic.
    The slowdown of the encoding process depends on the image size, disk speed, pixel format, and codec logic.
    Your best bet for image quality is to use a ProRes format.
     
  7. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    I am using 2021.2.0b12 with the built in render pipeline on Windows. ProRes was not an option in the version when I started, so I created some external scripts to convert WebM to MP4 outside of Unity.

    https://forum.unity.com/threads/unity-recorder-low-video-quality.599176/#post-7423268 has an example screenshot (I include a screenshot of a sample frame vs the game view frame). The more wind and movement in the scene, the lower the video quality when using MP4. The Game View on the screen is perfect, MP4 playback speed is real time, the saved video file is terrible (completely unusable). WebM quality is crystal clear for the same sequence but you can noticeably see playback slowing down with WebM (newish 12 core, RTX 3080, 32gb ram - the fan is barely going, not stressed at all). Simplify the view (e.g. remove wind zone) and the image quality increases in the MP4 file dramatically.

    The WebM files *are* x3 bigger - so the slow down I guess could be disk I/O, but I am doing 868x1462 (not 4k video etc). The complete file is like 3mb (they are only like 10 second video clips).
     
  8. unitybru

    unitybru

    Unity Technologies

    Joined:
    Jan 28, 2020
    Posts:
    225
    This really looks like bad encoding from the H.264 encoder, especially if you say that at some points the MP4 frames are of good quality.
    Can you share a project with us? Or maybe reproduce the issue with just a few assets and export it as a package? If we can repro, I can show it to the video team.
     
  9. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    Will try when I get a chance. It normally goes bad when scene complexity goes up. The projects I have it happening in are >10GB (too big to upload - lots of assets from asset store). Small projects are fine. So I need to try and create a complex scene with not many assets... like a forest with wind blowing I guess.
     
  10. unitybru

    unitybru

    Unity Technologies

    Joined:
    Jan 28, 2020
    Posts:
    225
    We'd very much appreciate it if you could reproduce this in an empty project with just one or two assets that help you generate that complexity. Maybe a few trees with some movement + the camera in the proper location?
     
  11. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    [UPDATE! Turns out the following was for 3.0.3 still, so I repeated MP4 generation after upgrading to 4.0.0-pre3 and saw no improvement generated MP4 quality - it was still bad.]

    I have tried some simpler projects and cannot repeat the problem - it seems related to scene complexity. I have upgraded to 2022.1.b12 and was trying MP4, ProRes Quicktime, and WebM. The game playback rate is full speed for MP4 and ProRes; WebM playback rate drops to 1/4 normal speed while recording the clip (it speeds up again as soon as it finishes the recorder clip). The MP4 goes blurry. The ProRes does not play in Windows media player, but I can load into PremPro and it looks good quality. WebM looks good quality (but won't load into Prem Pro! - I used an external tool to convert WebM to a format Prem Pro does understand). Fun fun fun!

    upload_2022-3-25_23-31-41.png

    The MP4 file is 4.7MB, MOV (ProRes) is 217MB, WEBM is 11MB. So the ProRes file is around x20 bigger than the WebM file but records at full speed. The MP4 is tiny, but terrible quality for many frames (some are perfect, some are bad).

    For now I am going to stick with WebM - because there is not clear enough reason to change.

    Zooming in a bit closer so its easier to see the difference in quality. MP4 generated on the left is bad, the other two are good.
    upload_2022-3-25_23-44-33.png

    The recorder clip is set to "Quality" = "High" for all three. I just changed the format drop down, no other changes between them.
     
    Last edited: Mar 26, 2022