GoPro Recovery
GoPro Recovery (gpr.exe from CnW Recovery Developments Ltd)

Video

Recovery

How video recovery operates

Why are video files hard to recover?

A video in some respects is just a simple file, stored on a memory device.  It can be read by any computer.  So why is it so complex to recover, and why do so many software packages promise to recover video, but then fail?  The very simple answer is that the file is not stored sequentially, and deleting the file, the sequence is lost. Video cameras typically use FAT32 to store data, though some newer cameras, and in particular those using memory chips greater than 32GB, use exFAT.  A file is stored as a series of clusters, each cluster being maybe 64 sectors, or 256 sectors  A file can  have 10s of thousands of clusters.  On a FAT32, each cluster is pointed to by data in the File allocation Table (FAT).  This table is deleted when a file is deleted, or the chip reformatted.  The process is similar on a exFAT memory chip, though the FAT is not used for sequential files. Why are the files recorded out of sequence?  A video file is basically made up of two sections, video data and index information.  When a video recording is started, obviously the length is unknown.  For this reason, it is not possible to know how long the index information will be.  Many video files are logically <index info> followed by <video data>.  Some cameras allocate a large area for the index info, and another one stores index info at the start of the memory chip, and video data at the other end of the memory chip.  However, a very common approach is to store the video data (mdat) physically first on the memory chip, and then add the index info (moov atom) physically after the video.  The FAT is then written in such a  way that the index info is seen first, logically followed by the video data. If a common data carving process is used to recover the video, the program will see a file start followed by video and recover the data.  Unfortunately, it will be the header from file 1, joined to the video from file 2.  The result is nothing works, and all the user can see is a blank screen.  Many data recovery companies will then claim that the video was corrupted, which is why it failed and try and repair part of video 2 with part of video 1.  We would speculate that many software companies tested their software by copying video files to memory chips, deleting and recovering.  This process would write sequential files, and so data carving would work. For many standard cameras taking videos, and specific video cameras it is normal for a video on the original memory chip to be in 2 or 3 different sections, or fragments.  This number can increase if the camera allows embedded still JPEGs to be taken whilst recording a video, or if separate videos have been deleted, hence fragmenting the memory chip. CnW Recovery software is probably the only software package to process original memory chip for many camera types, and GoPro cameras.  The GoPro Recovery package takes the features within CnW and optimises for just the GoPro, and also adds extra recovery modes for partial images.

GoPro Camera Recovery

The above section describes many common cameras.  The GoPro camera takes recover requirements to a new level.  Although each Hero model is different, there are common issues with the data being physically stored in a different sequence to the logical order.  The major issue is that GoPro Hero 3 and 4 cameras typically store two data sequences, a high resolution .MP4 and a low resolution .LRV.  Both are standard MP4 files with the normal elements, <ftyp><moov><mdat> but the two streams are interleaved.  On one example the low resolution fragment was about 0x400 sectors long (1024) and the MP4 fragment was about 0xa000 sectors long  (40,000).  These sizes are not fixed, and vary between different areas of the video.  As the files have been deleted, there is no information remaining on how each fragment is saved.  This is where GoPro Recovery software does it’s clever work.  The chip is scanned and all atoms (mdat, moov, and ftyp) starts are noted.  Then each video frame is also located.  GoPro Hero, and Hero 4 have audio frames and video frames tagged.   With this knowledge, it is possible to tie the index with the video data, and create  a pair of sequential playable video files.  Some DJI cameras work in a very similar way and so can be recovered.  The demo will show a thumbnail if the camera is compatible

GoPro partial file recovery

Occasionally the camera may fail due to a physical accident.  When this happens it is likely that the video will not be complete.  Current development will ensure that the partial video will be recovered, and playable version generated. Partial file recovery is a complex procedure.  First the high and low resolution video streams have to be separated out and then the index has to be created.  For Hero 3 cameras the high and low resolution streams are interleaved and there are no specific tags to determine the start and length of each audio or video frame.  Fortunately, the video frame does have an embedded length, but the audio frame can only be determined by decoding. The ‘clever’ part of the recovery system is to separate out the high and low resolution streams, even when a cluster has no video or audio header information.  GoPro recovery software has developed ways of doing this with a high success rate. With this complex recovery process, CnW feel that it is the only company that can perform valid GoPro video recovery from the camera memory chip.

Recovery of other digital cameras

The GoPro camera is probably the most complex camera to recover deleted video from, but many other camera have similar issues.  Fortunately, CnW Recovery has a general purpose product that supports many video camera types.  This list includes the following cameras, though the list does grow on a regular basis.  Cameras supported *Canon EOS/Rebel series *Canon SX600  *HS Canon HF-G30 Fuji Film FinePix XP50  GoPro Hero GoPro Hero 3+ Black GoPro Hero 4 Silver Kodak Zx1 Pocket Video camera Nikon Corporation D5100 Samsung HMX200 Samsung HMX300 Samsung Galaxy phone Sanyo E1 *Sony PMW-F3 *Sony PMW-150 Panasonic Lumix GH4 When standard recovery programs to to recover from the camera memory chip of these cameras, most fail.  They may find an .MP4 file, but it will not play.  CnW has a high success rate with these and many more cameras. * is part of current GPR software as well
Non GoPro Cameras Many drone cameras record data in a similar way to GoPro, ie interleaved low and high resolution video.  It has therefore been possible to share the Gopro development with many DJI Drones and provide a solution to the otherwise very difficult issue of recovering fragmented files after deletion. Since mid 2019, GPR software supports more than just GoPro Hero cameras, and the list will continue to grow.
© GoPro Recovery
GoPro Recovery

