これが私がする必要があることです:30.0秒のWAVを30.0MP3に変換します。
LAMEを使用してこれを試しましたが、何を試しても、LAMEは常に出力mp3に短い黙祷を追加します。 LAMEを使用すると、30.0秒のWAVが30.1秒のMP3になります。ださいよ。
Windowsのコマンドラインを使用してWAVをMP3に変換する方法を知っている人はいますか?
たとえば、CMDから「program.exein.wavout.mp3」を実行しますか?
結果のMP3ファイルに無音が追加されないことが重要です。私はそれを十分に強調することはできません。
MP3ストリームには、サンプルのセットを生成するための情報が含まれています。各サンプルは、元のLPCMデータ(WAVファイルなど)のサンプルに対応していますが、エンコードの副作用として、それぞれに追加の「ジャンク」が追加されます。デコードの副作用は、最初にさらに多くのジャンクが追加されることです。デコーダーは追加する量を認識し、それらのサンプルをスキップしますが、エンコーダーが追加したジャンクは完全に予測可能ではないため(エンコーダーが異なれば追加する量も異なります)、デコーダーは何をすべきかを知らされない限り、これらのサンプルをスキップできません。スキップ。 LAMEなどの一部のエンコーダーは、このような「ギャップレス再生」または「遅延とパディング」情報(標準がないため、エンコーダー固有の形式で)をファイルのVBR情報(VBRI)またはXingヘッダーに追加します。 -CBRファイルでも標準であり、プレーヤーに役立つことがある他の情報が含まれています。このヘッダーは実際には無音のフレーム(通常は1152サンプル)であり、フレームのヘッダーとそのnullオーディオデータの開始の間に特別にフォーマットされた情報が埋め込まれています。ほとんどのデコーダー/プレーヤーはフレームを特別なものとして認識し、それらのサンプルをスキップしますが、そうでないものもあるため、別の潜在的な障害点があります。そのため、互換性のあるエンコーダー/デコーダーの組み合わせを使用して、正しい長さのジャンクトリムファイルを出力として取得することを検討します。
2番目の質問... LAMEコマンドラインアプリの「--decode」オプションに気づきましたか? :) LAMEをエンコーダーとして使用している場合、これで問題が解決するはずです。出力の長さは入力と一致する必要があります。
このFAQとスーパーユーザースレッドをディスカッションに追加したい:
もう少し簡潔で明確な答えを提供したいと思います。
最初と最後にギャップなしで一貫して再生するMP3ファイルを作成する方法がないのではないかと思います。これは ギャップレス再生 として知られており、よく議論されている問題です。
他の回答の少なくとも1つが言うように、特定の音楽プレーヤーで機能する回避策があります。