【发布时间】:2020-06-23 00:26:13
【问题描述】:
我在我的代码中使用 fluent-ffmpeg,我的主要目标是获取音频/视频持续时间, 我需要使用流作为输入。
根据文件, https://github.com/fluent-ffmpeg/node-fluent-ffmpeg#reading-video-metadata
ffmpeg('/path/to/file1.avi')
.input('/path/to/file2.avi')
.ffprobe(function(err, data) {
console.log('file2 metadata:');
console.dir(data);
});
ffmpeg('/path/to/file1.avi')
.input('/path/to/file2.avi')
.ffprobe(0, function(err, data) {
console.log('file1 metadata:');
console.dir(data);
});
这些我都试过了
const ffmpeg = require('fluent-ffmpeg')
const fs = require('fs')
filepath = './scratch_file/assets_audios_10000.wav'
stream = fs.createReadStream(filepath)
ffmpeg(stream)
.input(filepath) // have to put a file path here, possible path dependent
.ffprobe(function (err, metadata) {
if (err){throw err}
console.log(metadata.format.duration);
}) //success printing the duration
以上成功返回时长
ffmpeg(stream)
.input(stream) //
.ffprobe(function (err, metadata) {
if (err){throw err}
console.log(metadata.format.duration);
}) // failed
以上失败。
ffmpeg(stream)
.ffprobe(function (err, metadata) {
if (err){throw err}
console.log(metadata.format.duration);
}) //returned "N/A"
返回不适用
有人可以帮忙吗?我需要类似的东西
ffmpeg.ffprobe(stream, (metadata) => {console.log(metadata.format.duration)} )
谢谢。
【问题讨论】: