我使用的是ffmpeg,但不是JavaScript的php。我想从wav文件转换为pcm。到mp3或wma的转换工作正常,但不能转换为pcm,这告诉我至少必须选择一个输入是什么错误?这是我的代码(仅命令行):

var arguments = [];
    arguments.push("-y");
    arguments.push("-vn");
    arguments.push("-i");
    arguments.push(fileName);

    arguments.push("-b:a");
    arguments.push(getBitrate());

    switch (getOutFormat()) {
    case "mp3":
        arguments.push("-acodec");
        arguments.push("libmp3lame");
        arguments.push("out.mp3");
        break;
    case "wma":
        arguments.push("-acodec");
        arguments.push("wmav1");
        arguments.push("out.asf");
        break;
    case "pcm":
        //arguments.push("s16le");
        arguments.push("-ac");
        arguments.push("1");
        arguments.push("-f");

        //arguments.push("pcm_s16le");
        arguments.push("out.pcm");
    }

最佳答案

mp3和wma是文件格式(或包装),pcm是编解码器。
我认为ffmpeg不支持pcm作为输出格式,尽管它确实支持pcm作为输出编解码器。
你的目标是什么 ?

编辑:检查

$ ffmpeg -formats




$ ffmpeg -codecs


有关受支持的格式和编解码器的更多信息。
args在stackoverflow.com/questions/4854513/can-ffmpeg-convert-audio-to-raw-pcm-if-so-how的帮助下进行了编辑

您可能会得到原始的pcm输出:

case "pcm":
        arguments.push("-f");
        arguments.push("s16le");
        arguments.push("-acodec");
        arguments.push("pcm_s16le");
        arguments.push("-ac");
        arguments.push("1");
        arguments.push("out.pcm");


请注意,您生成的文件通常称为原始文件,并且需要指定采样频率,量化,通道数,字节序才能读取该文件。

关于javascript - 使用ffmpeg javascript将wav音频文件转换为pcm音频文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24881832/

10-13 02:38