|
Hardware platform: Jetson TK1 Development Board (NVIDIA Tegra K1 Mobile Processor 32bit), Ningbo Sunny electric SP103A (OV16825) Module
Software platform: Ubuntu / Linaro 4.8.2-16ubuntu4 (Linux version 3.10.40 32bit)
Camera driver has been achieved, support v4l2 interface.
First, install the SDL library for the first time by the SDL-1.2.14 version of the source code for the install, always prompt when using SDL initialization failed. Second to enter the command "sudo apt-get remove libsdl1.2debian", "sudo apt-get install libsdl1.2-dev", and then install the SDL-1.2.15 source code to solve the problem through.
Then install x264, relatively simple steps
$ Git clone git: //git.videolan.org/x264.git
$ Cd x264
$. / Configure
$ Make
$ Sudo make install
Finally install ffmpeg, via git to download the latest version of the official website, the current version is version 2.8, by configure --enable-memalign-hack --enable-static, make, sudo make install to install it.
Our drive output is the raw sensor data for bayer raw10 format, each color occupying 16bit, only the lower 10 bits are valid data, order bggr. ffmpeg original code is not supported raw10, we need to make some modifications. Original code support bayer raw8 and bayer raw16, because bayer raw10 and bayer raw16 occupies two bytes are the same, so we refer bay raw16 modified. First ff_fmt_conversion_table in libavdevice / v4l2-common.c in an increase, where we directly borrowed raw16 format in the application process seems raw10 as raw16 use V4L2_PIX_FMT_SBGGR10 when v4l2 interface calls.
{AV_PIX_FMT_BAYER_BGGR16LE, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SBGGR10},
For raw16, currently code libswscale / bayer_template.c in BAYER_SHIFT set to 8, indicating that the lower 8 bits directly discarded because raw10 can only give up two low, so we will BAYER_SHIFT to 2.
To facilitate debugging can libavutil / log.c in av_log_level into AV_LOG_TRACE from AV_LOG_INFO, output for more information.
After finish the above changes recompile, install ffmpeg, then use the command "ffplay -f v4l2 -input_format bayer_bggr16le -video_size 4608x3456 -i / dev / video0" preview can be achieved, or if prompted SDL initialization fails, you can enter the shell DISPLAY =: 0 export DISPLAY command and set about DISPLAY. |
|
|
|