GStreamerのインストールとキャプチャ確認


## PC環境
* 何をどう入れたか解らなくなってしまいましたが結果、下記のパッケージをインストールしました。 
```bash
$ gst-inspect-1.0 --version
gst-inspect-1.0 version 1.20.3
GStreamer 1.20.3
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0


$ sudo apt list --installed | grep gst
gir1.2-gstreamer-1.0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [インストール済み、自動]
gstreamer1.0-alsa/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.2 amd64 [インストール済み]
gstreamer1.0-clutter-3.0/jammy-updates,now 3.0.27-2ubuntu1 amd64 [インストール済み、自動]
gstreamer1.0-gl/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.2 amd64 [インストール済み、自動]
gstreamer1.0-libav/jammy-updates,now 1.20.3-0ubuntu1 amd64 [インストール済み]
gstreamer1.0-packagekit/jammy,now 1.2.5-2ubuntu2 amd64 [インストール済み]
gstreamer1.0-pipewire/jammy-updates,now 0.3.48-1ubuntu3 amd64 [インストール済み、自動]
gstreamer1.0-plugins-bad-apps/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [インストール済み]
gstreamer1.0-plugins-bad/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [インストール済み]
gstreamer1.0-plugins-base-apps/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.2 amd64 [インストール済み]
gstreamer1.0-plugins-base/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.2 amd64 [インストール済み、自動]
gstreamer1.0-plugins-good/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [インストール済み、自動]
gstreamer1.0-plugins-rtp/jammy,now 1.14.4.1 amd64 [インストール済み]
gstreamer1.0-plugins-ugly/jammy,now 1.20.1-1 amd64 [インストール済み]
gstreamer1.0-pulseaudio/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [インストール済み]
gstreamer1.0-tools/jammy-updates,now 1.20.3-0ubuntu1 amd64 [インストール済み、自動]
gstreamer1.0-x/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.2 amd64 [インストール済み、自動]
libclutter-gst-3.0-0/jammy-updates,now 3.0.27-2ubuntu1 amd64 [インストール済み、自動]
libgstreamer-gl1.0-0/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.2 amd64 [インストール済み、自動]
libgstreamer-plugins-bad1.0-0/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [インストール済み、自動]
libgstreamer-plugins-base1.0-0/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.2 amd64 [インストール済み、自動]
libgstreamer-plugins-good1.0-0/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [インストール済み、自動]
libgstreamer1.0-0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [インストール済み、自動]
libgstrtspserver-1.0-0/jammy,now 1.20.1-1 amd64 [インストール済み]
```
#### [PC USBカメラ] YUYVフォーマットでキャプチャ(1080p/30fps)
```bash
$ gst-launch-1.0 -e v4l2src device=/dev/video0 ! 'video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1' ! videoconvert ! autovideosink
```
#### [PC USBカメラ] MJPGフォーマットでキャプチャ(1080p/60fps)
```bash
$ gst-launch-1.0 -e v4l2src device=/dev/video0 ! 'image/jpeg,width=1920,height=1080,framerate=60/1' ! jpegparse ! jpegdec ! videoconvert ! autovideosink
```
#### [PC USBカメラ] H264フォーマットでキャプチャ(1080p/60fps)
```bash
$ gst-launch-1.0 -e v4l2src device=/dev/video0 ! 'video/x-h264,width=1920,height=1080,framerate=60/1' ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
# Nvidia
# gst-launch-1.0 -e v4l2src device=/dev/video0 ! 'video/x-h264,width=1920,height=1080,framerate=60/1' ! h264parse ! nvh264dec ! videoconvert ! autovideosink
# OpenH264
# gst-launch-1.0 -e v4l2src device=/dev/video0 ! 'video/x-h264,width=1920,height=1080,framerate=60/1' ! h264parse ! openh264dec ! videoconvert ! autovideosink
```
![Screenshot from 2024-07-05 19-15-44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117164/57da39c0-cbb9-4f7f-6e79-faca20428c2a.png)
![alt text](<Screenshot from 2024-07-05 19-15-44.png>)

