Skip to main content

在 reCamera 上使用 C&C++ 开发

环境配置

Recamera 资源有限,没有配置 C 代码的编译环境。如果您想在 recamera 上使用 C/C++ 开发应用程序,需要配置交叉编译环境(在另一台 Linux 上编译 C/C++ 程序,然后将编译后的文件传输到 recamera 终端执行)。如果您使用的是 Windows,可以安装 Windows 子系统 Linux (WSL) 来运行 Linux(Ubuntu、OpenSUSE、Kali、Debian 或 Arch Linux)。

步骤1:在另一台 Linux 上配置构建环境

sudo apt update
sudo apt install build-essential

mkdir recamera && cd recamera

wget https://github.com/Seeed-Studio/reCamera-OS/releases/download/0.1.5/reCameraOS_sdk_v0.1.5.tar.gz

tar -xzvf reCameraOS_sdk_v0.1.5.tar.gz

git clone https://github.com/sophgo/host-tools.git
git clone https://github.com/Seeed-Studio/sscma-example-sg200x.git

export SG200X_SDK_PATH=$HOME/recamera/sg2002_recamera_emmc/
export PATH=$HOME/recamera/host-tools/gcc/riscv64-linux-musl-x86_64/bin:$PATH

步骤2:编译实例程序或您想要在Linux上运行的程序。注意创建的"build"目录必须位于项目的根目录中("build"应该与"CMakeLists.txt"处于同一级别)。

cd $HOME/recamera/sscma-example-sg200x/solutions/helloworld
mkdir build && cd build
cmake ..
make

您可以通过输入 file helloworld 来查看文件属性。

绿色的 "helloworld"(与程序文件夹同名)是编译后的可执行文件。

步骤3:在这一步中,我们将把编译后的可执行文件传输到 recamera 的 Linux 终端中运行。 首先,我们需要登录到 recamera 终端。您可以使用如下所示的网页版本。

或者,您可以使用远程访问软件(例如 MobaXterm)连接到 recamera。

然后,在您的 Linux 上输入以下代码(需要密码):

sudo scp helloworld recamera@{recamera_IP}:/home/recamera/

可执行文件已成功传输。

步骤4:在reCamera终端上执行您的可执行文件。

./helloworld

执行成功。

更多使用 C&C++ 构建的演示

使用 Recamera 捕获流视频

我们为 recamera 提供了更多 C/C++ 演示。您可以从 GitHub 克隆它们:https://github.com/Seeed-Studio/sscma-example-sg200x。您可能已经在"步骤 1"中克隆了它。

Video_demo 是一个示例应用程序,演示如何使用 recamera 捕获视频帧,以不同格式保存它们,并通过 RTSP(实时流协议)流式传输视频。 您可以按照"步骤 2"进行编译,按照"步骤 3"将其上传到 recamera 终端。 注意:在 recamera 终端上执行程序之前,您需要登录到 recamera 工作区(http://192.168.42.1/#/workspace)并终止 Flow,因为此程序会消耗大量缓存资源。

您需要以超级用户权限运行程序以防止内存分配失败。

sudo ./video_demo

成功执行的输出如上所示。 输出参数说明:

  1. 视频已初始化并配置为三个不同格式和帧率的通道:
    • 通道 0:RGB888 格式,1920x1080 分辨率,10 FPS
    • 通道 1:NV21 格式,1920x1080 分辨率,5 FPS
    • 通道 2:H.264 格式,1920x1080 分辨率,30 FPS
  2. 根据通道不同:
    • 对于通道 0通道 1:帧分别以 RGB 和 NV21 格式保存。
    • 对于通道 2:帧通过 RTSP 流式传输。

要查看和保存 RTSP 流,您可以下载 VLC 媒体播放器并连接到网络流:rtsp://192.168.42.1:8554/live0。

RTSP 流的延迟大约在 2 秒以内。

应用程序会无限期运行直到被中断(Ctrl C)。应用程序设置了信号处理程序,在接收到终止信号(SIGINT、SIGTERM)时优雅退出。

此示例作为使用 recamera 进行视频处理和流式传输的基础介绍。用户可以修改代码并根据其特定需求进行调整,尝试不同的视频格式和流式传输配置。

更多详细信息,请参考我们的 GitHub 仓库


技术支持与产品讨论

感谢您选择我们的产品。我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...