我想使用 fluent-ffmpeg
来创建一个目录的最后 n 个图像或数据库条目的视频。
正确的语法是什么?
这些是我的尝试:
模仿 shell 命令
ffmpeg()
.addInput('ls *png | tail -n 17')
.inputOptions("-pattern_type glob")
.output("output.mp4").run()
但它不接受shell命令;
空格 - 分隔路径
ffmpeg()
.addInput('a*.png b*.png ')
.inputOptions("-pattern_type glob")
.output("output.mp4").run()
但它不接受以空格分隔的文件列表;
图像路径数组
ffmpeg()
.addInput(array) // ['aa.png', 'a1.png',,,'bbb.png']
.inputOptions("-pattern_type glob")
.output("output.mp4").run()
但它不接受数组。
编辑:
另外,来自 Merge Multiple Videos using node fluent ffmpeg ,我可以使用文件数组添加多个输入
var ffmpeg= require('fluent-ffmpeg');
var f=ffmpeg()
pngarr.forEach(p => f.input(p)) /// pngarr is my array of png paths
但正在运行
f.output("./output.mp4").run()
我只获得了一个包含列表中第一个 png 的 0 秒视频。
最佳答案
ffmpeg 方法是可链接的,因此您可以像这样使用 reducer:
var chainedInputs = inputlist.reduce((result, inputItem) => result.addInput(inputItem), ffmpeg());
您的上一次编辑几乎做了同样的事情,但它一直在同一级别调用 .input() 而不是在前一个之上
关于node.js - 来自输入文件数组的 fluent-ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41155645/