Почему ffmpeg с кодировкой libfdk_aac обрезает 25 мс в начале аудиофайла? - PullRequest
0 голосов
/ 02 мая 2019

Я переключил кодировку с aac на libfdk_aac из-за проблем с качеством.Я заметил, что с новой кодировкой небольшая часть аудиофайла будет вырезана в начале.Я проверил это с несколькими файлами.Это команда, которую я использую:

ffmpeg -y -noaccurate_seek -i file.mp3 -b:a 260k -c:a libfdk_aac -vn -movflags +faststart output.m4a

Я пробовал разные варианты, но всегда получал вырезанный файл.

Вот выходные данные редактора волн

sourceфайл:

enter image description here

Выход:

enter image description here

1 Ответ

2 голосов
/ 06 мая 2019

Я думаю, что наблюдал нечто похожее несколько лет назад после перехода на fdk-aac, но я не уверен, было ли оно целых 25 м (подозрительно близко к длине гранулы по умолчанию для некоторых профилей AAC на 44100 Гц, 1024/44100 ~= 0,023 с).Может ли быть так, что предыдущий кодировщик aac (родной ffmpeg?) Каким-то образом делает что-то другое?

Написал небольшой сценарий для воспроизведения, но не увидел никакой разницы со смелостью.Он также пытается декодировать, используя libfdk_aac.Надеюсь, что это может быть полезно.

alias ffmpeg='docker run --rm -v "$PWD:$PWD" -w "$PWD" mwader/static-ffmpeg:4.1.3'

# test file i used
# ffmpeg -y -f lavfi -i sine -t 1 -ac 2 -ar 44100 sine.wav

# encode with native and fdk aac
ffmpeg -y -i $1 -c:a aac $1.native_aac.mp4
ffmpeg -y -i $1 -c:a libfdk_aac $1.fdk_aac.mp4

# decode native with native and fdk_aac
ffmpeg -y -i $1.native_aac.mp4 $1.native_aac.mp4.native_aac.wav
ffmpeg -y -c:a libfdk_aac -i $1.native_aac.mp4 $1.native_aac.mp4.fdk_aac.wav

# decode fdk_aac with native and fdk_aac
ffmpeg -y -i $1.fdk_aac.mp4 $1.fdk_aac.mp4.native_aac.wav
ffmpeg -y -c:a libfdk_aac -i $1.fdk_aac.mp4 $1.fdk_aac.mp4.fdk_aac.wav
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...