Главная > FAQ, Программирование > Использование NeroAAC для кодирования под Linux

Использование NeroAAC для кодирования под Linux

Те, кто сталкивался с кодированием видео для он-лайна на своих серверах под Linux наверняка в курсе, что средства FFMPEG для кодирования звука в AAC, а именно библиотека libfaac дает ужасное качество на низких битрейтах. Работа над ней была заброшена несколько лет назад и она не поддерживает профиль HE. Ища выход из сложившейся ситуации оказалось, что все не так плохо и для этих целей можно использовать neroAAC (само собой только для личных целей, читайте лицензию ^_^), который дает потрясающие результаты даже для битрейтов вроде 32кбпс.

1) Качаем последнюю версию отсюда: http://www.nero.com/eng/release-notes-nerodigital-nero-aac-codec.html
2) Находим в архиве linux/neroAacEnc и копируем на сервер
3) Устанавливаем: install –D –m755 linux/neroAacEnc /usr/bin/

Предположим раньше мы кодировали так:
/usr/bin/ffmpeg -i "input.mp4" -pass 1 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -an "tmp.mp4"
/usr/bin/ffmpeg -i "input.mp4" -pass 2 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -acodec libfaac -ab 128k -ac 2 -async 1 "tmp2.mp4"
/usr/bin/qt-faststart "tmp2.mp4" "out.mp4"

Теперь это будет выглядеть так:
/usr/bin/ffmpeg -i "input.mp4" -pass 1 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -an "tmp.mp4"
/usr/bin/ffmpeg -i "input.mp4" -pass 2 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -an "tmp2.mp4"
/usr/bin/ffmpeg -i "input.mp4" -acodec pcm_s16le -vn "audio1.wav"
/usr/bin/neroAacEnc -br 65536 -2pass -if "audio1.wav" -of "audio1.aac"
/usr/bin/ffmpeg -i "input.mp4" -i "audio1.aac" -acodec copy -vcodec copy -f mp4 "tmp3.mp4"
/usr/bin/qt-faststart "tmp3.mp4" "out.mp4"

Пояснения построчно:
1) Первый проход кодирования видео (без звука)

2) Второй проход кодирования видео (без звука)

3) Вытаскиваем звуковую дорожку из видео в несжатом виде

4) Кодируем звуковую дорожку в AAC-формат

5) Собираем звук и видео в единый файл без перекодирования

6) Переносим метаданные в начало файла

Profit!

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.