使用 fluent-ffmpeg 处理时,视频输出文件的持续时间减少了一半
Video output file duration is cut in half when processed using fluent-ffmpeg
我设置了一个节点服务器,它需要一个文件进行预处理。仅使用 ffmpeg 库时,文件处理没有问题,使用 fluent-ffmpeg 时,如果视频为 20 秒,则输出只会是视频的后半部分(10 秒)。我试过多个不同长度的文件并且有同样的问题。知道为什么会这样吗?
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const ffprobePath = require('@ffprobe-installer/ffprobe').path;
const ffmpeg = require('fluent-ffmpeg');
...
ffmpeg.setFfmpegPath(ffmpegPath);
ffmpeg.setFfprobePath(ffprobePath);
ffmpeg('video.mov').videoBitrate('512k').output('./output/video.mov')
.on('error', function(err, stdout, stderr) {
console.log('Cannot process video: ' + err.message);
}).screenshots({
count: 1,
size:'640x480'
});
原来我误解了文档...不能在同一个调用中同时包含输入处理和屏幕截图...应该是
ffmpeg('video.mov').videoBitrate('512k')
.output('./output/video.mov')
.on('error', function(err, stdout, stderr) {
console.log('Cannot process video: ' + err.message);
});
并分别
ffmpeg('video.mov').screenshots({
count: 1,
size:'640x480'
});
我设置了一个节点服务器,它需要一个文件进行预处理。仅使用 ffmpeg 库时,文件处理没有问题,使用 fluent-ffmpeg 时,如果视频为 20 秒,则输出只会是视频的后半部分(10 秒)。我试过多个不同长度的文件并且有同样的问题。知道为什么会这样吗?
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const ffprobePath = require('@ffprobe-installer/ffprobe').path;
const ffmpeg = require('fluent-ffmpeg');
...
ffmpeg.setFfmpegPath(ffmpegPath);
ffmpeg.setFfprobePath(ffprobePath);
ffmpeg('video.mov').videoBitrate('512k').output('./output/video.mov')
.on('error', function(err, stdout, stderr) {
console.log('Cannot process video: ' + err.message);
}).screenshots({
count: 1,
size:'640x480'
});
原来我误解了文档...不能在同一个调用中同时包含输入处理和屏幕截图...应该是
ffmpeg('video.mov').videoBitrate('512k')
.output('./output/video.mov')
.on('error', function(err, stdout, stderr) {
console.log('Cannot process video: ' + err.message);
});
并分别
ffmpeg('video.mov').screenshots({
count: 1,
size:'640x480'
});