## SBC(Jetson)
```bash
jetson@nvidia:~$ gst-inspect-1.0 --version
gst-inspect-1.0 version 1.14.5
GStreamer 1.14.5
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0

jetson@nvidia:~$ sudo apt list --installed | grep gst
gir1.2-gst-plugins-base-1.0/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み、自動]
gir1.2-gstreamer-1.0/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.2 arm64 [インストール済み、自動]
gstreamer1.0-alsa/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み]
gstreamer1.0-clutter-3.0/bionic,now 3.0.26-1 arm64 [インストール済み、自動]
gstreamer1.0-gl/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み、自動]
gstreamer1.0-libav/bionic-updates,now 1.14.5-0ubuntu1~18.04.1 arm64 [インストール済み]
gstreamer1.0-packagekit/bionic-updates,bionic-security,now 1.1.9-1ubuntu2.18.04.6 arm64 [インストール済み]
gstreamer1.0-plugins-bad/bionic-updates,now 1.14.5-0ubuntu1~18.04.1 arm64 [インストール済み]
gstreamer1.0-plugins-base/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み]
gstreamer1.0-plugins-base-apps/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み]
gstreamer1.0-plugins-good/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み]
gstreamer1.0-plugins-ugly/bionic-updates,now 1.14.5-0ubuntu1~18.04.1 arm64 [インストール済み]
gstreamer1.0-pulseaudio/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み]
gstreamer1.0-tools/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.2 arm64 [インストール済み]
gstreamer1.0-x/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み、自動]
libclutter-gst-3.0-0/bionic,now 3.0.26-1 arm64 [インストール済み、自動]
libgstreamer-gl1.0-0/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み、自動]
libgstreamer-plugins-bad1.0-0/bionic-updates,now 1.14.5-0ubuntu1~18.04.1 arm64 [インストール済み、自動]
libgstreamer-plugins-base1.0-0/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み、自動]
libgstreamer-plugins-base1.0-dev/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み、自動]
libgstreamer-plugins-good1.0-0/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.3 arm64 [インストール済み、自動]
libgstreamer1.0-0/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.2 arm64 [インストール済み、自動]
libgstreamer1.0-dev/bionic-updates,bionic-security,now 1.14.5-0ubuntu1~18.04.2 arm64 [インストール済み、自動]
nvidia-l4t-gstreamer/stable,now 32.7.5-20240611161210 arm64 [インストール済み]
```

#### [Jetson MIPIカメラ] キャプチャ(1080p/30fps)
```bash
jetson@nvidia:~$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! \
'video/x-raw(memory:NVMM), width=1920, height=1080, framerate=30/1' ! nv3dsink
```
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117164/53588cbe-35c7-5f09-a912-e024b941c7a6.png)

#### [Jetson MIPIカメラ] nvgstcaptureでキャプチャ(1080p/30fps)
```bash
jetson@nvidia:~$ nvgstcapture --image-res=3
```
![test3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117164/0a6a6ad6-fddd-f08f-89cb-8e006e936875.png)

## デコーダ/エンコーダのリストを確認
```bash
# デコーダ
jetson@nvidia:~$ gst-inspect-1.0 | grep -i decoder
nvjpeg:  nvjpegdec: JPEG image decoder
omx:  omxmpeg4videodec: OpenMAX MPEG4 Video Decoder
nvvideo4linux2:  nvv4l2decoder: NVIDIA v4l2 video decoder
...

# エンコーダ
jetson@nvidia:~$ gst-inspect-1.0 | grep -i encoder
nvjpeg:  nvjpegenc: JPEG image encoder
nvvideo4linux2:  nvv4l2vp9enc: V4L2 VP9 Encoder
nvvideo4linux2:  nvv4l2vp8enc: V4L2 VP8 Encoder
...

# Nvidia関係
jetson@nvidia:~$ gst-inspect-1.0 | grep -i nv
nvjpeg:  nvjpegdec: JPEG image decoder
nvjpeg:  nvjpegenc: JPEG image encoder
...

# H.264関係
jetson@nvidia:~$ gst-inspect-1.0 | grep -i h264
omx:  omxh264enc: OpenMAX H.264 Video Encoder
omx:  omxh264dec: OpenMAX H.264 Video Decoder
nvvideo4linux2:  nvv4l2h264enc: V4L2 H.264 Encoder
...

# H.265関係
jetson@nvidia:~$ gst-inspect-1.0 | grep -i h265
omx:  omxh265enc: OpenMAX H.265 Video Encoder
omx:  omxh265dec: OpenMAX H.265 Video Decoder
nvvideo4linux2:  nvv4l2h265enc: V4L2 H.265 Encoder
...
```