Edit, 2020-05-14: I found a better option working with a more up-to-date and better maintained version of untrunc. I strongly suggest you use this, it can be found here (source + binaries).
I was just looking around what is available for repairing MP4 video files. I am frequently asked if JPEG Recovery LAB can repair corrupt video. There appears to be an article somewhere that makes this claim. JPEG Recovery LAB can not. However, in many cases where video files are corrupt after recovery or undelete, JPEG Recovery LAB often can do better and recover intact files. You can find an article explaining why recovery sometimes is the better option.
In fact, often JPEG Recovery LAB is the only shot you have got to see your videos again in that type of situations.
So, Video repair. Apart from a handful of commercial online services and software from the usual suspects (Stellar Data Recovery etc.) there is a number of freeware and even open source options. Untrunc is one of those open source options. I have the idea that some of the commercial tools took a good look at the open source projects as well.
Some of the open source projects originate from the Linux community and are command line tools. And, although I started computing in the DOS days I’m not very fond of command line tools. Too lazy I guess. Spoiled by GUI tools I can click towards my goal without having to remember non intuitive command line parameters.
So, the tool I offer on this page is nothing than a tools that wraps around ‘untrunc’. I am afraid I can not be of much help with regards to using the actual tool to repair corrupt MP4 based videos but if you find any bugs in the ‘mp4repair.exe’ then let me know This is a 0.9.0 version but I can not predict how much more time I can spend on it. For using untrunc and in what types of situation it can be used I mus refer to your Google skills at this time.
Let it be clear that everything ‘under the hood’ is open source projects.
To use: All files needed are included. Unzip files into a directory. Untrunc requires your corrupt video and a reference file shot with the same device and the same settings.
Untrunc-w (Windows): https://github.com/SuslikV/untrunc-w
ffmpeg (used for video playback + untrunc-w): https://www.ffmpeg.org/