боюсь, Джеймс П ошибается, по крайней мере, еще в ffmpeg 3.4.2, но это распространенное недоразумение. К сожалению, это давняя ошибка в том, как ffmpeg использует libmp3lame. Он устанавливает заголовок для совместного стерео, но на самом деле не кодировать в совместном стерео. MP3-плееры, которые требуют совместного стерео будет задыхаться от этих файлов. Параметр-joint_stereo 1 не работает как параметр в ffmpeg. См. раздел открыть отчет об ошибке: https://trac.ffmpeg.org/ticket/4954
Я использую lame или sox, чтобы установить MP3-файлы в стерео после внесения других изменений с ffmpeg. Я бы хотел, чтобы это не было необходимо, особенно при работе с потерями MP3-файлов, где каждое действие над файлами немного понижает их, но это не так уж плохо.
в Windows (это работает от CMD, а не PS), например, вот команда, которую я часто использую для пакетной конвертации и нормализации из WAV-файлов в MP3 через ffmpeg, а затем использую SoX для установки на Joint Stereo (его выход по умолчанию). Один из самых простых проверок в Windows для совместного стерео или стерео Mp3tag, и не забудьте показать колонку "Mode", который будет просто сказать, моно, стерео, или совместное стерео. Это также Самый простой способ подтвердить, что ffmpeg не способен правильно выводить в совместном стерео.
для %x in ("*.в формате WAV") сделать (через FFmpeg -я "%х" -АБ 320 тысяч -ф в формате mp3 -АФ dynaudnorm -id3v2_version 3 "int_%х.МР3" & Сокс --норма=-2.75 "int_%х.МР3" -с 2 -с 192 "ready - %x.mp3")
Я использовать высокий битрейт для промежуточного файла, чем конечный результат (320 против 192 в данном случае), чтобы минимизировать ухудшение качества звука.
обратите внимание, что это оставит промежуточные файлы (int*) в том же каталоге, что и исходные и конечные (готовые*) файлы.