Editor’s note: Recent years have witnessed tremendous social development, increasing population migration and fast exchanging of information, all of which entails the constant transformation of the ways police department used to conduct forensics in order to meet ever-changing forms of crime. To meet this challenge, more and more hi-tech devices have been equipped, in recent years, for the police department to combat crimes. And DVR forensics, as one of the key branches of forensics, plays a crucial part in facilitating the transformation. To get a better understanding of DVR forensics, forensic experts from SalvationDATA will explain, starting from this issue, their research on DVR forensics.
1 Overview of Video Retrieval
Video retrieval, generally, indicates the process of retrieving the video clips related to certain cases by applying filters to time, location, motion tracking, color etc.. When a filter is applied, the DVR forensics software will detect, group, recognize, track and traverse all video frames that match the applied filter.
CCTV footage is vital in case solving because it records all that happened objectively. And it wouldn’t take much effort for one to find that surveillance cameras are deployed on almost every street in China.
While video surveillance helps to enhance social security, it also generates massive amounts of video clips. To locate the one relevant to the case is like searching for a needle in a haystack. Traditionally, the evidence was supposed to be located by human watching all video clips, but it is quite inefficient and evidence could be missed.
1.3 Video Source
The video clips involved in a case could involve any places like street, residence community, store etc. And the formats of recorded video clips vary a great deal because different DVR manufacturers tend to use different file systems.
2 Video Decoding
Video retrieval is impossible without video decoding, and the speed of decoding certainly affects video retrieval speed. Retrieving is a very time-consuming process. Take the result of a test run on an HD video(1920×1080,1280×720) for example, the retrieving speed could only reach real-time speed, which significantly decreases the case handling efficiency. Hence, an algorithm which could help improve the retrieving speed is needed in order to solve a case faster. But, when such algorithm is not available, the retrieving speed can also be improved with fast video decoding and image frame compressing.
The solution proposed by data experts from SalationDATA is to decode via standardizing API which standardizes all the input and output of all data types. To be more specific, the method can be divided into 2 types: decoding of video clips with universal formats and decoding of video clips with proprietary formats.
3.1 Universal Formats
Embedded with advanced encoding and decoding base, FFmpeg is a type of open-source software used to record and decode audio & video. Its technology has been integrated into many different types of video players.
As the test shows, the video formats supported by FFmpeg include asf, avi, rm, flv, mkv, mov, mp4, 3gp etc., which means that all recorded videos compatible with FFmpeg can be decoded and image frames compressed with it.
Our test showed that the best option, for a 1080p video, is to compress the image frames by 0.4X, and the speed is about 12X the real-time speed. When the image frames, for a 1080p video, are to be compressed by 0.25X, the speed is about 20X the real-time speed, which means that a one-hour long video can be retrieved within 3 minutes. For a 720p video, the speed can reach 48X the real-time speed when its image frames are compressed by 0.25X, and 80X for a video with 640×480.
Key C++ Code:
// Assigned output height/width *multiple
swScaleCtx = sws_getContext(
videoCodecCtx->width, videoCodecCtx->height, //height and width of frame
videoCodecCtx->pix_fmt, //data format of frame
videoCodecCtx->width * outZoom, videoCodecCtx->height * outZoom, //output height and width
dstFormat, //output frame format，use PIX_FMT_YUV420P
SWS_POINT, NULL, NULL, NULL)；
3.2 Proprietary Format
For those video formats that are not compatible, SDK tools provided by the vendor will be needed for decoding. And FFmpeg could be used to compress image frames.
Video retrieval technology can help quickly locate evidence from massive amounts of recorded video clips. But, for video retrieval to be possible, video decoding must be done in the first place. Currently, FFmpeg is used by many to decode video clips, but the solution offered by SalvationDATA is via standardizing API, which ensures that the input and output of all data types are universal. And the solution also includes compressing image frames, which also helps to improve retrieval efficiency. The solution introduced here has already been integrated into our DVR forensics solution VIP, which is having summer giveaway promotion now, contact us for more information!