Почему ffmpeg меняет битрейт mp3 при ускорении?

478
aleskva

Я ускорил (в 1,2 раза) mp3-файл с помощью этих инструкций, но его реальный битрейт изменился с 192 кбит / с (среза 19 кГц) до 128 кбит / с (среза 16 кГц). Зачем? Это правильно? Или мне нужно добавить какой-либо дополнительный параметр в ffmpeg, чтобы ускорить звук без снижения качества?

2

1 ответ на вопрос

4
Gyan

128 kbps is probably the default bitrate. Use

ffmpeg -i input.mp3 -af "atempo=1.2" -b:a 192k output.mp3 
Работает. Это все еще немного меняет битрейт, но это возможно при обработке. Но мне нужно знать реальный битрейт аудио, который трудно найти, особенно для больших музыкальных коллекций. Есть ли какой-нибудь вариант, как не менять срез, например, если я его не знаю? aleskva 8 лет назад 1
Выход будет CBR, но не точно такой же скоростью. Строго говоря, битрейт не связан с отсечкой. Кодер LAME (используемый ffmpeg) реализует обрезку на основе выбранной скорости передачи данных. Чтобы проверить частотный спектр аудиофайла, используйте `ffmpeg -i input.mp3 -lavfi showspectrumpic = s = 1024x1024 input-freq.png` и просмотрите PNG. Gyan 8 лет назад 0
(лучше использовать spek для просмотра или fakeflac для вычисления отсечки, но все же это дополнительный шаг и не очень быстрый при работе с большими музыкальными коллекциями) Битрейт не связан строго с отсечкой, но он немного зависит от него. Вот почему я спросил, является ли это изменение плохим или правильным поведением (ускорение чего-либо может просто снизить битрейт - я не знаю) aleskva 8 лет назад 0
Изменение темпа звука не влияет на битрейт. Это устанавливается отдельно. По умолчанию это 128k, но всегда может быть явно установлено. Отсечка также не имеет ничего общего с битрейтом. Это выбор дизайна энкодера. Gyan 8 лет назад 0
Мне сказали, что обрезание показывает фактический битрейт (вместо явно установленного). Если аудиофайл имеет, например, 192 кбит / с, но его отсечка составляет около 16 кГц, то фактическая скорость передачи битов ниже (128 кбит / с). См. Http://www.wikihow.com/Check-the-Real-Bitrate-of-Audio-Files. Вот почему я спрашиваю, потому что, если ffmpeg понижает битрейт mp3s (во время его ускорения), например, с 192 до 128 кбит / с, он, вероятно, обрезает (понижает) частоту среза (с 19 кГц до 16 кГц). И это не правильное поведение, верно? aleskva 8 лет назад 0
Да, при условии умного кодировщика MP3, отсечка зависит от выбранного битрейта. Так, 192k MP3 с потолком 16 кГц, скорее всего, был перекодирован из 128k MP3. НО ffmpeg не определяет и не изменяет битрейт из-за изменения скорости. Они являются независимыми переменными. По умолчанию битрейт ffmpeg составляет 128 КБ. Это не связано с изменением скорости. Gyan 8 лет назад 0
Я вижу, я все еще надеюсь, что есть более простое решение (например, другая библиотека лучше, чем ffmpeg, которая использует битрейт входного файла или около того), чем проверка его через спектр fakeflac / spek / ffmpeg и указание его вручную, но я должен поблагодарить вас так много aleskva 8 лет назад 0
Если вы используете `-q 2` вместо` -b: a`, вы можете позволить кодировщику решить, какую битрейт использовать. Он проанализирует входные данные и применит отсечение. Gyan 8 лет назад 0
Работает как положено, но разве этот параметр не предназначен для преобразования между CBR и VBR? aleskva 8 лет назад 0
Да, выход VBR. Но весь смысл VBR в том, что он распределяет биты по мере необходимости. Более простые аудиоданные получают меньше битов, а сложные аудиосигналы - больше. Gyan 8 лет назад 0
Да, и другой подход заключается в том, что некоторые старые аудиоплееры не могут корректно работать с CBR. Спасибо aleskva 8 лет назад 0

Похожие вопросы