FFmpeg やその他のツールを使用して再エンコードせずに、破損した AAC ファイルを修復するにはどうすればよいですか?

FFmpeg やその他のツールを使用して再エンコードせずに、破損した AAC ファイルを修復するにはどうすればよいですか?

256Kbps AAC ファイルがありますが、このファイルには 1/20 秒未満の破損したセグメントがあります。再エンコードせずに、または少なくとも最小限の侵襲性処置で、破損した部分を「修復」したいと考えています。

Audacity: 破損したセグメント/「グリッチ」:
Audacity: 破損したセグメント/「不具合」

破損部分は、数秒間、唯一のサウンドが連続した単一のシンセ音符と、バックグラウンドでの観客の軽い拍手音だけである期間に発生します。そのため、クリエイティブ編集を使用して、次のように Audacity で破損部分を修復できますが、そのためにはファイルをロスレスに変換する必要があります。

  1. 破損部分をトリミング(2290サンプル)
  2. 削除された破損部分の両側にあるトラックの前後の部分を、2120サンプルのオーバーラップでマージ/クロスフェードします。
  3. これにより、トラック全体が4410サンプル(10分の1秒)短縮されます。
  4. 新しく編集されたファイルは連続した音で再生され、グリッチは検出されません。
  5. トラックの長さを維持するために、最近の修復の付近から4410サンプル部分を切り取り、それを修復の領域につなぎ合わせて複製します。
  6. 最終結果: 元のトラックの長さが保持され、再生時にグリッチは事実上検出されません。

とはいえ、この結果を達成できるのは Audacity でロスレスで編集した場合のみであり、再エンコードせずにロスのあるファイルで同様の結果を達成したいと考えています。元のファイルの破損した部分を切り取り、修復ファイルから再エンコードされた修復部分で置き換えることを試みました。しかし、タイムスタンプのオフセットにより、修復部分を切り取って元のファイルのセグメント内で正確に一致させることができないという問題に直面しています。

これを解決する方法があることを願っています。タイムスタンプを削除または変更して、ロスのあるファイルをサンプル レベルでカット/編集できるようにする方法はありますか? これまで、ffmpeg を使用してタイムスタンプでファイルを分割すると、最も近いタイムスタンプで分割され、編集を行う必要がある場所に隣接する ~100 以上のサンプルになる可能性があります。

他のアイデアも歓迎します。

答え1

Audacity やほとんどのオーディオ エディターは、ファイルを読み込むときにオーディオを解凍します。ファイルを非可逆形式で再エクスポートすると、非可逆圧縮がもう一度実行されます。ただし、MP4 (AAC) は複数のエンコードによる損傷を最小限に抑えるように設計されているため、品質が大幅に低下することはありません。

代替品としては mp3ダイレクトカット:

MP3とAACを素早く簡単にカットして編集

mp3DirectCut は、エンコードされた MP3 および AAC 用の高速で拡張性の高いオーディオ エディターです。再エンコードせずに、トラックを直接カット、トリミング、分割、結合したり、MP3 にフェードを作成したりできます。ロスレス直接編集により、エンコード時間を節約し、エンコードされたトラックのオーディオ品質を維持できます。内蔵レコーダーにより、MP3 をオンザフライで作成できます。キュー シート、一時停止検出、自動キューを使用すると、長いファイルを簡単に分割できます。

関連情報