So I’ve made a video that was recorded using a 2560×1440 resolution on a webcam. The video also has a 1920x1080 cropped video playing in the corner, which was recorded as a screen recording using the same 2560x1440 resolution in OBS.
I adjusted the preset YouTube export setting to this:
Unfortunately the result of the export isn’t really that close to the original file in terms of resolution/sharpness. As you can see from these two images:
Is there something amiss with this, or is this a standard amount of degradation?
I set the 2560x1440 to match the webcam resolution because exporting to anything else seems to mess with the audio sync of the webcam video; plus it’s the highest resolution image of the video, so I want to try to match it.
I’m not sure if the cropped video in the video is somehow bringing down the overall resolution? Or whether I need to do something else with the settings?
Try using libx264 instead of h264_qsv, and turn off hardware encoding. Quick Sync encoding often sacrifices quality to get speed. Quality can be changed to 64-68% (CRF 16-18) for a high-quality libx264 encoding.
Very unusual. Those are generally bullet-proof settings.
Let’s try this… export with the Lossless > Ut Video preset using Bicubic interpolation. Leave the other settings at default. It will result in a biiiiig file. But it is lossless. If that file is fuzzy, then something is wrong with processing, and not with the export format.
That, or there is a 1-2 frame sync difference between the export and the original, meaning a frame with motion blur might be compared to a frame that doesn’t have motion blur, and the codec itself is fine.
If it is a frame sync problem, then the two videos would look equally sharp overall when played back at normal speed. It’s just comparing “frame 50” to “frame 50” might be an unfair comparison if frame sync causes one of them to actually be “frame 52”. If the source video format is variable frame rate or some other format that isn’t seek friendly, then frame sync can become an issue. But it wouldn’t impact the sharpness of a frame; it would just put a sharp frame in the “wrong” slot.
So, we’ve learned that processing isn’t to blame. We’re back to settings for the export format. I guess you could crank the quality percent even higher on libx264 and see what happens. There is the option of preset=slow on the Other tab, but that usually isn’t necessary (and the extra processing actually is slow).
Or, you could try adding a Sharpen filter greater than 30% to emphasize the sharpness you want (maybe even overshoot) then maybe the export will dull it down to where you want it. That’s a hack, but I’m not sure why else the original libx264 settings aren’t doing any better. If that works, you might be able to return to h264_qsv and get your hardware speed back. Or try h264_qsv with preset=medium (without the Sharpen hack first) and see if it looks better than the first attempt on fast.
To verify, the input frame rate and output frame rate are both 24fps, correct? As in, the webcam video wasn’t 60fps and the export is 24fps?
Matched frame rate would preserve the smoothest motion. Going from 30 to 24 means Shotcut will drop frames from the source to match the export rate, potentially resulting in jerky motion. At a minimum, it will be nearly impossible to do a frame-accurate comparison between the original and the export because the export doesn’t have all the frames the original has. This could also explain any 1-2 frame sync issues (at drop points to reduce to 24 fps).
To verify, do the libx264 exports look fuzzier overall when played back at normal speed, or only when comparing freeze frames? If freeze frames are the only issue, it’s very possible the same frame hasn’t been correlated between videos, and the fuzziness could actually be motion blur in a different frame.