FFMPEG:RTSP 客户端将“Keep Alive”数据包发送回摄像机

FFMPEG:RTSP 客户端将“Keep Alive”数据包发送回摄像机

我正在使用 FFMPEG 库(Windows 版本)连接并传输来自 IP 摄像机的 RTSP 流,这在 Dahua、Hikvision 等上运行没有任何问题。

伪代码 :

avformat_open_input (...) .... .... av_read_play (...) ... ... while (TRUE) { int nRet = av_read_frame(...) if (nRet == AVERROR_EOF) { OutputDebugString("AVERROR_EOF\n"); 中断; } else if (nRet < 0) 中断;

// 处理数据包

av_free_packet(...); av_init_packet(…); }

但是,当使用 RTSP URL 连接到 Grandstream IP 摄像机时:

rtsp://管理员:[电子邮件保护]/0

av_read_frame 在 28 个视频帧后失败并出现 AVERROR_EOF 错误(无论相机设置的分辨率、帧速率等为何,始终是 28 个视频帧)

但是,当我在 VLC 中使用相同的 RTSP URL 时,它会连接并维持视频流正常,VLC 是否会将“保持活动”数据包或“接收器报告”发送回摄像机以保持连接处于活动状态。

如果需要,那么我如何从 FFMPEG 库中执行此操作。

提前致谢

伊恩

相关内容