• raspi # gstreamer


    前提说明:

      在做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下不会如此

  • 相关阅读:
    css3 画小蜜蜂
    css3 绘制书本
    JavaScript 封装插件学习笔记(一)
    Jquery 多行拖拽图片排序 jq优化
    可输入式下拉框
    竖向展开式菜单
    checkbox 全选或取消
    JQuery.lazyload 图片延迟加载
    轻量级弹出框 lightbox
    onoffswitch-checkbox
  • 原文地址:https://www.cnblogs.com/kkia/p/3816444.html
Copyright © 2020-2023  润新知