FRDM-IMX95ボードとUbuntu PCを使って、ネットワークカメラを実現する簡単な手法をご紹介します。※本記事は、i.MX 95カメラアプリケーションの導入が完了している前提で説明します。
(作業時間:20分) *i.MX 95カメラアプリケーションの導入が完了している前提
FRDM-IMX95とUbuntuがインストールされたPCを使って、
という構成をとってみます。
送信側、受信側いずれもGstreamerを使うのが簡単です。受信側にUbuntuを使うのもGstreamerが理由です。FRDM-IMX95が2台あれば、送信側、受信側どちらもFRDM-IMX95にしても構わないですね。
カメラ画像送信側(FRDM-IMX95)
4kのカメラ画像をキャプチャし、GPU 2Dで1920x1080にリサイズ、VPUでH.265にエンコード、ネットワークで送信する、という流れをFRDM-IMX95で実施します。ネットワークはEthernetでもWi-Fiでもどちらでも可能です。
カメラ画像受信側(Ubuntu PC)
こちらはネットワークパケットとして受け取ったH.265ストリームをデコードしてディスプレイに表示します。
Gstreamerをインストールします。Ubuntuで以下のコマンドを実施ください。
$ sudo apt update
$ sudo apt install \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-libav
次に、Ubuntu PCのIPアドレスを確認しておきます。
$ ifconfig
~~省略~~
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.80.138 netmask 255.255.192.0 broadcast 172.16.127.255
この例では172.16.80.138ですね。このIPアドレスはFRDM-IMX95での設定に使用します。
ここまでできたら、以下のコマンドを実行し送信側からのデータを待ち受けます。
gst-launch-1.0 \
udpsrc port=5000 caps="application/x-rtp,media=(string)video,encoding-name=(string)H265,payload=(int)96" ! \
rtpjitterbuffer latency=10 ! \
rtph265depay ! \
h265parse ! \
avdec_h265 ! \
videoconvert ! \
autovideosink sync=false
なお筆者はUbuntu 24.04を使って検証しています。
Gstreamerでのカメラを使うための設定はこちらの記事(URLを貼る)をご覧頂ければと思います。
今回は対向先のPCがありますので先ほどUbuntu側で確認したIPアドレスを、UBUNTU_IPにセットします。GStreamerのパイプラインは、冒頭で示したパイプラインを実現しています。
export LIBCAMERA_IPA_MODULE_PATH="/usr/lib/libcamera/ipa"
export LIBCAMERA_PIPELINES_MATCH_LIST="nxp/neo,imx8-isi,uvc"
CAMERA0=/base/soc/bus@42000000/i2c@42540000/os08a20_mipi@36
UBUNTU_IP="172.16.80.138"
gst-launch-1.0 \
libcamerasrc camera-name="${CAMERA0}" ! \
"video/x-raw,format=YUY2,framerate=30/1,width=3840,height=2160" ! \
imxvideoconvert_g2d rotation=4 ! \
"video/x-raw,width=1920,height=1080" ! \
queue ! \
v4l2h265enc ! \
"video/x-h265,level=(string)5,profile=(string)main" ! \
queue ! \
rtph265pay mtu=1400 config-interval=1 pt=96 ! \
udpsink host=${UBUNTU_IP} port=5000 sync=false
これをシェルで実行する、あるいは全部コピーしてスクリプトにして実行でもいいです。
以下のビデオが実行例です。FRDM-IMX95には電源しか繋がっていないことから分かるとおり、
Wi-Fiによる通信で実施しています。Ubuntu PC側もWi-Fiで、AP経由でFRDM-IMX95とUbuntu PCが接続されています。
今回はネットワークカメラの導入方法について紹介しました。送信側のFRDM-IMX95ボードには、Wi-Fiチップも搭載されているため、簡単にデモを実施することができました。
ネットワーク環境、受信側のPC性能(H.265のデコード性能)の影響はあると思いますが、Full HD(1920x1080)でのストリーミングも十分可能かと思います。
=========================
本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。
お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。
(既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.