Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

products:sbc:edge2:add-ons:imx415-mipi-camera

This is an old revision of the document!


Edge2 IMX415 MIPI Camera

Introduction

This document mainly introduces the usage of IMX415 MIPI Camera.

Hardware Connection

The reverse connection will damage the camera, please check the connection of the picture carefully before connecting.

Upgrade System

Please follow the documentation to upgrade your system to latest version.

Edge2 MIPI Camera Usage

Video Node

You can find the video node from the table below.

Video Node
CAM1 /dev/video33
CAM2 /dev/video24
CAM3 /dev/video42

Record Video via Gstreamer

Record Video

gst-launch-1.0 v4l2src device=/dev/video50 io-mode=mmap num-buffers=300 ! video/x-raw,format=NV12 ! amlvenc bitrate=8000 ! h264parse ! qtmux ! filesink location=test_50.mp4

Record Video with OpenCV

Install OpenCV

sudo apt update
sudo apt install libopencv-dev python3-opencv
mipi-camera.cpp
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
#include <string>
using
namespace  cv;
 
using
namespace  std;
 
int main(int argc, char** argv)
{
    int count=100;
    string str = argv[1];
    string res=str.substr(10);
    VideoCapture capture(stoi(res), CAP_V4L2);
    capture.set(CAP_PROP_FOURCC, VideoWriter::fourcc('U','Y','V','Y'));
    capture.set(CAP_PROP_FRAME_WIDTH, 1920);
    capture.set(CAP_PROP_FRAME_HEIGHT, 1080);
    while (count)
    {
        Mat frame;
        capture >> frame;
 
        if (frame.empty()) {
            break;
        }
        int h = frame.rows;
        int w = frame.cols;
        const char *name = "video";
        namedWindow(name, 0);
        imshow(name, frame);
        waitKey(30);
        count--;
    }
    return 0;
}

Compile:

gcc -o mipi mipi-camera.cpp -lopencv_imgproc -lopencv_core -lopencv_videoio -lopencv_imgcodecs -lopencv_highgui -std=c++11 -std=gnu++11 -Wall -std=c++11 -lstdc++ -I/usr/include/opencv4

Test:

Here we take CAM1 as an example to capture frame with OpenCV.

./mipi /dev/video33

Capture Frame with V4L2 API

Install V4l2 Utils

sudo apt update
sudo apt install v4l-utils

Capture Frame

Here we take CAM1 as an example to capture frame with v4l-utils.

v4l2-ctl -d /dev/video33 --set-fmt-video=width=3840,height=2160,pixelformat=NV12 --stream-mmap=3 --stream-skip=3 --stream-to=/tmp/data33.yuv --stream-count=1 --stream-poll

It will capture a 3840×2160 NV12 format frame to file /tmp/data33.yuv.

Preview the file:

$ ffplay -f rawvideo -pixel_format nv12 -video_size 3840x2160 /tmp/data33.yuv

See Also

Last modified: 2023/07/04 22:24 by nick