2012-08-06 195 views
0

我在java中使用xugglu以切换输入MP3文件的比特率,将它存储在输出文件中。我在网上找到了一个例子,将文件加载到阅读器中,并添加了一个作为侦听器的作者。有谁知道我该如何修改比特率?更改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:

我不能真正解决这个问题,所以我只是用Linux命令这样做在Java中应用程序。你可以找到代码here的参考。我使用的命令是:

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

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

回答

1

看看IAudioResampler

用于重新取样IAudioSamples以不同的采样率和通道数。