h264 (Constrained Baseline)/(h264 (native) vs h264 (libx264)
Let me clarify what a stream mapping line such as the one below, indicates.

Stream #0:0 -&gt; #0:0 (h264 (native) -&gt; h264 (libx264))


Stream #0:0 indicates that the input stream is from the first file #0:0 and is the first stream in that file #0:0

-&gt; #0:0 indicates that the input stream is sent to the first stream of the first output file.

h264 (native) means that the detected codec of the input stream is H.264 and that ffmpeg will use its native (builtin) decoder to decode the stream.

h264 (libx264) means that the codec of the output stream will be H.264 and that ffmpeg will use the libx264 encoder to generate this stream.

"h264(constrained)" usually seen in the input file dump e.g.

Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive)...


indicates that the input stream codec is H.264 and the stream profile is Constrained Baseline. A profile defines the kind of methods that an encoder can use to generate streams and also a set of methods that a decoder is expected to perform, in order to decode the stream.

With your ffmpeg command, libx264 is re-encoding your video stream with CRF 23 and profile High. If the output looks fine to you, there's nothing to do further.

To experiment, you can use

ffmpeg.exe -i [RecordedVideoFileName.mkv] -crf X [OutputVideoFileName.mkv]


where X can go from 0 to 51. 18 to 28 is a good range for good quality and file size. Lower is better quality and larger size.