GStreamer 〜導入編〜
はじめに
家に転がってるJetsonNanoで何か遊びたいな〜と思い、DeepStreamでもやってみる。 以前、GStreamerを業務で使って実装していたけどすっかり忘れてしまった。。
まずはGStreamerを思い出そう。
準備
JetsonNanoの準備
まずはVersionのチェックから。 最新はここで確認。
現在の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をコマンドで使ってみよう。