来自input文件数组的fluent-ffmpeg
我想使用fluent-ffmpeg
来创build一个目录的最后n个图像或数据库条目的video。
哪个是正确的语法?
这些是我的尝试:
模仿shell命令
ffmpeg() .addInput('ls *png | tail -n 17') .inputOptions("-pattern_type glob") .output("output.mp4").run()
但不接受shell命令;
空间分离的path
ffmpeg() .addInput('a*.png b*.png ') .inputOptions("-pattern_type glob") .output("output.mp4").run()
但不接受空格分隔的文件列表;
图像patharrays
ffmpeg() .addInput(array) // ['aa.png', 'a1.png',,,'bbb.png'] .inputOptions("-pattern_type glob") .output("output.mp4").run()
但它不接受数组。
编辑:
此外,从合并多个video使用节点stream利ffmpeg ,我可以添加多个input使用文件数组
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秒的video。
ffmpeg方法是可链接的,所以你可以像这样使用reducer:
var chainedInputs = inputlist.reduce((result, inputItem) => result.addInput(inputItem), ffmpeg());
你最近的编辑几乎做了同样的事情,但它不断调用.input()在同一水平,而不是在以前的顶部