入力MP3ファイルのビットレートを切り替えて出力ファイルに保存するために、Javaでxuggluを使用しています。ネットで見つけた例を 1 つ取り上げて、ファイルをリーダーにロードし、ライターをリスナーとして追加します。ビットレートを変更する方法を知っている人はいますか?
これが私が使用しているコードです:
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 に等しいビットレートの新しいものに変換します。