If you need to re-encode certain video file, you doesn't need the previous encoder used to encode the file you have now.
You can either use FFmpeg or similar converter or use online services that'll provide conversion when you upload your file to their service.
Regarding the error message you get, it shows that file is corrupted in the time frame pos. 2241497 . It isn't a problem with FFmpeg.
You can either search for FFmpeg option that'll let you skip certain frames while converting or there are some other converter programs which has the ability to skip error-some frames.
To verify this, try encoding different file.
P.S
If you just need to change the container from mkv to mp4, you should try mp4 Muxer / Re-Muxer program. no need to re-encode. re-Muxer program will extract video data and audio data from your mkv file, then put it inside mp4 container. It'll only take few seconds (depending on your system's resources)