Как восстановить поврежденный файл AAC без перекодирования с помощью FFmpeg или других инструментов?

Как восстановить поврежденный файл AAC без перекодирования с помощью FFmpeg или других инструментов?

У меня есть файл AAC 256Kbps, в котором есть поврежденный сегмент, длящийся менее ~1/20 секунды. Я пытаюсь «исправить» поврежденную часть без перекодирования — или, по крайней мере, с помощью минимально инвазивной процедуры.

Audacity: поврежденный сегмент/"сбой":
Audacity: поврежденный сегмент/"сбой"

Поврежденная часть находится в течение нескольких секунд, когда единственным звуком является непрерывная одна музыкальная нота синтезатора, сопровождаемая легкими аплодисментами аудитории на заднем плане, и поэтому я могу, используя творческое редактирование, восстановить поврежденную часть в Audacity следующим образом, но для этого файл необходимо преобразовать в формат без потерь:

  1. Вырезать поврежденную часть (2290 образцов)
  2. Слияние/кроссфейд предыдущих и последующих частей трека по обе стороны от удаленной, поврежденной части с перекрытием 2120 сэмплов
  3. Это приводит к общему сокращению трека на 4410 сэмплов (1/10 секунды).
  4. Недавно отредактированный файл воспроизводится с непрерывным тоном/звуком, и сбой не обнаруживается.
  5. Чтобы сохранить длительность трека, я затем вырезал часть образца 4410 из области недавнего ремонта, затем продублировал ее, вставив в область указанного ремонта.
  6. Конечный результат: сохранена оригинальная длительность трека, сбои при воспроизведении практически не обнаруживаются.

Тем не менее, я могу добиться этого результата только при редактировании без потерь в Audacity, и я хотел бы добиться аналогичного результата в файле с потерями без повторного кодирования. Я попытался просто вырезать поврежденную часть исходного файла, а затем заменить ее перекодированной восстановленной частью из файла восстановления. Однако я столкнулся с невозможностью вырезать восстановленную часть и точно сопоставить ее с сегментом исходного файла из-за смещений временных меток.

Надеюсь, есть способ обойти это. Есть ли способ удалить или изменить временные метки, чтобы я мог затем вырезать/редактировать мои файлы с потерями на уровне сэмплов? До сих пор, используя ffmpeg, если я разделял файлы по временной метке, они разделялись по ближайшей временной метке, которая могла быть на расстоянии ~100+ сэмплов рядом с тем местом, где мне нужно было выполнить редактирование.

Открыты также для любых других идей.

решение1

Audacity и большинство аудиоредакторов распаковывают аудио при загрузке файла, а при его повторном экспорте в формат с потерями вы выполняете еще один раунд сжатия с потерями, хотя MP4 (AAC) был разработан для минимизации ущерба от множественных кодирований, поэтому вы не должны сильно терять качество.

Альтернативный продукт - mp3DirectCut:

Быстро и легко вырезайте и редактируйте MP3 и AAC

mp3DirectCut — быстрый и обширный аудиоредактор для кодированных MP3 и AAC. Без перекодирования напрямую вырезайте, обрезайте, разделяйте и объединяйте ваши треки, создавайте затухания в MP3 и многое другое. Прямое редактирование без потерь экономит время кодирования и сохраняет качество звука кодированных треков. Встроенный рекордер создает MP3 на лету. С помощью Cue sheet, Pause Detection или Auto cue вы можете легко разделять длинные файлы.

Связанный контент