1 Вопрос: Почему ffmpeg с кодировкой libfdk_aac обрезает 25 мс в начале аудиофайла?

вопрос создан в Thu, May 2, 2019 12:00 AM

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

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

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

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

исходный файл:

 введите описание изображения здесь

Ouput:

 введите описание изображения здесь

    
0
  1. Как вы проверяете ввод и вывод?
    2019-05-02 15: 20: 23Z
  2. Я сравниваю вывод, сгенерированный с aac и libfdk_aac. Продолжительность будет определяться с помощью ffprobe
    2019-05-03 09: 59: 35Z
  3. Как вы проверяете ввод и вывод?
    2019-05-03 10: 25: 45Z
  4. ffprobe file.mp3 -print_format json -show_entries format = duration -v quiet Мы также добавили файл в waveeditor, и вы можете увидеть недостающую часть в начале.
    2019-05-06 08: 40: 36Z
    1 ответ                              1                         

    Я думаю, что наблюдал нечто похожее несколько лет назад после перехода на 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
    
        
    2
    2019-05-13 15: 01: 23Z
    1. @ vkzum это помогло решить проблему? любопытно, что я мог бы быть
      2019-05-09 14: 11: 26Z
    2. Да, это помогло мне понять. Я только что манипулировал временем запуска скрипта, который сейчас режет дорожки. Я не решил проблему полностью, но в настоящий момент это возможно. Большое спасибо!
      2019-05-13 14: 15: 23Z
источник размещен Вот