Hellow. You need 4:4:4 pixel format and High444 profile in libx264 or h264_nvenc or other h264 encoder. And I guess that qp 0 is better then crf 0. For example:
-c:v h264_nvenc -qp 0 -pix_fmt yuv444p -profile:v high444p
For screenrecording gdigrab is the best way.
P.S.: I use Nvidia HWacel of my GeForce1660 Ti Max-Q. It's very fast!
You've specified the encoding bit rate to be 5000*1000 kbs. So the constraint here is the file size, not the quality of the video (i.e., all of your videos will be approximately 5 kbs * duration in size, regardless of the choice of encoding).
HEVC has the potential to have higher quality at a given bit rate, though it comes at a cost of encoding speed (i.e., ...
Okay, I found the one option that will show you whether there is hardware support:
ffmpeg -codecs | less
Then search for your format, it looks like you'd type:
In my case, it shows me that I have nvenc as one of the sub-options:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_crystalhd ...
Well, now the default behavior of current/latest ffmpeg via:
c:\sbin\ffmpeg.exe -i "D:\video.m4s" -i "\audio.m4s" -c:v copy -c:a copy "D:\combined.mp4"
is padding/looping the last frame of the video until audio.length === video.length.
See if this is acceptable for you.
For details behavior:
if (audio.length < video.length),...