gstream与deepstream

deepstream sdk是基于gstream框架开发的
gstream用pipeline的形式,把各个element连接起来。所以使用deepstream时,有很多插件是原本gstream自带的,有些的deep stream自己的。
deepstream插件介绍:
https://docs.nvidia.com/metropolis/deepstream/dev-guide/#wwpID0E0TB0HA
在这里插入图片描述

列出所有插件列表

gst-inspect-1.0
查看某一插件的详细信息

通过gst命令可以查看到有很多nvidia官方插件
gst-inspect-1.0 -a |grep NVIDIA

gst-inspect-1.0 nvinfer
测试图像保存功能,输入源是测试用源插件,png编码

gst-launch-1.0 videotestsrc num-buffers=1 ! pngenc ! multifilesink location=img_0922_%d.png
nvidia demo infer

deepstream-test1-app ~/deepstream_sdk_v4.0.2_jetson/samples/streams/sample_720p.h264
读取与保存,经过 nv 处理,支持pngenc ,jpegenc

gst-launch-1.0 filesrc location= samples/streams/sample_720p.jpg ! jpegparse ! nvv4l2decoder ! nvvideoconvert ! pngenc ! filesink location=rd4.png

gst-inspect-1.0 rtspsrc
...
Element Properties:
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rtspsrc0"
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  async-handling      : The bin will handle Asynchronous state changes
                        flags: readable, writable
                        Boolean. Default: false
  message-forward     : Forwards all children messages
                        flags: readable, writable
                        Boolean. Default: false
  location            : Location of the RTSP url to read
                        flags: readable, writable
                        String. Default: null
  protocols           : Allowed lower transport protocols
                        flags: readable, writable
                        Flags "GstRTSPLowerTrans" Default: 0x00000007, "tcp+udp-mcast+udp"
                           (0x00000000): unknown          - GST_RTSP_LOWER_TRANS_UNKNOWN
                           (0x00000001): udp              - GST_RTSP_LOWER_TRANS_UDP
                           (0x00000002): udp-mcast        - GST_RTSP_LOWER_TRANS_UDP_MCAST
                           (0x00000004): tcp              - GST_RTSP_LOWER_TRANS_TCP
                           (0x00000010): http             - GST_RTSP_LOWER_TRANS_HTTP
                           (0x00000020): tls              - GST_RTSP_LOWER_TRANS_TLS
  debug               : Dump request and response messages to stdout(DEPRECATED: Printed all RTSP message to gstreamer log as 'log' level)
                        flags: readable, writable, deprecated
                        Boolean. Default: false
  retry               : Max number of retries when allocating RTP ports.
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 65535 Default: 20 
  timeout             : Retry TCP transport after UDP timeout microseconds (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 5000000 
  tcp-timeout         : Fail after timeout microseconds on TCP connections (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 20000000 
  latency             : Amount of ms to buffer
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 2000 
  drop-on-latency     : Tells the jitterbuffer to never exceed the given latency in size
                        flags: readable, writable
                        Boolean. Default: false
  connection-speed    : Network connection speed in kbps (0 = unknown)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551 Default: 0 
  nat-method          : Method to use for traversing firewalls and NAT
                        flags: readable, writable
                        Enum "GstRTSPNatMethod" Default: 1, "dummy"
                           (0): none             - None
                           (1): dummy            - Send Dummy packets
  ...

可以根据对应的属性在代码中设置参数:

bin->src_elem = gst_element_factory_make ("rtspsrc", elem_name);
  g_signal_connect (G_OBJECT(bin->src_elem), "select-stream",
                    G_CALLBACK(cb_rtspsrc_select_stream),
                    bin);

  g_object_set (G_OBJECT (bin->src_elem), "location", config->uri, NULL);
  g_object_set (G_OBJECT (bin->src_elem), "latency", config->latency, NULL);
  g_object_set (G_OBJECT (bin->src_elem), "drop-on-latency", TRUE, NULL);
  g_signal_connect (G_OBJECT (bin->src_elem), "pad-added",
      G_CALLBACK (cb_newpad3), bin);

  g_signal_connect (G_OBJECT (bin->src_elem), "pad-removed",
      G_CALLBACK (cb_newpad4), bin);

参考:https://zhuanlan.zhihu.com/p/381788441

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值