javascript - ffmpeg 仅将我的 41.25% 的图像转换为视频
问题描述
我正在使用 ffmpeg 将图像列表转换为延时视频。当我从命令行运行命令时,它的效果很好。
ffmpeg -r 3 -i /var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%03d.jpg -s hd1080 -vcodec libx264 timelapse.mp4
当我使用 nodejs 库 fluent-ffmpeg 时会出现此问题。
app.get('/api/get', function (req, res) {// return new Promise((resolve, reject) => {
ffmpeg('/var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%03d.jpg')
.noAudio()
.inputOption('-r 3')
.outputOptions([
'-r', '3',
'-s', 'hd1080'
]).
.videoCodec('libx264')
.on('progress', (progress) => {
console.log('Processing: ' + progress.percent + '% done');
})
.on('error', (err) => {
console.error('Error during processing', err);
// reject(err)
})
.on('end', () => {
console.log('Processing finished !');
// resolve()
})
.save('test.mp4', {end: true});
}
res.send(`I received your GET request.`);
});
编辑:现在在处理中给我一个处理过的视频:207.49999999999997% done 处理完成!但不制作视频
我的图像被命名为 image1.jpg、image2.jpg、image3.jpg 等
当我直接在我的 cli 中运行命令时,它非常令人困惑。
之前有人遇到过这个问题,还是我只是使用错误的库?
解决方案
您仅转换 41.25% 的事实可能是由此处使用的模式类型造成的image%d.jpg。使用时ffmpeg -r 3 -i /var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%d.jpg -s hd1080 -vcodec libx264 timelapse.mp4
您必须有一系列图像,例如:
- image-1.png
- image-2.png
- image-3.png
- image-4.png
在 image-4.png 之后有 image-9.png。视频以 image-4.png 结尾。所以你在这里有2个选择。确保您在所有文件名中都有正确的数字序列或使用 glob 模式。
如果您正在寻找 glob 模式:
app.get('/api/get', function (req, res) {// return new Promise((resolve, reject) => {
ffmpeg('/var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image*.jpg')
.noAudio()
.outputOptions([
'-r', '3',
'-s', 'hd1080'
]).
.videoCodec('libx264')
.on('progress', (progress) => {
console.log('Processing: ' + progress.percent + '% done');
})
.on('error', (err) => {
console.error('Error during processing', err);
// reject(err)
})
.on('end', () => {
console.log('Processing finished !');
// resolve()
})
.save('test.mp4', {end: true});
}
res.send(`I received your GET request.`);
});
推荐阅读
- powerbi - 基于前一天值的 Power BI 图标
- android - 错误 - 运行子进程cordova时发生错误
- java - Java计数程序(向上或向下)
- mysql - 如何在几个链接的行中只有一个列在“true”,其余的列在“false”?
- java - Android:ButtonClick 上的新视图
- android-studio - 为什么我的应用在收到使用 FirebaseAuth 的验证短信后立即停止运行?
- google-apps-script - 将数据从一张表映射到另一张表
- c# - 在 C# 中使用 sendmessage 命令取消静音
- javascript - 正则表达式捕获字符串内的多个数组索引文字
- r - R 闪亮 iframe 未连接到 HTTPS Flask 应用程序