Skip to main content

Desarrollar en reCamera con c&cpp

Configuración del Entorno

Recamera tiene recursos limitados y no tiene configurado un entorno de compilación para código C. Si quieres usar C/C++ para desarrollar aplicaciones en la recamera, necesitas configurar el entorno de compilación cruzada (Compilar el programa C/C++ en otro Linux, luego transferir el archivo compilado al terminal de recamera para su ejecución). Si estás usando Windows, puedes instalar Windows Subsystem for Linux (WSL) para ejecutar Linux (Ubuntu, OpenSUSE, Kali, Debian, o Arch Linux).

Paso1: Configurar el entorno de compilación en otro 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

Paso 2: Compilar el programa de instancia o el programa que deseas ejecutar en Linux. Ten en cuenta que el directorio "build" creado debe estar ubicado en el directorio raíz del proyecto ("build" debe estar al mismo nivel que "CMakeLists.txt").

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

Puedes ver las propiedades del archivo escribiendo file helloworld.

El "helloworld" verde (con el mismo nombre que la carpeta del programa) es el archivo ejecutable compilado.

Paso 3: En este paso, transferiremos el archivo ejecutable compilado al terminal Linux de la recamera para ejecutarlo. Primero, necesitamos iniciar sesión en el terminal de la recamera. Puedes usar la versión web como se muestra a continuación.

Alternativamente, puedes usar software de acceso remoto (por ejemplo, MobaXterm) para conectarte a la recamera.

Luego, escribe el siguiente código en tu Linux (se requiere contraseña):

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

El archivo ejecutable ha sido transferido exitosamente.

Paso 4: Ejecuta tu archivo ejecutable en la terminal de recamera.

./helloworld

Ejecución exitosa.

Más demos construidos con c&cpp

​Usar Recamera para Capturar Video en Streaming

Proporcionamos más demos de C/C++ para recamera. Puedes clonarlos desde GitHub: https://github.com/Seeed-Studio/sscma-example-sg200x. Es posible que ya los hayas clonado en el "Paso 1".

Video_demo es una aplicación de ejemplo que demuestra cómo usar la recamera para capturar fotogramas de video, guardarlos en diferentes formatos y transmitir video a través de RTSP (Protocolo de Transmisión en Tiempo Real). Puedes seguir el "Paso 2" para compilar y el "Paso 3" para subirlo al terminal de recamera. Nota: Antes de ejecutar el programa en el terminal de recamera, necesitas iniciar sesión en el espacio de trabajo de recamera (http://192.168.42.1/#/workspace) y terminar el Flow, ya que este programa consume recursos significativos de caché.

Necesitas ejecutar el programa con privilegios de superusuario para prevenir fallos en la asignación de memoria.

sudo ./video_demo

La salida de ejecución exitosa se muestra arriba. Anotaciones de Parámetros de Salida:

  1. El video se inicializa y configura para tres canales con diferentes formatos y velocidades de fotogramas:
    • Canal 0: formato RGB888, resolución 1920x1080, 10 FPS
    • Canal 1: formato NV21, resolución 1920x1080, 5 FPS
    • Canal 2: formato H.264, resolución 1920x1080, 30 FPS
  2. Dependiendo del canal:
    • Para Canal 0 y Canal 1: Los fotogramas se guardan en formatos RGB y NV21, respectivamente.
    • Para Canal 2: Los fotogramas se transmiten por RTSP.

Para ver y guardar la transmisión RTSP, puedes descargar el reproductor multimedia VLC y conectarte al flujo de red en: rtsp://192.168.42.1:8554/live0.

La latencia de la transmisión RTSP está dentro de aproximadamente 2 segundos.

La aplicación se ejecuta indefinidamente hasta ser interrumpida (Ctrl C). La aplicación configura manejadores de señales para salir elegantemente al recibir señales de terminación (SIGINT, SIGTERM).

Este ejemplo sirve como una introducción básica al uso de la recamera para procesamiento y transmisión de video. Los usuarios pueden modificar el código y adaptarlo para sus necesidades específicas, experimentando con diferentes formatos de video y configuraciones de transmisión.

Para más detalles, consulta nuestro repositorio de GitHub.


Soporte Técnico y Discusión de Productos

Gracias por elegir nuestros productos. Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...