输入插件

appsrc

功能描述

GStreamer原生插件。配合SendData接口与SendDataWithUniqueId接口使用,向Stream中发送数据,appsrc将数据发给下游元件,当且仅当Stream中存在appsrc插件时以上两个接口有效。

约束限制

插件基类(factory)

appsrc

输入和输出

  • 输入:外部接口调用。
  • 输出:buffer(数据类型“MxpiBuffer”)。

属性

具体请参见表1

表 1 appsrc插件的属性

属性名 描述 是否为必选项 是否可修改
blocksize 每个buffer读取的大小(以字节为单位),默认值为4096。
num-buffers 发送结束流(EOS)前,要输出的buffer个数,默认值为-1,无限制。
typefind 协商前运行类型查找。
do-timestamp 对buffer应用当前时间流,默认为false。
caps 源衬垫(pad)允许的功能(capabilities)。
size 数据流的大小(以字节为单位),如果未知,则为-1。
stream-type 流的类型,默认为Stream。
max-bytes 内部队列的最大字节数,默认值为200000,值为0代表无限制。
format 分段事件和查找(seek)的格式,默认为按字节查找。
block 最大字节排队时块推送缓冲区,默认为false。
is-live 是否作为活(live)源,默认为false。
min-latency 最小延迟,默认为-1,通常表示自动计算最小延迟。
max-latency 最大延迟,默认为-1,无限制。
emit-signals 发出需要的数据,足够的数据,寻找数据信号,默认为true。
min-percent 当队列中的字节低于最大字节的这个百分比时,发出需要的数据,默认为发送。
current-level-bytes 当前排队的字节数,默认为0。
duration 数据流的持续时间,以纳秒为单位,默认为18446744073709551615。

mxpi_rtspsrc

[!NOTICE]

  • 当使用拉流插件的加密传输功能时,前置条件如下:

    1. 安装“libgiognutls.so”。
    2. 设置“GIO_MODULE_DIR”环境变量(“libgiognutls.so”所在的文件夹路径)。
    3. 编写pipeline时配置拉流插件的属性“tlsCertFilePathList”、“tlsValidationFlags”。
  • 推荐使用加密登录,非加密登录有安全风险。

    加密登录时,建议用户把用户名、密码加密保存到开发的应用中,使用Vision SDK构建pipeline时先解密再调用CreateMultipleStreams进行构建。

    • 如果使用配置文件作为pipeline模板时,建议将参数敏感信息部分在配置文件中使用${xxxx}替代(其中xxxx为对应的参数名),包括rtspUrl中的用户名密码、tlsCertFilePathList中的口令信息。在使用Vision SDK构建pipeline时,先读取文件内容,解密后,将${xxxx}替换为用户名和密码,再调用CreateMultipleStreams进行串流。
    • 如选择将用户名、证书密码等值直接明文写在配置文件中,存在信息泄露的风险。请妥善保管用户名及密码。若密钥中包含特殊字符,请将其进行url编码,如username:pass@word@xxx.xxx.xxx.xxx:xxx/xxx应写为username:pass%40word@xxx.xxx.xxx.xxx:xxx/xxx(@字符的url编码为%40)
    • 拉流插件元素默认模板的作者信息为 root <<user@hostname.org>>
  • Vision SDK软件包的安装路径下的“lib/plugins”中的“libmxpi_rtspvideoinfo.so”为mxpi_rtspsrc插件的依赖,不可作为插件单独使用。

  • 如果用户自行下载gst-launch-1.0执行插件,为了避免敏感信息泄露,请使用**-q**命令禁止打印入参。

功能描述

接收外部调用接口的输入视频路径,对视频进行拉流,并将拉取的裸流存储到缓冲区(buffer)中,并发送到下游插件。

约束限制

目前只支持H.264、H.265拉流,加密传输功能只支持使用口令加密的证书私钥。

插件基类(factory)

mxpi_rtspsrc

输入和输出

  • 输入:无。
  • 动态输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiFrame”)。

属性

请参见表1

表 1 mxpi_rtspsrc插件的属性

属性名 描述 是否为必填项 是否可修改
rtspUrl RTSP取流地址(可以从网络摄像机获取,也可通过Live555等工具将本地视频文件转换为RTSP流)。
channelId 表示视频拉流的路数标识,默认值为0。
timeout 表示一段时间(timeout)没有拉流后,会断开拉流,默认值为0。
fpsMode 是否打印拉流帧率,只能填0或1。
0:不打印帧率(默认)。
1:打印帧率。
首次拉流的流地址无效时,属性为1时也不打印帧率。
tlsValidationFlags 用于验证服务的TLS证书验证标识,取值范围参考如下, rtsp场景下不生效:
1 (0x00000001):unknown-ca
2 (0x00000002):bad-identity
4 (0x00000004):not-activated
8 (0x00000008):expired
16 (0x00000010):revoked
32 (0x00000020):insecure
64 (0x00000040):generic-error
127 (0x0000007f):validate-all
tlsCertFilePathList 依次填写CertCrt、CertKey、CaCert、Token,Crl,以逗号隔开,默认值为空, rtsp场景下不生效。(证书及密钥相关文件的权限需设置为400)
CertCrt:本地(客户端)证书路径。
CertKey:本地(客户端)证书私钥路径。
CaCert:服务端CA证书路径。
Token:本地(客户端)加密私钥解密口令。
Crl:服务端证书吊销列表,该配置项为可选项。不配置时,插件不会校验服务端证书是否被吊销。
async-handling 处理异步状态更改。
message-forward 转发所有子消息。

插件示例

  • “rtspUrl”参数传入RTSP取流地址,示例以加密形式展示,需传入用户名与密码。
  • “tlsCertFilePathList”参数传入了“server.crt”、“server.key”、“ca.crt”和“server.crl”证书相关文件路径。
"mxpi_rtspsrc0": {
 "factory": "mxpi_rtspsrc",
 "props": {
  "rtspUrl": "rtsps://username:password@xxx.xxx.xxx.xxx:xxx/xxx",
  "channelId": "0",
  "tlsValidationFlags": "127",
  "tlsCertFilePathList": "xxx/server.crt,xxx/server.key,xxx/ca.crt,<cert_password>,xxx/server.crl",
  "fpsMode": "1"
 },
 "next": "mxpi_videodecoder0"
},