0

我有大量从闭路电视摄像机捕获的 jpg,我在 curl 命令中错误地使用了虚线日期时间戳。文件名是

 Underwater-Cam-2017-10-20_17-58-22.jpg

如果我做通配符,我会得到

bash: /Applications/ffmpeg: Argument list too long

我从其他帖子中了解到,我不想避免使用 glob 扩展模式,但我不确定如何使用多个序列号遍历这些文件。我尝试了这个连续的整数计数序列,回想起来显然不起作用,但我缺乏足够的知识来通过搜索解决这个问题。

/Applications/ffmpeg -y -i '/path/to/src/2017-10-20/Underwater-Cam-2017-10-20_%02d-%02d-%02d.jpg' -r 24 -vf "scale=hd720" -metadata:s:v rotate=0 -vcodec libx265 -preset veryfast -crf 24 -an -movflags +faststart /path/to/dest/uwcam-2017-10-20.mp4

我正在使用 bash 4 的 Mac 上执行此操作。

4

1 回答 1

3

将列表输出到文件(没有任何通配符)并使用ffmpeg's concat demuxer怎么样?

例子:

$ ls
Underwater-Cam-2017-10-20_17-58-21.jpg  Underwater-Cam-2017-10-20_17-58-23.jpg
Underwater-Cam-2017-10-20_17-58-22.jpg

$ find -type f -name '*.jpg' -printf '%P\n' | xargs -I {} echo "file '{}'" > list

$ cat list
file 'Underwater-Cam-2017-10-20_17-58-21.jpg'
file 'Underwater-Cam-2017-10-20_17-58-22.jpg'
file 'Underwater-Cam-2017-10-20_17-58-23.jpg'

接着ffmpeg -f concat -i list ... <output>

于 2018-12-18T14:21:31.653 回答