如何给 ffmpeg 命令来解码带有“?”的 rtsp 流 在密码中?

Joh*_*ard 0 passwords ffmpeg escaping

假设密码是“密码?”。RTSP URL 可能如下所示:

rtsp://admin:password?@192.168.1.12:554/path/to/stream.sdp

问题是,当我在如下命令中使用它时:

ffmpeg -t 00:00:05 -i rtsp://admin:password?@192.168.1.12:554/path/to/stream.sdp out.mp4

我总是收到错误:

[tcp @ 0x7fa03a700160] Port missing in uri
rtsp://admin:admin\?@192.168.1.13:554/live/0/h264.sdp: Invalid argument
Run Code Online (Sandbox Code Playgroud)

我认为这是因为问号,但我无法让错误消失。我尝试过用双引号、单引号将 URI 括起来,并转义问号,\?但似乎没有任何效果。

Joh*_*ard 5

我想到了。您需要对其进行 URI 转义,因此请像对 URL 参数一样对其进行编码。所以 rtsp://admin:password?@192.168.1.33/live/0/h264.sdp变成 rtsp://admin:password%3F@192.168.1.33/live/0/h264.sdp