Difference between revisions of "Linbian Usage Guide"
(→Demo programs) |
(→Demo programs) |
||
Line 98: | Line 98: | ||
...... | ...... | ||
</pre> | </pre> | ||
− | '''There is a instruction name readme.txt in every sample, you should read the document first when you running the sample, and then you can know how to config the sample.''' | + | '''There is a instruction name readme.txt in every sample, you should read the document first when you running the sample, and then you can know how to config the sample(sample_xxx.conf).''' |
'''app/''' includes a set of MPP samples with a command line based menu. '''sample_xxx/''' is a separate sample of the scene. Root privileges is required when run these sample. e.g. | '''app/''' includes a set of MPP samples with a command line based menu. '''sample_xxx/''' is a separate sample of the scene. Root privileges is required when run these sample. e.g. |
Revision as of 06:46, 23 January 2019
Contents
Terminal
On Linbian OS, the default terminal application is LXTerminal.
You can open it from Application Menu -> System Tools.
Camera Module
download source code from github
- ldcam developed base on gstreamer
compile
- compile on v5 board===
- you can execute "make" directly
- compile on your own env
- you should create the Makefile by yourself
user commd
- you can use "./ldcam -?" or "./ldcam --help" to get the cmd instructions
Webcams
Gstreamer
Camera source
- lindeniv4l2src: Video (video4linux2) Source
Use for CSI Camera
Example:
sudo gst-launch-1.0 lindeniv4l2src device=/dev/video1 ! video/x-raw,width=1920,height=1080,format=I420 ! videoconvert ! sunxifbsink video-memory=24
Omx hardware H.264 decoder and encoder
- omxh264dec: OpenMAX H.264 Video Decoder
Example:
sudo gst-launch-1.0 filesrc location=1c.mp4 ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! omxh264dec ! videoconvert ! sunxifbsink
- omxh264videoenc: OpenMAX H.264 Video Encoder
Example:
sudo gst-launch-1.0 lindeniv4l2src device=/dev/video1 ! video/x-raw,width=1920,height=1080,format=I420 ! videoconvert ! omxh264videoenc target-bitrate=5000000 ! mpegtsmux ! filesink location=1.ts
Display sink
- sunxifbsink: Accelerated console framebuffer video sink for sunxi-based devices
Example:
sudo gst-launch-1.0 -v videotestsrc pattern=ball name=left ! sunxifbsink
Play Video
Play Audio
Python
GPIO
MPP
MPP is the media process platform of Allwinner V5, including following components.
- system control, API family: AW_MPI_SYS
- This component deal with the media hardware initialization, other components initialization and component state management and etc.
- video input, API family: AW_MPI_VI
- video output, API family: AW_MPI_VO
- image stitch engine, API family: AW_MPI_ISE
- video encode, API family: AW_MPI_VENC
- video decode, API family: AW_MPI_VDEC
- mux, API family: AW_MPI_MUX
- demux, API family: AW_MPI_DEMUX
- audio input, API family: AW_MPI_AI
- audio output, API family: AW_MPI_AO
- audio endode, API family: AW_MPI_AENC
- audio output, API family: AW_MPI_AOUT
- Region, API family: AW_MPI_RGN
Allwinner official documents
- MPP Application Development Reference Manual, Chinese version.
- ISP Module User Guide, Chinese version, English version.
- EVE Application Development Reference Manual, Chinese version, English version.
- Human Counting Application Development Reference Manual, Chinese version
- Motion Detection Application Development Reference Manual, Chinese version
- Binocular depth of field (DOF) Application Development Reference Manual, Chinese version
Samples
Please refer to Demo programs.
Demo programs
Allwinner release a series of MPP samples. You can download from Github.
$ git clone https://github.com/lindenis-org/mpp_sample ~/mpp_sample
After downloading, You will get the following directory.
app/ Makefile.param README.md sample_adec/ sample_aenc/ sample_ai/ ......
There is a instruction name readme.txt in every sample, you should read the document first when you running the sample, and then you can know how to config the sample(sample_xxx.conf).
app/ includes a set of MPP samples with a command line based menu. sample_xxx/ is a separate sample of the scene. Root privileges is required when run these sample. e.g.
$ sudo ./app/release/app_mpp_sample *************************************************************** 1 : vi+(venc+rtsp)+vo 2 : vi+(venc+rtsp) 3 : vi+vo 4 : vi+ise+(venc+rtsp)+vo 5 : [vi+venc+vo]+[ai+aenc+ao]+rtsp 6 : vi->yuv+venc+rtsp 7 : vi+venc+mux 8 : vi+(venc+mux)+vo 9 : demux+vdec+vo 10 : ai+aenc+mux+ao 11 : demux+adec+ao 12 : Quit *************************************************************** Please choice 1~12 num:
RTSP
Location
app_mpp_sample
Building
$ cd ~/mpp_sample/app $ make
Running
$ sudo ./release/app_mpp_sample
There will shows the following message when you execultive the cmd, and type the num according the menu.
*************************************************************** 1 : vi+(venc+rtsp)+vo 2 : vi+(venc+rtsp) 3 : vi+vo 4 : vi+ise+(venc+rtsp)+vo 5 : [vi+venc+vo]+[ai+aenc+ao]+rtsp 6 : vi->yuv+venc+rtsp 7 : vi+venc+mux 8 : vi+(venc+mux)+vo 9 : demux+vdec+vo 10 : ai+aenc+mux+ao 11 : demux+adec+ao 12 : Quit *************************************************************** Please choice 1~12 num: 1 *************************************************************** 1 : Set VI+VENC scene (Resolution, default:4K@25fps+720P@25fps) 2 : Set VENC Payload Type (H264/H265, default:H264) 3 : Set VENC RC Mode (CBR/VBR/FIXQP, default:CBR) 4 : Set VENC Profile (BL/MP/HP, default:Main Profile) 5 : Set VENC rotate (0/90/180/270, default:rotate_0) 6 : Save confige and run this sample *************************************************************** Please choice 1~6 num: 1 ***************** Choice VI+VENC scene ************************** [0]:VI_4K@30fps + VENC(4K@30fps+VGA@30fps) [1]:VI_4K@25fps + VENC(4K@25fps+720P@25fps) [default] [2]:VI_2K@30fps + VENC(2K@30fps+720P@30fps) [3]:VI_1080P@30fps + VENC(1080P@30fps+720P@30fps) [4]:VI_2880x2160@30fps + VENC(2880x2160@30fps+1080P@30fps) [5]:VI_2592x1944@30fps + VENC(2592x1944@30fps+1080P@30fps) Please choose VI+VENC scene ID 0~3 or (q-Quit): 1 *************************************************************** 1 : Set VI+VENC scene (Resolution, default:4K@25fps+720P@25fps) 2 : Set VENC Payload Type (H264/H265, default:H264) 3 : Set VENC RC Mode (CBR/VBR/FIXQP, default:CBR) 4 : Set VENC Profile (BL/MP/HP, default:Main Profile) 5 : Set VENC rotate (0/90/180/270, default:rotate_0) 6 : Save confige and run this sample *************************************************************** Please choice 1~6 num: 6
Test result
Dual Camera view
Location
sample_virvi2ise2vo
Building
$ cd ~/mpp_sample/sample_virvi2ise2vo $ make
Running
$ sudo ./sample_virvi2ise2vo -path sample_virvi2ise2vo.conf
Test result
Face detection
Face detection based on EVE.
Location
sample_face_detect
Building
$ cd ~/mpp_sample/sample_face_detect $ make
Running
$ sudo ./sample_face_detect
The picture of face crop and store at ./pic directory when detected.
Test result
Motion detection
Motion detection based on CVE.
Location
sample_AILib/sample_vi2MOD
Building
$ cd ~/mpp_sample/sample_AILib/sample_vi2MOD $ make
Running
$ sudo ./sample_vi2MOD -path sample_vi2MOD.conf
The information of detected target was stored at ./DTCAResult.bin .
Human counting
Hunman counting based on CVE.
Location
sample_AILib/sample_vi2HCNT
Building
$ cd ~/mpp_sample/sample_AILib/sample_vi2HCNT $ make
Running
$ sudo ./sample_vi2HCNT -path sample_vi2HCNT.conf
The information of detected target was stored at ./HCNTResult.bin .
VLPR
VLPR based on CVE.
Location
sample_AILib/sample_vi2VLPR
Building
$ cd ~/mpp_sample/sample_AILib/sample_vi2VLPR $ make
Running
$ sudo ./sample_vi2VLPR -path sample_vi2VLPR.conf
The information of detected vehicle license plate was stored at ./VLPRResult.bin .
Binocular depth information image
BDII based on CVE.
Location
sample_AILib/sample_BDII
Building
$ cd ~/mpp_sample/sample_AILib/sample_vi2BDII $ make
Running
$ sudo ./sample_vi2BDII -path sample_vi2BDII.conf
The output is a 8bit-gray-scale picture, stored at ./BDIIResult.bin .
Image stitch
Camera module is in development.