ffmpeg 没有在记录的文件中添加正确的时间戳

问题描述 投票:0回答:0

我正在使用 ffmpeg 使用 rtsp 协议记录摄像机流。我通过将 output_ts_offset 设置为纪元实时来创建 10 秒文件。 ffmpeg 命令:

ffmpeg -hide_banner -loglevel warning -rtsp_transport tcp -i rtsp://camera_ip:camera_port/stream_url -muxpreload 0 -muxdelay 0 -c:v copy -an -f segment -strftime 1 -segment_time 10 -output_ts_offset $EPOCHREALTIME -segment_atclocktime 1 -segment_clocktime_offset 30 -segment_format mp4 file_%s_10.mp4

每个文件都保存有偏移量 - start_time 作为纪元时间戳(ffmpeg 管道启动时的当前时间戳,并在创建 10 秒文件时继续添加 10 秒)并在文件名中添加相同的时间戳。例如 file_1669903600_10.mp4 FPS 为 15. ff探针输出:

start_time=1669903599.93233
duration=10.106771
[/STREAM]
[FORMAT]
filename=file_1669903600_10.mp4
[/FORMAT]

[STREAM]
start_time=**1669903605.53452**
duration=10.106771
[/STREAM]
[FORMAT]
filename=file_**1669903610**_10.mp4
[/FORMAT]

在第二个示例中,start_time 和文件名相差 5 秒,这是不正确的。 类似地,有时时间戳的差异高达 50000 秒。

文件在过去或将来都与 start_time 元数据一起保存。有人遇到过与 ffmpeg 相同的问题吗?

有时我得到持续时间为 76 毫秒的文件,然后这个时间戳差异(开始时间 - 文件名时间戳)开始负增长 10 并上升到 -47270(过去)或者有时它会在未来发生。

尝试将 fps 固定为 15(-r 15 参数)但没有用。

预期输出: 时间戳应该匹配(start_time 时间戳应该等于文件名时间戳)

ffmpeg timestamp rtsp ffprobe rtsp-server
© www.soinside.com 2019 - 2024. All rights reserved.