Video

Recovery

How video recovery

operates

Why are video files hard to recover?

A video in some respects is just a simple file, stored on a memory device.  It can be read by any computer.  So why is it so complex to recover, and why do so many software packages promise to recover video, but then fail?  The very simple answer is that the file is not stored sequentially, and deleting the file, the sequence is lost. Video cameras typically use FAT32 to store data, though some newer cameras, and in particular those using memory chips greater than 32GB, use exFAT.  A file is stored as a series of clusters, each cluster being maybe 64 sectors, or 256 sectors  A file can  have 10s of thousands of clusters.  On a FAT32, each cluster is pointed to by data in the File allocation Table (FAT).  This table is deleted when a file is deleted, or the chip reformatted.  The process is similar on a exFAT memory chip, though the FAT is not used for sequential files. Why are the files recorded out of sequence?  A video file is basically made up of two sections, video data and index information.  When a video recording is started, obviously the length is unknown.  For this reason, it is not possible to know how long the index information will be.  Many video files are logically <index info> followed by <video data>.  Some cameras allocate a large area for the index info, and another one stores index info at the start of the memory chip, and video data at the other end of the memory chip.  However, a very common approach is to store the video data (mdat) physically first on the memory chip, and then add the index info (moov atom) physically after the video.  The FAT is then written in such a  way that the index info is seen first, logically followed by the video data. If a common data carving process is used to recover the video, the program will see a file start followed by video and recover the data.  Unfortunately, it will be the header from file 1, joined to the video from file 2.  The result is nothing works, and all the user can see is a blank screen.  Many data recovery companies will then claim that the video was corrupted, which is why it failed and try and repair part of video 2 with part of video 1.  We would speculate that many software companies tested their software by copying video files to memory chips, deleting and recovering.  This process would write sequential files, and so data carving would work. For many standard cameras taking videos, and specific video cameras it is normal for a video on the original memory chip to be in 2 or 3 different sections, or fragments.  This number can increase if the camera allows embedded still JPEGs to be taken whilst recording a video, or if separate videos have been deleted, hence fragmenting the memory chip. CnW Recovery software is probably the only software package to process original memory chip for many camera types, and GoPro cameras.  The GoPro Recovery package takes the features within CnW and optimises for just the GoPro, and also adds extra recovery modes for partial images.

GoPro Camera Recovery

The above section describes many common cameras.  The GoPro camera takes recover requirements to a new level.  Although each Hero model is different, there are common issues with the data being physically stored in a different sequence to the logical order.  The major issue is that GoPro Hero 3 and 4 cameras typically store two data sequences, a high resolution .MP4 and a low resolution .LRV.  Both are standard MP4 files with the normal elements, <ftyp><moov><mdat> but the two streams are interleaved.  On one example the low resolution fragment was about 0x400 sectors long (1024) and the MP4 fragment was about 0xa000 sectors long  (40,000).  These sizes are not fixed, and vary between different areas of the video.  As the files have been deleted, there is no information remaining on how each fragment is saved.  This is where GoPro Recovery software does it’s clever work.  The chip is scanned and all atoms (mdat, moov, and ftyp) starts are noted.  Then each video frame is also located.  GoPro Hero, and Hero 4 have audio frames and video frames tagged.   With this knowledge, it is possible to tie the index with the video data, and create  a pair of sequential playable video files.  Some DJI cameras work in a very similar way and so can be recovered.  The demo will show a thumbnail if the camera is compatible

GoPro partial file recovery

Occasionally the camera may fail due to a physical accident.  When this happens it is likely that the video will not be complete.  Current development will ensure that the partial video will be recovered, and playable version generated. Partial file recovery is a complex procedure.  First the high and low resolution video streams have to be separated out and then the index has to be created.  For Hero 3 cameras the high and low resolution streams are interleaved and there are no specific tags to determine the start and length of each audio or video frame.  Fortunately, the video frame does have an embedded length, but the audio frame can only be determined by decoding. The ‘clever’ part of the recovery system is to separate out the high and low resolution streams, even when a cluster has no video or audio header information.  GoPro recovery software has developed ways of doing this with a high success rate. With this complex recovery process, CnW feel that it is the only company that can perform valid GoPro video recovery from the camera memory chip.

Recovery of other digital cameras

The GoPro camera is probably the most complex camera to recover deleted video from, but many other camera have similar issues.  Fortunately, CnW Recovery has a general purpose product that supports many video camera types.  This list includes the following cameras, though the list does grow on a regular basis.  Cameras supported *Canon EOS/Rebel series *Canon SX600  *HS Canon HF-G30 Fuji Film FinePix XP50  GoPro Hero GoPro Hero 3+ Black GoPro Hero 4 Silver Kodak Zx1 Pocket Video camera Nikon Corporation D5100 Samsung HMX200 Samsung HMX300 Samsung Galaxy phone Sanyo E1 *Sony PMW-F3 *Sony PMW-150 Panasonic Lumix GH4 When standard recovery programs to to recover from the camera memory chip of these cameras, most fail.  They may find an .MP4 file, but it will not play.  CnW has a high success rate with these and many more cameras. * is part of current GPR software as well