使用 ffmpeg 通过 strftime 和 %%d 从我的网络摄像头保存图片

使用 ffmpeg 通过 strftime 和 %%d 从我的网络摄像头保存图片

我尝试从我的网络摄像头保存图像,由于 ffmpeg 4.2.2 中的 strftime 不提供微秒,为了避免在同一秒内覆盖图像,我计划同时使用 strftime 和序列号。

ffmpeg -i /dev/video0 -f image2 "%04d.jpg"

给出 0001.jpg, 0002.jpg

ffmpeg -i /dev/video0 -f image2 -strftime 1 "%F_%H-%M-%S.jpg"

给出 2020-07-25_01-02-03.jpg, 2020-07-25_01-02-04.jpg ...

ffmpeg -i /dev/video0 -f image2 "%F_%H-%M-%S_%%04d.jpg"

给出 2020-07-25_01-02-03_%04d.jpg, 2020-07-25_01-02-04_%04d.jpg ...

我期望 %%04d 会被替换为数字,但事实并非如此。还有其他解决方案吗?

答案1

我相信您输入的命令如下所示:

ffmpeg -i /dev/video0 -f image2 "$(date +"%Y_%m_%d_%I_%M_%%d").jpg"

根据手册页 date命令可以给出纳秒(而不是微秒)。使用以下命令作为可能的解决方案:

ffmpeg -i /dev/video0 -f image2 "$(date +"%Y_%m_%d_%I_%M_%S_%N").jpg

相关内容