Car DVR (Digital Video Recorder), is a simple camera recording device. It is used to track driving habits, and provide evidence of car accidents.
This project demonstrates a proof of concept of a car DVR based on Xilinx ZedBoard FPGA and OV7670 camera.
The project is divided into two major parts: a custom Programmable Logic IP (PL) for real time communication with the camera, and a software running on Processing System (PS) that acquires video frames and performs video compression and storage.
The communication between PL and PS is done using AXI Lite bus. This allows capturing the video in real-time with acceptable frame rate with real-time video encoding using FFmpeg library.
The video encoding is handled by a Linux service running in user space. The service handles splitting the recordings into fixed video length files, without any gaps in-between and saves them on an SD card or any other media in a playable MPEG file format which can be accessed at any time.