- 当使用拉流插件的加密传输功能时,前置条件如下:
- 安装“libgiognutls.so”。
- 设置“GIO_MODULE_DIR”环境变量(“libgiognutls.so”所在的文件夹路径)。
- 编写pipeline时配置拉流插件的属性“tlsCertFilePathList”、“tlsValidationFlags”。
- 推荐使用加密登录,非加密登录有安全风险。
加密登录时,建议用户把用户名、密码加密保存到开发的应用中,使用mxVision构建pipeline时先解密再调用
CreateMultipleStreams进行构建。
- 如果使用配置文件做为pipeline模板时,建议将参数敏感信息部分在配置文件中使用${xxxx}替代(其中xxxx为对应的参数名),包括rtspurl中的用户名密码、tlsCertFilePathList中的口令信息。在使用mxVision构建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>>。
- mxVision软件包的安装路径下的“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
|
首次拉流的流地址无效时,属性为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,以逗号隔开,默认值为空, rtsp场景下不生效。(建议证书及密钥文件的权限设置为400,减少证书及密钥泄露的风险。) - CertCrt:服务端证书路径。
- CertKey:服务端证书私钥路径。
- CaCert:服务端CA证书路径。
- Token:加密私钥解密口令。
|
否
|
是
|
插件示例
- “rtspUrl”参数传入RTSP取流地址,示例以加密形式展示,需传入用户名与密码。
- “tlsCertFilePathList”参数传入了“server.crt”、“server.key”、“ca.crt”证书相关文件路径,证书生成与制作指导请参见自签名证书制作参考。
"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>",
"fpsMode": "1"
},
"next": "mxpi_videodecoder0"
},