командная строка ffmpeg для управления звуковой дорожкой с помощью многоязычного файла m2ts

#ffmpeg #equalizer

#ffmpeg #эквалайзер

Вопрос:

Мне нравится управлять звуковой дорожкой внутри файла m2ts с помощью некоторой командной строки ffmpeg.

Короче говоря, мне нужно управлять звуковой дорожкой с идентификатором 2 файла m2ts в формате AC3 (dolby digital 5.1 или 2.0).

Изменения:

  • добавить фильтр эквалайзера: 60 Гц 3 дБ, 80 Гц 2 дБ, 100 Гц 1 дБ
  • увеличение громкости: 2 дБ

Файл m2ts многоязычен, поэтому мне нужно изменить определенный идентификатор дорожки.

Файл AC3 с потерями, я надеюсь, что возможные модификации звука не добавят больше сжатия, как, например, в Photoshop при повторном сохранении файла jpeg. В файле без потерь (wav или flac) я уверен, что могу сохранять и повторно сохранять без потери качества, но в AC3 я не уверен.

Кто-нибудь может опубликовать командную строку, чтобы сделать это без потери качества?

Ответ №1:

Нет, потому что AC3 с потерями, и каждый цикл декодирования, модификации, кодирования снижает качество.

Вы можете предотвратить потерю качества в других потоках с помощью копирования в acodec, но я думаю, вы уже знаете это. Но не в том, который вы изменяете.

/ редактировать: Кстати: модификация, которую вы собираетесь сделать, сама по себе уже содержит потерю качества.

Однако, если вы хотите, вы можете сохранить исходный поток следующим образом: -map 0: 2 -map 0: 2, а затем изменить один и скопировать -acodec для другого экземпляра этого потока. Итак, если вы понимаете, что вам нужно сделать это снова, вы можете использовать свой измененный файл, и вам не нужно сохранять оригинал для этой цели, но все равно иметь исходный поток.

Или вы извлекаете поток для изменения и сохраняете измененную версию в отдельном аудиофайле и вызываете свой видеопроигрыватель с соответствующим аргументом для записи звука из этого внешнего файла.