raspi # gstreamer - tcpclientsink 和 udpsrc 插件用法


前提說明:

  在做gstreamer項目的時候某些時候需要主動發送設備中采集的數據到服務端,

這樣就可以利用tcpclientsink和udpsink插件,主動發送數據到指定的服務器。

tcpclientsink 用法

說明:如果想主動往服務器發送數據,可以通過tcpclientsink插件進行傳輸

具體的代碼如下

data-client:

發送到linux:

  raspivid -t 0 -w 800 -h 600 -fps 25 -g 5 -b 4000000 -vf -p 20,20,640,480 -o - | gst-launch-1.0 fdsrc ! h264parse ! gdppay ! tcpclientsink host=192.168.11.35 port=3000

發送到windows:

  raspivid -t 0 -w 800 -h 600 -fps 25 -g 5 -b 4000000 -vf -p 20,20,640,480 -o - | gst-launch-1.0 fdsrc ! h264parse ! rtph264pay config-interval=2 ! tcpclientsink host=192.168.11.35 port=3000
 
        

server:

linux:

  gst-launch-1.0 tcpserversrc host=192.168.11.35 port=3000 ! fdsink fd=2

windows:
  gst-launch-1.0 tcpserversrc host=192.168.11.35 port=3000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false
 

 rtsp server:(在gst-rtsp-server example項目中)

linux: 

  ./test-launch "( tcpserversrc host=192.168.11.35 port=3000 ! gdpdepay ! rtph264pay name=pay0 pt=96 )"

windows:

  ./test-launch "( tcpserversrc host=192.168.11.35 port=3000 ! application/x-rtp,payload=96 ! rtpjitterbuffer ! rtph264depay ! h264parse ! rtph264pay name=pay0 pt=96 )"
 
        

 這樣就可以在手機或者客戶端用rtsp軟件進行實時視頻傳輸了,

 

rtsp-server需要注意:

  因為rtsp服務器是需要數據的時候才接受來自tcpserversrc的數據,所以必須在手機或者客戶端連接上rtsp的服務器端的時候,打開data-client才有效。

 打開順序為 rtsp-server->rtsp-client->tcpclientsink

 

 udpsink 用法:

data-client:

 

發送到linux:

  raspivid -t 0 -w 800 -h 600 -fps 16 -g 5 -b 1000000 -vf -p 20,20,640,480 -n -o - | gst-launch-1.0 --gst-debug=3 fdsrc ! h264parse ! gdppay ! udpsink host=192.168.11.12 port=3000

發送到windows:

  raspivid -t 0 -w 800 -h 600 -fps 16 -g 5 -b 1000000 -vf -p 20,20,640,480 -n -o - | gst-launch-1.0 --gst-debug=3 fdsrc ! h264parse ! rtph264pay config-interval=2 ! udpsink host=192.168.11.36 port=3000
 
        

 

server:

linux:  

  gst-launch-1.0 udpsrc port=3000 ! fdsink fd=2
windows:

  gst
-launch-1.0 udpsrc port=3000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false

 

rtsp-server:

linux : 

  ./test-launch "( udpsrc port=3000 ! gdpdepay ! rtph264pay name=pay0 pt=96 )"
windows:

  .
/test-launch --gst-debug=3 "( udpsrc port=3000 ! application/x-rtp,payload=96 ! rtpjitterbuffer ! rtph264depay ! h264parse ! rtph264pay name=pay0 pt=96 )"

 

 

需要注意:

 在udp的模式下,無論有沒有開啟rtsp-server,在data-client端都將耗費流量進行數據的傳輸。

 

 

rtsp-server需要注意:

  在linux下,必須在手機或者客戶端連接上rtsp的服務器端的時候,打開data-client才有效。

 打開順序為 rtsp-server->rtsp-client->udpsink

   而windows下不會如此

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM