1

Я использую macOS 10.3.6 (High Sierra), и некоторое время назад у меня был набор из 4 дисков с какой-то музыкой, я записывал треки в MP3 и просто сохранял файлы в моей системе. Мне пришлось вручную пометить и добавить метаданные к каждому из 100+ треков (не спрашивай), и некоторое время назад я также избавился от оригинальных компакт-дисков (тоже не спрашивай), так что я не могу легко перезаписать их.

Так вот в чем проблема: очевидно, инструмент MP3, который я использовал в то время, добавлял доли секунды «трещотки» к началу каждой дорожки. Я не знал - или не обращал внимания - в то время, но каждый из 100+ треков имеет эту раздражающую популярность прямо в начале трека.

Я читал эту ветку о переполнении стека: « Звук щелчка в начале при использовании LAME », и хотя этот совет твердый - объясняет, как иногда LAME может случайно кодировать заголовок аудиофайла как чистый звук - реальность такова, что представленные решения заставят меня Поток уже закодированного MP3 через что-то вроде fseek а затем перекодировать MP3 (иначе: перекодировать его), что далеко от идеала.

Так есть ли какой-нибудь способ, которым я мог бы урезать приблизительно 1/8 секунды от этих уже закодированных MP3, чтобы избавиться от «pop» и избежать перекодирования MP3?

Я специально ищу относительно простое решение на основе macOS, которое, самое большее, потребует установки нового инструмента (если требуется) через Homebrew. Не просить полный сценарий, но по крайней мере инструмент и подсказку конфигурации, чтобы указать мне в правильном направлении.

1 ответ1

2

Итак, мне удалось решить эту проблему, используя магию FFmpeg (которую я уже установил на macOS через Homebrew). В частности, параметр -ss (он же ищет) в сочетании с опцией copy применяемой к аудиопотоку, работает как шарм! Команда может быть преобразована в это:

ffmpeg -ss 0.125 -i "input.mp3" -acodec copy "output.mp3"

Установка -ss на 0.125 а затем простое указание ввода и вывода с copy установленной на -acodec - это все, что нужно сделать.

И поскольку - как объяснено в вопросе - в моем случае у меня есть более 100 файлов для работы, я создал простой сценарий Bash, который найдет все MP3-файлы, которые должны обрезать 1/8 открываемого аудио, и выгрузит их в подкаталог mp3/ , Надеюсь, это поможет кому-то в подобной ситуации!

find -E "path/to/audio/files" -type f -iregex ".*\.(MP3)$" |\
  while read full_audio_filepath
  do

     # Break up the full audio filepath stuff into different directory and filename components.
     audio_dirname=$(dirname "${full_audio_filepath}");
     audio_basename=$(basename "${full_audio_filepath}");
     audio_filename="${audio_basename%.*}";

     # Set the MP3 directory.
     mp3_dirpath="${audio_dirname}/mp3";
     mp3_filepath="${mp3_dirpath}/${audio_filename}.mp3";

     # Create the child MP3 directory.
     mkdir -p "${mp3_dirpath}";

     # And here is where the magic happens.
     ffmpeg -y -v quiet -ss 0.125 -i "$full_audio_filepath" -acodec copy "$mp3_filepath" < /dev/null;

  done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .