FFmpeg 抓取 RTSP IP 摄像机

FFmpeg grabbing RTSP IP Camera

正在尝试通过 FFmpeg 正确抓取 IP 摄像机,海康威视品牌。

这就是 FFmpeg 的情况:

        "ffmpeg",
        "-rtsp_transport", "tcp",
        "-stimeout", "3000000",
        "-re",
        "-i", stream,
        "-vcodec", "copy",
        "-acodec", "libfdk_aac",
        "-f", "segment",
        "-segment_list_type", "m3u8",
        "-segment_list", name,
        "-segment_list_size", "1",
        "-segment_format", "mpegts",
        "-segment_time", "5",
         segment_filename,

结果总是带有这些警告:

[segment @ 0x560d0df9d1e0] 输出流中的非单调DTS 0:0;上一个:33976,当前:7200;更改为 33977。这可能会导致输出文件中的时间戳不正确。

我受困于这些警告,不知道如何在不重新编码流的情况下摆脱它们。确实那破坏了我的时间戳。

我猜你的相机没有实现 RTCP(发件人报告正确)。

RTP 是关于媒体流的。 RTSP 是建立连接的控制协议。 RTCP 是发件人报告。

RTCP 从挂钟和 RTP 时间戳生成正确的时间戳。 我不止一次看到错误的缺少 RTCP 实现。

在调试器中使用 Wireshark 验证您的摄像头是否提供正确的时间戳或 运行 Live555。