【发布时间】:2015-07-23 03:47:03
【问题描述】:
我有一台相机每 2 到 3 秒拍摄一次延时照片,并且我保留了几天的滚动记录。因为文件很多,所以我将它们按天和小时保存在子目录中:
images/
2015-05-02/
00/
2015-05-02-0000-02
2015-05-02-0000-05
2015-05-02-0000-07
01/
(etc.)
2015-05-03/
我正在编写一个脚本来自动将每天的日出延时上传到 YouTube。我可以提前从网上获取日出时间,然后在日出后返回并使用find获取在那段时间拍摄的文件列表:
touch -d "$SUNRISE_START" sunrise-start.txt
touch -d "$SUNRISE_END" sunrise-end.txt
find images/"$TODAY" -type f -anewer sunrise-start.txt ! -anewer sunrise-end.txt
现在我想将这些文件转换为带有ffmpeg 的视频。理想情况下,我不想复制所有文件(因为我们说的是每小时大约 3.5 GB 的图像),并且我不想将它们重命名为 image000n.jpg 之类的东西,因为其他用户可能想要访问图像。复制图像是我的后备。
但我无法将find 的结果发送到ffmpeg。我知道 ffmpeg 可以在内部扩展通配符,但我不确定这是否适用于文件不全部位于一个目录中的情况。我还看到一些人使用find 的--exec 选项和ffmpeg 进行批量转换,但我不确定这是否适用于图像序列输入(而不是转换 1000图像转换成 1000 个单帧视频)。
关于如何将两者联系起来的任何想法 - 或者,如果没有,将多个子目录的日期范围内的文件作为图像序列获取到 ffmpeg 的更好方法?
【问题讨论】: