【发布时间】:2017-07-21 17:54:06
【问题描述】:
我正在尝试使用 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"
毋庸置疑,我的项目非常感谢您的帮助
【问题讨论】:
-
为什么需要使用 mp4box? ffmpeg 能够处理这个问题。
-
我知道这篇文章很长,但
man ffmpeg是一个不错的起点。