Gstreamer(gst-inspect, gst-launch) 測試指令

 

參考網站

http://wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet

安裝新版本Gstreamerc和相關模組

sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

 

查詢所有已安裝模組與元件

gst-inspect-1.0

gst-inspect-1.0 | grep nv

gst-inspect-1.0 | nvcamera

gst-inspect-1.0 | nvcamerasrc

查看模組詳細的參數

gst-inspect-1.0 nvcamerasrc

 

測試圖像

gst-launch-1.0 videotestsrc num-buffers=120 ! video/x-raw,width=1920,height=1080,rate=30/1 ! xvimagesink

 

螢幕錄製成影像檔

gst-launch-1.0 ximagesrc num-buffers=60 remote=1 use-damage=0 ! video/x-raw,framerate=30/1 ! videoconvert ! omxh264enc ! matroskamux ! filesink location=test.mp4

 

螢幕錄製成圖片檔

#使用nvjpegenc 會造成圖片異常
gst-launch-1.0 ximagesrc num-buffers=1 ! video/x-raw,framerate=1/1 ! nvjpegenc ! filesink location=test.jpeg

#改用jpegenc 圖片就正常
gst-launch-1.0 ximagesrc num-buffers=1 ! video/x-raw,framerate=1/1 ! jpegenc ! filesink location=test.jpeg

 

CSI Camera 或 USB Camera 錄製成影像檔案

gst-launch-1.0 nvcamerasrc num-buffers=200 sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! omxh264enc ! qtmux ! filesink location=test.mp4 -ev

 

CSI Camera 或 USB Camera 擷取成圖片檔案

gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! image/jpeg,width=1948,height=1096 ! filesink location=/home/nvidia/test.jpg

gst-launch-1.0 -e nvcamerasrc num-buffers=1 ! "video/x-raw(memory:NVMM), width=1920, height=1080, format=I420" ! nvjpegenc ! multifilesink location=test.jpg
#一次擷取10 個 jpeg檔案
gst-launch-1.0 -e nvcamerasrc sensor-id=0 num-buffers=10 ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=I420' ! nvjpegenc ! multifilesink location=test_%d.jpg
# 圖片名稱為現在的時間+數字
gst-launch-1.0 -e nvcamerasrc sensor-id=0 num-buffers=10 ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=I420' ! nvjpegenc ! multifilesink location=$(date +%s).%d.jpg

 

顯示 Camera 影像

gst-launch-1.0 nvcamerasrc num-buffers=60 ! 'video/x-raw(memory:NVMM), format=I420, width=1920, height=1080, framerate=30/1' ! nvvidconv ! 'video/x-raw' ! xvimagesink

 

顯示 Camera 影像上加入文字(textoverlay font-desc="Sans 24" text="Camera1" valignment=top halignment=left)

gst-launch-1.0 nvcamerasrc num-buffers=60 ! 'video/x-raw(memory:NVMM), format=I420, width=1920, height=1080, framerate=30/1' ! nvvidconv ! 'video/x-raw' ! textoverlay font-desc="Sans 24" text="Camera1" valignment=top halignment=left ! xvimagesink

 

顯示 Camera影像上加入時間計數(timeoverlay)

gst-launch-1.0 nvcamerasrc num-buffers=60 ! 'video/x-raw(memory:NVMM), format=I420, width=1920, height=1080, framerate=30/1' ! nvvidconv ! 'video/x-raw' ! timeoverlay ! xvimagesink

 

顯示多個Camera影像於一個畫面(1920x1080)

gst-launch-1.0 nvcamerasrc sensor-id=0 fpsRange="30 30" num-buffers=240 ! 'video/x-raw(memory:NVMM), width=(int)1920, \
height=(int)1080, format=(string)I420, framerate=(fraction)30/1' !  nvvidconv ! 'video/x-raw, width=(int)630, \
height=(int)480, format=(string)I420, framerate=(fraction)30/1' ! textoverlay font-desc="Sans 24" text="Camera1" ! mixer.sink_1  \
nvcamerasrc sensor-id=1 fpsRange="30 30" num-buffers=240 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvvidconv ! 'video/x-raw, width=(int)630, \
height=(int)480, format=(string)I420, framerate=(fraction)30/1' ! textoverlay font-desc="Sans 24" text="Camera2" ! mixer.sink_2  \
nvcamerasrc sensor-id=2 fpsRange="30 30" num-buffers=240 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvvidconv ! 'video/x-raw, width=(int)630, \
height=(int)480, format=(string)I420, framerate=(fraction)30/1' ! textoverlay font-desc="Sans 24" text="Camera3" ! mixer.sink_3  \
nvcamerasrc sensor-id=3 fpsRange="30 30" num-buffers=240 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvvidconv ! 'video/x-raw, width=(int)630, \
height=(int)480, format=(string)I420, framerate=(fraction)30/1' ! textoverlay font-desc="Sans 24" text="Camera4" ! mixer.sink_4  \
nvcamerasrc sensor-id=4 fpsRange="30 30" num-buffers=240 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvvidconv ! 'video/x-raw, width=(int)630, \
height=(int)480, format=(string)I420, framerate=(fraction)30/1' ! textoverlay font-desc="Sans 24" text="Camera5" ! mixer.sink_5  \
nvcamerasrc sensor-id=5 fpsRange="30 30" num-buffers=240 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvvidconv ! 'video/x-raw, width=(int)630, \
height=(int)480, format=(string)I420, framerate=(fraction)30/1' ! textoverlay font-desc="Sans 24" text="Camera6" ! mixer.sink_6  \
videotestsrc pattern="black" num-buffers=240 ! video/x-raw,width=1,height=1 \
! videomixer name=mixer sink_0::xpos=0 sink_0::ypos=0 sink_0::alpha=0 \
sink_1::xpos=0 sink_1::ypos=0 \
sink_2::xpos=0 sink_2::ypos=480 \
sink_3::xpos=630 sink_3::ypos=0 \
sink_4::xpos=630 sink_4::ypos=480 \
sink_5::xpos=1240 sink_5::ypos=0 \
sink_6::xpos=1240 sink_6::ypos=480 \
! xvimagesink sync=false -v

 

音頻解碼(AAC)

gst-launch-1.0 filesrc location=small.mp4 ! qtdemux name=demux demux.audio_0 ! queue ! avdec_aac ! audioconvert ! alsasink -e

音頻解碼(MP3)

gst-launch-1.0 filesrc location=piano2-CoolEdit.mp3 ! mpegaudioparse ! avdec_mp3 ! audioconvert ! alsasink -e

 

TX1 和 TX2 的 CSI Camera 不支援 v4l2src,如果要使用 Camera 建議使用 nvcamerasrc

文章標籤
全站熱搜
創作者介紹
創作者 熊熊 的頭像
熊熊

熊熊的部落格

熊熊 發表在 痞客邦 留言(0) 人氣(4,261)