0

我在 java 中使用 xugglu 来切换输入 MP3 文件的比特率,将其存储在输出文件中。我举了一个我在网上找到的例子,将文件加载到阅读器并添加一个编写器作为侦听器。有谁知道我该如何修改比特率?

这是我一直在使用的代码:

import com.xuggle.mediatool.IMediaReader;
import com.xuggle.mediatool.IMediaViewer;
import com.xuggle.mediatool.IMediaWriter;
import com.xuggle.mediatool.ToolFactory;
import org.slf4j.LoggerFactory;


public class TranscodingExample {

private static final String inputFilename = "/home/user/Desktop/file_changed.mp3";
private static final String outputFilename = "/home/user/Desktop/file_changed.flv";

public static void main(String[] args) {

    // create a media reader
    IMediaReader mediaReader =
           ToolFactory.makeReader(inputFilename);

    // create a media writer
    IMediaWriter mediaWriter =
           ToolFactory.makeWriter(outputFilename, mediaReader);

    // add a writer to the reader, to create the output file
    mediaReader.addListener(mediaWriter);

    // create a media viewer with stats enabled
    IMediaViewer mediaViewer = ToolFactory.makeViewer(true);

    // add a viewer to the reader, to see the decoded media
    mediaReader.addListener(mediaViewer);

    // read and decode packets from the source file and
    // and dispatch decoded audio and video to the writer
    while (mediaReader.readPacket() == null) ;

}
}

编辑-1:

我无法真正解决这个问题,所以我只是在 Java 应用程序中使用了一个 linux 命令来执行此操作。您可以在此处找到对代码的引用。我使用的命令是:

ffmpeg -i in.mp3 -b 112k out.mp3

它将 mp3 转换为比特率等于 112k 的新文件。

4

1 回答 1

1

看看IAudioResampler

用于将 IAudioSamples 重新采样为不同的采样率或通道数。

于 2012-08-06T12:41:08.557 回答