GoPro do a range of video cameras. Each one has different ways that data is recorded, and so the recovery process is different for each one. The notes below describe some of the main features of each recording method.
GoPro Base model.
This camera records data out of sequence with the second part of the logical file recorded first. The video data does include JPEG images, often used as a file thumbnail
GoPro Hero 3
This camera saves the video data with high and low resolution physically interleaved on the memory chip. Once all video data is saved, then both header blocks (ftyp and moov) are written. To recover the data it is necessary to determine which data block belongs to which data stream, high or low resolution, and to which ftyp and moov atom. It is not possible to do this type of recovery by data carving but the GoPro recovery software is the result of extensive development to resolve this problems. The result is normally perfect low resolution video and extremely good high resolution. Occasionally on FAT32 memory chips, there may be a small glitch on high resolution video - a small problem we hope ultimately to resolve. JPEG files may also be saved on the memory chip.
GoPro Hero 4 and Hero 5, Hero 6
The Hero 4 and 5/6 range is similar to the Hero 3 above except the order of the atoms is different. On the Hero 4 the ftyp is immediately followed by the mdat. At the end of the recording, the moov atom is added. As in Hero 3 high and low resolution streams are interleaved give the same recovery issues. JPEG files may also be saved on the memory chip
The developers are not aware of any other software program that can recover video from the memory chip where the data streams are all interleaved, and out of logical sequence.