GStreamer 〜導入編〜

はじめに

家に転がってるJetsonNanoで何か遊びたいな〜と思い、DeepStreamでもやってみる。 以前、GStreamerを業務で使って実装していたけどすっかり忘れてしまった。。

まずはGStreamerを思い出そう。

準備

JetsonNanoの準備

まずはVersionのチェックから。 最新はここで確認。

developer.nvidia.com

現在のJetsonNanoのバージョンは以下のコマンドで確認。

$ cat /etc/nv_tegra_release

GStreamerの準備

準備といってもJetsonNanoのSD ImageにはGStreamerが最初から入っているので、インストールされているか確認するぐらい。

$ gst-inspect-1.0 --version

コマンド

カラーバー

まずはカメラを繋がなくても試せるカラーバー表示。

$ gst-launch-1.0 videotestsrc ! autovideosink

Pi Camera表示

カメラの認識確認

JetsonNanoがPiCameraを認識してるか確認するために、V4L2ツールをインストールする。

$ sudo apt -y install v4l-utils

バイス情報を表示する

$ v4l2-ctl --list-devices

大体video0なので、以下でデバイスが作成されていることだけ確認してもよい。

$ ls -al /dev/video0'
nvgstcapture

Jetsonなら以下のコマンドだけで表示される。

$ nvgstcapture

便利。

NVIDIAエレメント

GStreamerのコマンドを使うならnvarguscamerasrcエレメントが使える。

$ gst-launch-1.0 nvarguscamerasrc ! nvoverlaysink

全画面で表示される。

エメレントに設定できるパラメータは、下のコマンドで調べることができる。

$ gst-inspect-1.0 nvarguscamerasrc
$ gst-inspect-1.0 nvoverlaysink

パラメータを指定するとこんな感じ。

$ gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=640, height=480, format=(string)NV12, framerate=(fraction)30/1' ! nvoverlaysink

USBカメラ表示

USBカメラを使用する場合か以下のコマンド。

$ gst-launch-1.0 v4l2src ! ximagesink

※GStreamerはCSI(PiCamera)のコマンドを先に実行するとUSBカメラの出力ができないそうなので注意。

まとめ

なんとなく思い出してきた。次はDeepStreamをコマンドで使ってみよう。

参考