如...
rtsp://user:pass@x.x.x.x/VideoString
已经很长时间了,不知道 11 的故事是什么,但是是的,ffmpeg 现在支持了。
ffmpeg -i rtsp://user:pass@xxxx/VideoString
作品。
ffmpeg 支持 rtsp 身份验证我认为您可能缺少涵盖 rstp URL 的引号。
例子:
不工作:
ffmpeg -i rtsp://user:pass@xxxx/VideoString
在职的 :
ffmpeg -i "rtsp://user:pass@xxxx/VideoString"
是的,我也有这个问题。似乎缺少摘要身份验证。有一些关于添加它的邮件列表评论。请参阅http://web.archiveorange.com/archive/v/yR2T4nBtThzJs27hqDLb但没有结论。
请注意,HTTP 基本身份验证在您的示例中的 URL 字符串中传递,但摘要是 md5 编码并作为 HTTP 请求中的单独元素传递。
http://www.live555.com/库也支持 http/digest 身份验证,我已经测试过,它可以工作。
测试连通性使用 live555 中的 testProgs
live/testProgs/openRTSP -4 -u admin admin -w 1280 -h 720 -f 20 rtsp://192.168.0.2/defaultPrimary?streamType=u > testmovie.mp4
是的,确实支持使用该命令ffmpeg
进行 RTSP 身份验证。ffplay
尝试改用该ffplay
命令:
ffplay rtsp://user:pass@x.x.x.x/VideoString
这对我有用。
在使用 ffmpeg 进行了大量挖掘之后,我发现在 ffmpeg 中使用授权的长网址在使用 VLC 时会失败。带有身份验证的 URL 长度应小于 140。因此 139 个字符有效,而 140 个字符失败method SETUP failed: 401 Unauthorized
PS在挖掘源代码后我发现https://github.com/FFmpeg/FFmpeg/blob/415f907ce8dcca87c9e7cfdc954b92df399d3d80/libavformat/rtsp.h#L423
看起来它是 128 字符的 url 没有密码。
我花了整个周末(ffmpeg 07/07/2014)并且可以说-不!也许 ffmpeg 有用于摘要/身份验证的 RTSP 代码,但它们在那里不起作用。我总是从带有摘要/身份验证的 IP 摄像头收到 401 错误,并且使用基本/身份验证做得很好。
带有 live555 的 VLC 适用于任何身份验证。
FFmpeg 似乎支持 Digest 身份验证,至少截至 2010 年 3 月 25 日提交: https ://github.com/FFmpeg/FFmpeg/commit/855e7732c6bcc7d52cd0863407a721c2bf00fcf1
实现摘要计算的逻辑主要在这个文件中: https ://github.com/FFmpeg/FFmpeg/blob/master/libavformat/httpauth.c
根据这个changelog,它进入了 0.6 版本: