Skip to main content

reCameraでC&C++を使用した開発

環境設定

reCameraはリソースが限られており、Cコードのコンパイル環境が設定されていません。reCameraでC/C++を使用してアプリケーションを開発したい場合は、クロスコンパイル環境を設定する必要があります(別のLinux上でC/C++プログラムをコンパイルし、コンパイルされたファイルをreCameraターミナルに転送して実行)。Windowsを使用している場合は、Windows Subsystem for 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ターミナルにログインする必要があります。以下に示すようにWeb版を使用できます。

または、リモートアクセスソフトウェア(例: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(Real-Time Streaming Protocol)を介して動画をストリーミングする方法を実演するサンプルアプリケーションです。 「ステップ2」に従ってコンパイルし、「ステップ3」に従ってreCameraターミナルにアップロードできます。 注意:reCameraターミナルでプログラムを実行する前に、reCameraワークスペース(http://192.168.42.1/#/workspace)にログインしてFlowを終了する必要があります。このプログラムは大量のキャッシュリソースを消費するためです。

メモリ割り当ての失敗を防ぐため、スーパーユーザー権限でプログラムを実行する必要があります。

sudo ./video_demo

実行成功の出力は上記の通りです。 出力パラメータの説明:

  1. ビデオが初期化され、異なるフォーマットとフレームレートで3つのチャンネルが設定されています:
    • チャンネル 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...