输入插件
appsrc
GStreamer原生插件。配合SendData接口与SendDataWithUniqueId接口使用,向Stream中发送数据,appsrc将数据发给下游元件,当且仅当Stream中存在appsrc插件时以上两个接口有效。 |
|
|
|
具体请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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]
当使用拉流插件的加密传输功能时,前置条件如下:
- 安装“libgiognutls.so”。
- 设置“GIO_MODULE_DIR”环境变量(“libgiognutls.so”所在的文件夹路径)。
- 编写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**命令禁止打印入参。
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必填项 | 是否可修改 |
|---|---|---|---|
| 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"
},