This document mainly introduces OS08A10 MIPI Camera. The document is divided into two parts,The first part of the document describes how to connect. The second part introduces How to record video via Gstreamer and test your camera under Ubuntu.
The reverse connection will damage the camera, please check the connection of the picture carefully before connecting.
The video node for MIPI camera is /dev/video50
.
sudo apt update sudo apt install gstreamer-aml
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
sudo apt update sudo apt install libopencv-dev python3-opencv
#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; }
#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 gstformat = "NV12"; string gstfile = "v4l2src device=" + str + " ! video/x-raw,format=" + gstformat + ",width=1920,height=1080,framerate=30/1 ! videoconvert ! appsink"; VideoCapture capture(gstfile); 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:
./mipi /dev/video50
If you want to use Guvcview, you need to follow this documentation to fix Guvcview.
Guvcview settings as below.