我正在尝试制作一个脚本,使用 ffmpeg 将一堆延时摄影图像变成电影。
最新的问题是如何循环遍历图像,比如 500 个批次。
当天可能有 100 张图像,或者可能有 5000 张图像。
将其分开的原因是由于内存不足。
之后我需要使用 MP4Box 将它们组合在一起......
我对 bash 完全陌生,但并不完全是编程。
我认为需要发生的是
1)读入文件夹内容,因为图像可能不会连续命名
2)一次向ffmpeg发送500个列表进行处理(https://trac.ffmpeg.org/wiki/Concatenate)
2b)当你通过这个循环时,设置一个计数器来确定你已经完成了多少循环
3) 使用循环数创建 MP4Box cat 命令行以将它们全部连接到最后。
如果只有 500 张图像,则基本脚本是:
#!/bin/bash
dy=$(date '+%Y-%m-%d')
ffmpeg -framerate 24 -s hd1080 -pattern_type glob -i "/mnt/cams/Camera1/$dy/*.jpg" -vcodec libx264 -pix_fmt yuv420p Cam1-"$dy".mp4
MP4Box 的 cat 命令如下所示:
MP4Box -cat Cam1-$dy7.mp4 -cat Cam1-$dy6.mp4 -cat Cam1-$dy5.mp4 -cat Cam1-$dy4.mp4 -cat Cam1-$dy3.mp4 -cat Cam1-$dy2.mp4 -cat Cam1-$dy1.mp4 "Cam1 - $dy1 to $dy7.mp4"
不用说,我的项目非常感谢帮助