File systems are organized in "blocks" of data, where each block has the same size. Internal storage (as well as some others which use NAND-Flash) on Android uses a block size of 128kB.
Especially video files are a bit larger, so they do not fit in a single "block" on the file system. In order to store them, they are split and spread about multiple blocks. This usually is no problem, as there is some "index" holding all the information of where those blocks are and what file they belong to. However: On a crash, some of that information might be lost -- while other parts have been preserved.
So your recovery process was 100% able to restore those files where complete information was available. I don't know what you used, but many of those recovery tools additionally scan all "unused blocks" (where the "index" says there's nothing stored currently) for data fragments, and this way discovers some additional files. But sometimes it's not possible to get all their pieces together, or do so in the correct order. Because of this, some of your videos might play for a few seconds (blocks), until the "lost information" part is reached.
I hope my explanation was understandable; I went for easy understanding instead of precise technologic terms.
As to your question on how to restore the missing parts: I'm afraid they are lost. But if you update your question and add information on what you used to restore your files, plus how you did it, we can look into it. One word straight ahead: I hope you didn't write anything on that SD card since -- or chances for restauration are really low.
First thing to make sure on data loss: AVOID WRITING TO THAT MEDIUM UNTIL YOU HAVE ALL YOUR DATA RESTORED (or all hope to restore them is lost)!!
First steps on data loss
- STOP WRITING to the device you lost data from (in your case, the SD card). Lost data might still be left more-or-less intact somewhere on the medium, but the corresponding blocks are marked "unused" -- so each new write lowers your chances on a successful recovery
- Make sure all subsequent access to the device is read-only. While you might not have access to a Write Blocker, some SD-cards offer a corresponding switch (use it!), or some card readers might provide something like that. With a Linux/Unix system you are well off also, as it is quite easy to explitly mount devices read-only.
- Best idea is to make a block-level copy of the medium. On Linux/Unix, this can be done using the dd command. This copy can be done to an equivalent medium (which in your case would be another 16GB SD card, best of the same brand), but also to a file -- which then can be mounted (again, best read-only) as a Loopback device. All susequent steps should use the so-created disk image: This ensures, even if some action fails and destroys something here, your original medium remains untouched, providing an additional safety layer.
- Having created a disk image, optionally make a copy of that again (easy if it is a file -- otherwise just repeat the first procedure with the image as source). This provides another level of safety, as, having broken something on the 2nd image, you needn't touch the original, but can start again from the first copy.
- Having created and mounted the image, as described in the previous steps, you now can try with all available recovery tools to get as much data restored as possible. If one tool doesn't restore enough, try the next, and so on. If the image breaks, see previous step.
- Having all data (or as much as was possible) restored, there's not much more you can do. You might decide to keep one of the images and/or the original. If not all data was restored successfully, you might even decide to send the original plus the image to some forensics specialist or data recovery service.
- On the seventh day He rested from his work ;)
There are a lot of tools available to help you recover your data. I cannot mention them all here -- but at least a few should be named. Some are addressing the end user, coming with a nice GUI -- others are rather intended for the forensics specialist, coming with a lot of command-line switches, and again others might provide both.
- Wondershare Data Recovery was already mentioned being used by the OP. I cannot say much about it, as I never used it: It is available for Windows and MacOS (and I run Linux).
- TestDisk would be my tool of choice. It is available for DOS, Windows, MacOS, Linux, and more -- and I have successfully used it a couple of times.
- PhotoRec comes from the same developers as TestDisk, and is available for a broad range of operating systems
- Both tools are mentioned on LiveHacker's article Five Best Free Data Recovery Tools -- and as it says "five", there are obviously 3 more available.
I don't want to list up things I don't know -- but from here, everybody should find his/her way. Hopefully. So good luck -- or better: good results!