代码之家  ›  专栏  ›  技术社区  ›  Max Ridman

FFmpeg抓取RTSP IP摄像机

  •  1
  • Max Ridman  · 技术社区  · 7 年前

    试图通过FFmpeg正确抓取海康威视品牌的IP摄像机。

            "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,
    

    结果总是伴随着这些警告:

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Markus Schumann    7 年前

    我猜想您的相机没有实现RTCP(发送方报告正确)。

    RTP是关于媒体流的。 RTSP是设置连接的控制协议。

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

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