Articles of fluent ffmpeg

来自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() […]

你如何使用Node.jsstream式传输MP4文件与ffmpeg?

我一直在努力解决这个问题好几天了,真的很感谢这个话题。 我能够使用fluent-ffmpeg成功传输存储在Node.js服务器上的mp4audio文件,方法是将文件的位置作为string传递,并将其转码为mp3。 如果我从同一个文件创build一个文件stream,并将其传递给fluent-ffmpeg,它可以用于mp3input文件,而不是mp4文件。 在mp4文件的情况下,没有错误抛出,并声称stream成功完成,但没有什么在浏览器中播放。 我猜这是与存储在mp4文件末尾的元数据有关,但我不知道如何编码。 这是完全相同的文件,当它的位置被传递给ffmpeg,而不是stream。 当我尝试传递一个stream到S3上的mp4文件时,再次没有错误,但没有stream到浏览器。 这并不奇怪,因为ffmpeg不能在本地作为stream来处理文件,所以期待它从s3处理stream是一厢情愿的想法。 我怎样才能streams3 mp4文件,而不是作为一个文件本地存储在本地? 如何获得ffmpeg来做到这一点,而不是转码文件呢? 以下是我目前无法使用的代码。 请注意,它试图将s3文件作为stream传递给ffmpeg,并将其转码为一个mp3,我不想这样做。 .get(function(req,res) { aws.s3(s3Bucket).getFile(s3Path, function (err, result) { if (err) { return next(err); } var proc = new ffmpeg(result) .withAudioCodec('libmp3lame') .format('mp3') .on('error', function (err, stdout, stderr) { console.log('an error happened: ' + err.message); console.log('ffmpeg stdout: ' + stdout); console.log('ffmpeg stderr: ' + stderr); […]