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。
正在尝试通过 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。