下载
中文
注册

mxpi_rtspsrc

  • 当使用拉流插件的加密传输功能时,前置条件如下:
    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"
},