Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
(165 intermediate revisions by the same user not shown)
Line 1: Line 1:
===Using Camera on Linux (MIPI Camera OV13850 & OV4689, and webcam logitect C920)===
 
Hardware Setting:
 
The Camera module can be connected to a MIPI port:<br />
 
{{#switch: {{{1}}}
 
| NanoPC-T4 =
 
[[File:T4-mipi-single-camera.jpg|frameless|500px]]<br>
 
| NanoPi-M4 =
 
[[File:M4-mipi-single-camera.jpg|frameless|500px]]<br>
 
| NanoPi-NEO4 =
 
[[File:Neo4-mipi-single-camera.jpg|frameless|500px]]<br>
 
| #default =
 
}}
 
  
<!--
+
{{BurnLinuxToExtDrive-Rockchip/zh|NanoPC-T4}}
M4-mipi-dual-camera.jpg
+
{{BurnLinuxToExtDrive-Rockchip|NanoPC-T4}}
T4-mipi-dual-camera.jpg
+
-->
+
 
+
FriendlyELEC provides some scripts use to test a camera's functions. You can run it in a commandline to test picture taking and video recording. <br />
+
You may try update this script to the lastest version by using the following commands:
+
<syntaxhighlight lang="bash">
+
cd /tmp/
+
git clone https://github.com/friendlyarm/gst-camera-sh.git
+
sudo cp gst-camera-sh/*.sh /usr/bin/
+
</syntaxhighlight>
+
 
+
There are three scripts:<br />
+
gst-camera.sh: preview, photo and video of a single camera <br />
+
dual-camera.sh: preview two cameras <br />
+
stop-gst-camera.sh: stop preview<br />
+
<br />
+
 
+
====Options in "gst-camera.sh"====
+
::{| class="wikitable"
+
|-
+
|Options || Comment
+
|-
+
|  --index or -i || Camera's index, it can be either 0 or 1. When two cameras are connected to a board you need to specify 1 to access the second camera.
+
|-
+
|  --action or -a || Specify an action, it can be "preview" to preview, "photo" to take a picture or "video" to record video
+
|-
+
|  --output or -o || Specify an output file to save a picture when taking a picture or video file when recording video
+
|-
+
|  --verbose or -v || If it is specified as "yes" it will output the complete command when "gst-launch-1.0" is called
+
|-
+
| -x || Using the rkximagesink plugin, the preview image will be output to the X11 window for the FriendlyDesktop and Lubuntu systems
+
|-
+
|  -g || Using the glimagesink plugin, the preview image will be output to the X11 window for the FriendlyDesktop and Lubuntu systems
+
|-
+
| -k || Using the kmssink plugin, the preview image will be output directly to the screen for the FriendlyCore system
+
|}
+
 
+
The script gst-camera.sh will automatically recognize OV13850, OV4689 and C920 camera,  and then pass the appropriate parameters to gst-launch-1.0.
+
 
+
====Usage of gst-camera.sh====
+
* '''Preview'''
+
<syntaxhighlight lang="bash">
+
gst-camera.sh --action preview
+
</syntaxhighlight>
+
* '''Picture Taking'''
+
You can run the following command to take a picture and save it as a "1.jpg" file,
+
<syntaxhighlight lang="bash">
+
gst-camera.sh -a photo -o 1.jpg
+
</syntaxhighlight>
+
 
+
* '''Preview and Record'''
+
You can run the following command to record video and save your video to a "1.ts" file. Hardware encoding is activated when it is recording video.
+
<syntaxhighlight lang="bash">
+
gst-camera.sh --action video -output 1.ts
+
</syntaxhighlight>
+
<br />
+
* '''Show Complete Command'''
+
If you add the "--verbose yes" option it will show a complete gsteamer command.
+
<syntaxhighlight lang="bash">
+
gst-camera.sh --action video --output 1.ts --verbose yes
+
</syntaxhighlight>
+
Here is the complete gsteamer command you will see:
+
<syntaxhighlight lang="bash">
+
gst-launch-1.0 rkisp num-buffers=512 device=/dev/video0 io-mode=1 ! \
+
    video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! \
+
        mpph264enc ! queue ! h264parse ! mpegtsmux ! \
+
        filesink location=/tmp/camera-record.ts
+
</syntaxhighlight>
+
 
+
====gst-launch-1.0 parameter description====
+
Preview camera on FriendlyDesktop:
+
<syntaxhighlight lang="bash">
+
gst-launch-1.0 rkisp device=/dev/video1 io-mode=4 ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! rkximagesink
+
</syntaxhighlight>
+
Important parameters
+
::{| class="wikitable"
+
|-
+
|parameter || description
+
|-
+
| device || preview device(selfpath): /dev/video1 and /dev/video5, picture device(mainpath): /dev/video0 and /dev/video4, webcam device: /dev/video8
+
|-
+
| io-mode || 1: memory map, 4:dmabuf
+
|-
+
| rkximagesink/glimagesink/kmssink || rkximagesink for FriendlyDesktop, kmssink for FriendlyCore, glimagesink for webcam on FriendlyDesktop
+
|}
+
 
+
====Access the camera in OpenCV====
+
MIPI camera:
+
<syntaxhighlight lang="python">
+
cv.VideoCapture('rkisp device=/dev/video1 io-mode=4 ! video/x-raw,format=NV12,width=640,height=480,framerate=30/1 ! videoconvert ! appsink', cv.CAP_GSTREAMER)
+
</syntaxhighlight>
+
USB camera:
+
<syntaxhighlight lang="python">
+
cv.VideoCapture('rkisp device=/dev/video8 io-mode=4 ! videoconvert ! video/x-raw,format=NV12,width=640,height=480,framerate=30/1 ! videoconvert ! appsink', cv.CAP_GSTREAMER)
+
</syntaxhighlight>
+
<br />
+
Please refer to the sample code here for details:https://github.com/friendlyarm/install-opencv-on-friendlycore/tree/rk3399/examples<br />
+
<br />
+
 
+
====Camera application tutorial: Push video stream====
+
Please refre this guide: [[RTMP-For-RK3399]]<br />
+
 
+
====Reference resource====
+
http://blog.iotwrt.com/media/2017/10/01/camera/
+
http://www.360doc.com/content/16/1019/17/496343_599664458.shtml
+

Latest revision as of 09:58, 29 October 2024

1 安装系统到M.2或USB硬盘

可以通过使用TF卡启动eFlasher系统,将引导和系统分别安装到不同存储设备,但是由于CPU不支持直接从M.2和USB设备引导,所以虽然系统可以安装到M.2和USB设备,但是引导仍然需要安装到eMMC或者TF卡。
操作步骤如下:

  • 准备一张32G或以上容量的TF卡;
  • 访问此处的下载地址下载文件名为XXXX-eflasher-multiple-os-YYYYMMDD-30g.img.gz的固件(位于"01_系统固件/02_SD卡刷机固件(SD-to-eMMC)"目录);
  • 将固件写入TF卡,在NanoPC-T4上连接好存储设备,插入TF卡上电开机,接下来要在界面上操作,如果没有显示设备,可以使用VNC代替,请参考使用VNC操作eFlasher;
  • 在eFlasher界面上,首先选择要安装的OS,然后选择引导安装的目的地 (通常选eMMC),以及选择系统安装的目的地(可以选eMMC,M.2硬盘,USB存储设备等),如下图所示:

Eflasher-select-boot-and-system-device.png

  • 没有eMMC时可使用TF卡作为引导,方法是将另一个TF卡通过USB读卡器插入USB端口,然后选择USB设备作为引导安装目的地,从而实现从TF卡引导,但系统存放在M.2或USB硬盘的目的;
  • 烧写完成后,从NanoPC-T4弹出SD卡,引导在eMMC的情况下,NanoPC-T4会自动重启至你刚刚烧写的系统,如果引导安装在TF卡,则需要拨掉电源,插入TF引导卡再上电开机;
  • 更详细的安装指南请参考此处;

2 Installing the System to M.2 or USB Drive

You can use a TF card to boot the eFlasher system, allowing the boot and system to be installed on different storage devices. However, since the CPU doesn’t support booting directly from M.2 and USB devices, the system can be installed on M.2 and USB devices, but the boot must still be installed on eMMC or a TF card.
Steps are as follows:

  • Prepare a TF card with a capacity of 32GB or larger.
  • Visit [the download link here](http://download.friendlyelec.com/APITestPage) to download the firmware file named XXXX-eflasher-multiple-os-YYYYMMDD-30g.img.gz (located in the “01_Official images/02_SD-to-eMMC images” directory).
  • Flash the firmware to the TF card, connect the storage device you intend to use on NanoPC-T4, insert the TF card and power on, we need to perform the operations in the eFlasher GUI. If your NanoPC-T4 does not have a display interface, you can use VNC; refer to Using VNC to Operate eFlasher.
  • In the eFlasher GUI, select the OS to install, and in the OS settings interface, choose the destination for boot installation (typically eMMC), then choose the destination for system installation (options include eMMC, M.2 hard drive, USB storage, etc.), as shown below:

Eflasher-select-boot-and-system-device.png

  • If no eMMC is available, the TF card can serve as the boot by inserting another TF card into the USB port via a USB card reader and selecting it as the boot destination, enabling booting from the TF card with the system stored on the M.2 or USB drive.
  • After flashing, eject the SD card from NanoPC-T4. If booting from eMMC, NanoPC-T4 will automatically restart into the newly flashed system. If boot installation is on a TF card, power off, insert the boot TF card, and power on again.
  • For a more detailed installation guide, please refer to this link.