c++ - 使用 FFmpeg 从 IP 摄像机 (RTSP) 读取会导致 5xx 服务器错误

标签 c++ ffmpeg rtsp ip-camera

我有一个场景,我尝试使用 RTSP 方法从 IP 摄像头读取数据。

在我的开发 PC 上一切正常,rtsp url 类似于:

rtsp://admin:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cafbf8f9feff8afbf3f8e4fbfcf2e4fbe4fcfa" rel="noreferrer noopener nofollow">[email protected]</a>:554

但是当我尝试在 friend 的地方测试它时,他有不同的摄像头(Axis IP 摄像头),并且 url 无法打开。 自生成的日志类似于:

Error: avformat_open_input()
error message: Server returned 5XX Server Error reply

我尝试使用 HTTP 隧道打开它,但这次我收到了不同的错误:

error message: Error number -5 occurred

后一条错误消息甚至出现在我的开发 PC 上(仅提及我也尝试过此操作);所以 HTTP 隧道不好。

有人知道如何修复 5XX 服务器错误吗?

谢谢

最佳答案

实际上我最终知道他的相机不是Axis Q6045-S,而是P3346-VE版本。

整个问题是由于 URL 不正确造成的。从 RTSP 读取的正确 URL(对于此特定模型)如下:

rtsp://uname:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5929382a2a1968606b77686f617768776a" rel="noreferrer noopener nofollow">[email protected]</a>:554/axis-media/media.amp?videocodec=h264

然后一切正常。

关于c++ - 使用 FFmpeg 从 IP 摄像机 (RTSP) 读取会导致 5xx 服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34175140/

相关文章:

android - 如何从 rtsp 流中截取 Android 的 VideoView 的屏幕截图?

java - 如何使用我自己的默认媒体播放器播放媒体

c++ - 如何让 Visual Studio 使用 OpenCV 支持编译我的应用程序?

c++ - 将 stringstream 的内容传递给以 char* 为参数的函数

android - FFmpeg - 转换视频以在 Android 设备上播放的命令

linux - 通过命令行与背景轨道连接 MP3

docker - GStreamer 管道 + OpenCV RTSP VideoCapture 在 Docker 容器中不起作用

c++ - C++ 会优化空/非虚拟/无效方法调用吗?

c++ - DSSCL_EXCLUSIVE 不提供独占的音频输出。 DirectSound

ffmpeg在连接视频时复制音频编解码器类型