0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

jetson gstream

Last updated at Posted at 2021-12-30

プラグインの動作確認

gst-inspect-1.0 プラグイン名の出力でプラグインの仕様を表示できる。

gst-inspect-1.0 nvvidconv

csi cameraをソースに指定する

nvarguscamerasrc

gst-launch-1.0 nvarguscamerasrc
! autovideosink

90度回転

参照:NVIDIA Jetson Nano GStreamer example pipelines for video transforming

gst-launch-1.0 nvarguscamerasrc \
! 'video/x-raw(memory:NVMM)\
, width=640\
, height=480\
, format=NV12\
, framerate=30/1' \
!  nvvidconv flip-method=clockwise \
!  nvoverlaysink

180度回転

gst-launch-1.0 nvarguscamerasrc \
sensor-id=1 \
! 'video/x-raw(memory:NVMM)\
, width=640\
, height=480\
, format=NV12\
, framerate=30/1' \
!  nvvidconv flip-method=rotate-180 \
!  nvoverlaysink

csiカメラを指定する

gst-launch-1.0 nvarguscamerasrc sensor-id=1 \
! autovideosink

file出力

gst-launch-1.0 filesrc location=output.mp4 \
! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv flip-method=1 ! 'video/x- raw(memory:NVMM), format=(string)I420' ! nveglglessink 

csiカメラ入力、Tを使用して、output.mp4出力と、Xwindow出力

参照:Jetsonビデオ処理プログラミング
参照:MACNICA-CLAVIS-NV/nvgst-venc-pipes

gst-launch-1.0 -e nvarguscamerasrc sensor-id=1 \
! "video/x-raw(memory:NVMM), format=(string)NV12" ! tee name=t t. \
! queue \
! nvv4l2h264enc \
 bitrate=4000000 \
 control-rate=1 \
 iframeinterval=30 \
 bufapi-version=false \
 peak-bitrate=0 \
 quant-i-frames=4294967295 \
 quant-p-frames=4294967295 \
 quant-b-frames=4294967295 \
 preset-level=1 \
 qp-range="0,51:0,51:0,51" \
 vbv-size=4000000 \
 MeasureEncoderLatency=false \
 ratecontrol-enable=true \
 maxperf-enable=false idrinterval=256 \
 profile=0 insert-vui=false \
 insert-sps-pps=false \
 insert-aud=false \
 num-B-Frames=0 \
 disable-cabac=false \
 bit-packetization=false \
 SliceIntraRefreshInterval=0 \
 EnableTwopassCBR=false \
 EnableMVBufferMeta=false \
 slice-header-spacing=0 \
 num-Ref-Frames=1 poc-type=0 \
! h264parse \
! qtmux \
! filesink location=output.mp4 t. \
! queue \
! nvegltransform \
! nveglglessink

ファイル保存

FILE=videotestsrc.mp4
gst-launch-1.0 videotestsrc is-live=true ! video/x-raw, format=I420,width=1920, height=1080 ! omxh264enc ! qtmux ! filesink location=$FILE -e

FILE=filename.mp4
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080,format=NV12, framerate=30/1' ! omxh264enc ! qtmux ! filesink location=$FILE -e

Dual H264 Encoding from Camera

FILE_A=filenameA.mp4
FILE_B=filenameB.mp4

gst-launch-1.0 -e nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=30/1' ! tee name=streams streams. ! queue ! omxh264enc bitrate=8000000 ! qtmux ! filesink location=$FILE_A streams. ! queue ! omxh264enc bitrate=8000000 ! qtmux ! filesink location=$FILE_B

RTP Streaming

参照:NVIDIA Jetson Nano GStreamer streaming pipelines

CLIENT_IP=<IP_ADDRESS>
gst-launch-1.0 -e nvarguscamerasrc \
! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=30/1' \
! omxh265enc control-rate=2 bitrate=8000000  \
! video/x-h265, stream-format=byte-stream \
! rtph265pay mtu=1400 \
! udpsink host=$CLIENT_IP port=5000 sync=false async=false
CLIENT_IP=<IP_ADDRESS>
gst-launch-1.0 -e nvarguscamerasrc \
! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=30/1' \
!  nvvidconv flip-method=rotate-180 \
! omxh265enc control-rate=2 bitrate=8000000  \
! video/x-h265, stream-format=byte-stream \
! rtph265pay mtu=1400 \
! udpsink host=$CLIENT_IP port=5000 sync=false async=false

client

gst-launch-1.0 udpsrc port=5000 \
! application/x-rtp,encoding-name=H265,payload=96 \
! rtph265depay ! h265parse ! queue ! avdec_h265 \
! xvimagesink sync=false async=false -e

rtsp sever

参照:Jetson Nano - その4: RTSPサーバーを立ち上げ

./test-launch "nvarguscamerasrc sensor-id=1 ! video/x-raw(memory:NVMM), format=NV12, width=1280, height=720, framerate=30/1 ! nvvidconv flip-method=rotate-180 ! video/x-raw, width=640, height=360, format=NV12, framerate=30/1 ! omxh265enc ! rtph265pay name=pay0 pt=96 config-interval=1"

rtsp sever

./test-launch "nvarguscamerasrc sensor-id=1 ! video/x-raw(memory:NVMM), format=NV12, width=1920, height=1080, framerate=30/1 ! nvvidconv flip-method=rotate-180 ! omxh265enc ! rtph265pay name=pay0 pt=96 config-interval=1"

rtsp source

rtspサーバの出力をファイルに保存

gst-launch-1.0 rtspsrc location=rtsp://hostname:8554/test ! \
	rtph264depay ! \
	h264parse ! \
	qtmux ! \
	filesink location=test1.mp4 -e 

ディスプレイに表示

gst-launch-1.0 -e rtspsrc location=rtsp://jetcard.local:8553/live ! \
	rtph264depay ! \
	nvv4l2decoder ! \
	nvvideoconvert ! \
	"video/x-raw(memory:NVMM)",format=NV12 ! \
	nv3dsink
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?