如何使用来自rtsp流的ffmpeg循环输出一系列图像
How to output a sequence of images in a loop with ffmpeg from rtsp stream
我正在从监控摄像头读取 RTSP 流,并想使用 ffmpeg 将摄像头的快照创建为 jpeg。主要是它可以使用 -update 1 选项创建一个 snapshot.jpg,但是如果客户端应用程序在 ffmpeg 写入文件时发生(它经常做的事情),图像只会部分显示。
因此,我想使用 ffmpeg 在一种环形缓冲区中捕获多于 1 个图像,这样我就可以访问当前图像之前捕获的图像,并将最后 n 个图像作为简短历史记录。
尽管 ffmpeg 允许创建一系列 jpg,但这似乎是无限的。是否可以告诉 ffmpeg 以这样的文件模式创建图像:
pic1.jpg、pic2.jpg、pic3.jpg、pic4.jpg、pic5.jpg 和 pic5.jpg 之后使用 [=23= 重新开始] 等。这样它就可以连续消耗流而不会填满我的驱动器。不幸的是 -update 5 之类的东西似乎不起作用(ffmpeg 只是退出)。
原则上我也可以让它 运行 无限地清理所有早于 n 秒的文件,但这会引入额外的开销并且恕我直言,与使用这种环形缓冲区方法的 ffmpeg 相比,编程并不是真正干净的.
如有任何帮助,我们将不胜感激。
您必须使用分段混合器。
ffmpeg -i input -f segment -segment_time 0.0001 -segment_format singlejpeg -segment_wrap 5 pic%d.jpg
我正在从监控摄像头读取 RTSP 流,并想使用 ffmpeg 将摄像头的快照创建为 jpeg。主要是它可以使用 -update 1 选项创建一个 snapshot.jpg,但是如果客户端应用程序在 ffmpeg 写入文件时发生(它经常做的事情),图像只会部分显示。
因此,我想使用 ffmpeg 在一种环形缓冲区中捕获多于 1 个图像,这样我就可以访问当前图像之前捕获的图像,并将最后 n 个图像作为简短历史记录。
尽管 ffmpeg 允许创建一系列 jpg,但这似乎是无限的。是否可以告诉 ffmpeg 以这样的文件模式创建图像:
pic1.jpg、pic2.jpg、pic3.jpg、pic4.jpg、pic5.jpg 和 pic5.jpg 之后使用 [=23= 重新开始] 等。这样它就可以连续消耗流而不会填满我的驱动器。不幸的是 -update 5 之类的东西似乎不起作用(ffmpeg 只是退出)。
原则上我也可以让它 运行 无限地清理所有早于 n 秒的文件,但这会引入额外的开销并且恕我直言,与使用这种环形缓冲区方法的 ffmpeg 相比,编程并不是真正干净的.
如有任何帮助,我们将不胜感激。
您必须使用分段混合器。
ffmpeg -i input -f segment -segment_time 0.0001 -segment_format singlejpeg -segment_wrap 5 pic%d.jpg