4

Java を使用してリアルタイム オーディオ ストリームをミキサーから MP3 に変換することは可能ですか?

  • チャンクごとに変換する必要があります。そうしないと、メモリが使い果たされます。
  • 録音方法はすでに知っていますが、wav や aiff などのロスレス形式のみです。
  • 音声が入ってくるので変換が必要です。
4

6 に答える 6

4

標準の LAME API (LAME は MP3 エンコーダー) をラップする 100% Java API であるLAMEOnJを使用できるかもしれません。

ただし、「チャンクごと」にエンコードされるかどうかはわかりません...

于 2008-12-05T09:03:19.300 に答える
2

それには Xuggler を使用します。これは無料でオープン ソース (LGPL) であり、内部では libmp3lame を使用しています。そして Xuggler のMediaTool APIは、それを使用する方法の多くの例を提供します:

于 2009-11-06T06:18:25.477 に答える
1

Lame は確かに MP3 エンコーディングのデファクト スタンダードです。その理由の 1 つは、その高品質 (MP3 のエンコーディングを正しく行うのは困難であり、主観的な芸術である) と、法的な問題 (MP3 は特許取得済みの技術であり、知る限り、そのため、限られた数のサイトから Lame バイナリを入手できます。そのほとんどは、これらの法的問題があまり施行されていない (または施行されていない) 国にあります)。

VonC によって発見された LAMEOnJ プロジェクトは、非フリーの JNI 実装を使用しているようですが、特に正確なシステムを対象とする場合は、JNI または JNA を使用して独自のバインディングを行うことができると思います。

于 2008-12-05T09:23:06.933 に答える
0

Java で新しいプロセスを作成し、ストリームをSoXなどのツールの stdin に書き込み、オーディオ データをその場で MP3 に変換します。

于 2008-12-05T10:30:06.923 に答える
0

最初の質問について - それは可能ですか、私が見ることができる唯一の制限はプロセッサ速度です. 使用しているアルゴリズムとプロセッサの両方が十分に高速である場合、それが不可能になる理由はありません。

これが Java ソースではないことはわかっていますが、正しい軌道に乗ることができるかもしれません - Lame MP3 Encoderを見てみてください。

私の知る限り、すべての MP3 変換アルゴリズムはチャンクごとに動作します。変換を開始するために WAV ファイル全体を読み取る必要はありませんが、オンザフライで変換されます。

于 2008-12-05T09:22:41.023 に答える
-1

リング バッファを使用して生のオーディオ バッファをその場でエンコードしてみてください。

于 2009-09-09T05:48:16.680 に答える