Javascript 视频到音频文件转换&;通过节点js中的FFMPEG保存
我正在节点js上开发FFMPEG。我想使用node js从视频文件中检索音频曲目。我也想保存这样的文件,但我不知道如何保存 我认为这一行代码可以帮助我:Javascript 视频到音频文件转换&;通过节点js中的FFMPEG保存,javascript,node.js,audio,video,ffmpeg,Javascript,Node.js,Audio,Video,Ffmpeg,我正在节点js上开发FFMPEG。我想使用node js从视频文件中检索音频曲目。我也想保存这样的文件,但我不知道如何保存 我认为这一行代码可以帮助我: ffmpeg('/path/to/file.avi').noVideo(); 我有这个在npm包。我不太明白如何使用它,以及如何实际保存音频文件 其他一些代码也在起作用: try { var process = new ffmpeg('/path/to/your_movie.avi'); process.then(functi
ffmpeg('/path/to/file.avi').noVideo();
我有这个在npm包。我不太明白如何使用它,以及如何实际保存音频文件
其他一些代码也在起作用:
try {
var process = new ffmpeg('/path/to/your_movie.avi');
process.then(function (video) {
// Callback mode
video.fnExtractSoundToMP3('/path/to/your_audio_file.mp3', function (error, file) {
if (!error)
console.log('Audio file: ' + file);
});
}, function (err) {
console.log('Error: ' + err);
});
} catch (e) {
console.log(e.code);
console.log(e.msg);
}
我的问题是:
如何从FFMPEG视频中检索音频?如何保存它?我会像这样做:
var ffmpeg = require('fluent-ffmpeg');
/**
* input - string, path of input file
* output - string, path of output file
* callback - function, node-style callback fn (error, result)
*/
function convert(input, output, callback) {
ffmpeg(input)
.output(output)
.on('end', function() {
console.log('conversion ended');
callback(null);
}).on('error', function(err){
console.log('error: ', e.code, e.msg);
callback(err);
}).run();
}
convert('./df.mp4', './output.mp3', function(err){
if(!err) {
console.log('conversion complete');
//...
}
});
只需确保安装了ffmpeg
,并且是系统路径的一部分,同时确保所有必要的代码都存在
更新:
对于没有音频的视频,只需执行.noAudio().videoCodec('copy')
:
更新2: 用于将视频和音频合并为单个音频:
function mergeMedia(aud, vid, output, callback) {
ffmpeg()
.input(aud)
.input(vid)
.output(output)
.outputOptions(
'-strict', '-2',
'-map', '0:0',
'-map', '1:0'
).on('end', function() {
console.log('conversion ended');
callback(null);
}).on('error', function(err){
console.log('error: ', err);
callback(err);
}).run();
}
你想
demux
视频。。这将音频、字幕和视频彼此分离。。有了ffmpeg,命令将是:ffmpeg-i file.avi-acodec copy-vn file.ac3
->假设ac3是C课程的音频编解码器~但是我想用节点JS来解决这个问题,这个问题值得一提,因为它是有效的。这可以创建音频mp3文件。但是如何创建没有音频的视频并将其保存到file.mp4?你能帮帮我吗?谢谢。。。你太棒了。谢谢你的帮助。我想在facebook上见到你。你能给我一个facebook id吗?谢谢,请帮我添加一个mp3音频和一个没有声音的视频??我想在node js中制作这个ffmpeg。我已经完成了。但是我遇到了一些问题。如果我的音频比视频长,如何删除额外的音频?请尝试将'-shortest'
添加到输出选项中
function mergeMedia(aud, vid, output, callback) {
ffmpeg()
.input(aud)
.input(vid)
.output(output)
.outputOptions(
'-strict', '-2',
'-map', '0:0',
'-map', '1:0'
).on('end', function() {
console.log('conversion ended');
callback(null);
}).on('error', function(err){
console.log('error: ', err);
callback(err);
}).run();
}