Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 流畅的ffmpeg“;不是合适的输出格式”;_Node.js_Audio_Ffmpeg_File Conversion - Fatal编程技术网

Node.js 流畅的ffmpeg“;不是合适的输出格式”;

Node.js 流畅的ffmpeg“;不是合适的输出格式”;,node.js,audio,ffmpeg,file-conversion,Node.js,Audio,Ffmpeg,File Conversion,我正在使用用于Node.js的fluent ffmpeg模块转换音频文件。我有一个.mp3文件,我想转换成.wma 下面是它的样子: var proc = new ffmpeg({ source: 'file.mp3', nolog: false }).toFormat('wma') .saveToFile('file.wma', function(stdout, stderr) {

我正在使用用于Node.js的fluent ffmpeg模块转换音频文件。我有一个.mp3文件,我想转换成.wma

下面是它的样子:

var proc = new ffmpeg({
   source: 'file.mp3',
   nolog: false
}).toFormat('wma')                                                
  .saveToFile('file.wma', function(stdout, stderr)
{                                                 
    console.log(stderr);
});
不幸的是,我得到了一个错误:

这是整个错误日志:

ffmpeg version 0.8.9-4:0.8.9-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
  built on Nov  9 2013 19:25:10 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, mp3, from 'song_downloads/You Suffer.mp3':
  Metadata:
    title           : You Suffer
    artist          : Napalm Death
    album           : Scum
    genre           : Death Metal
    track           : 12
    date            : 1987
  Duration: 00:00:04.98, start: 0.000000, bitrate: 381 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 193 kb/s
Requested output format 'wma' is not a suitable output format
我知道这不是ffmpeg问题,因为

ffmpeg -i file.mp3 file.wma

很好。有什么想法吗?

我想,wma不是一种容器格式。这是一个音频编解码器。WMA文件通常以ASF(高级系统格式)格式包含。因此,选择fluent ffmpeg API中给出的正确选项来设置编解码器和格式。您可以运行以下命令:

  • ffmpeg-formats
    查看所有格式和

  • ffmpeg-编解码器
    查看所有支持的编解码器


  • 这对我很管用

    fluent\u ffmpeg('input.mp3')。音频编解码器('aac')。保存('output.aac')

    当格式为:
    D aac原始ADTS aac(高级音频编码)


    不支持E=Muxing

    尝试
    wma
    不支持
    .wma
    。抱歉,我就是这么做的。只是复制错误。这并不能解释为什么它在命令行中成功转换。@J4g命令行根据用户输入设置适当的选项(如设置常见文件的编解码器和格式)。我猜fluent API映射到详细选项(从-vcodec-acodec开始)。因此,从命令行进行的选项自动设置不会通过fluent-ffmpeg进行。感谢您的帮助!
    ffmpeg -i file.mp3 file.wma