我有一台相机每隔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
吗?
ffmpeg
0.6.5 版本(concat
是在 1.1 版本中引入的),而且我不确定是否有权限更新它。 - jimjamslammylist.txt
,请注意file
不是文件名的占位符。每次在每个文件路径前面都应该写上它的字面意思file
。 - SteveLambert