LIBFAAC не может повторно выбирать каналы

LIBFAAC не может повторно выбирать каналы

Я использую его avconvдля конвертации видеофайлов в MP4, но всякий раз, когда я пытаюсь кодировать файлы с 6 или 8 каналами в 2 канала, libfaacя получаю следующие сообщения об ошибках:

Can not resample 8 channels @ 44100 Hz to 2 channels @ 44100 Hz

(РЕДАКТИРОВАТЬ: полный вывод сообщений можно найти здесь:http://pastebin.com/UXGrBy1D)

Вот кодеки, которые мы установили для avconv:http://pastebin.com/hyQrqXqW

И вот какую команду я запускаю:

avconv -y -i input.mp4 -vcodec libx264 -bufsize 20M -maxrate 4000k -threads 12 -same_quant -acodec libfaac -ac 2 -ar 44100 -ab 128k output.mp4

Я делаю что-то неправильно?

Или есть ли какие-то альтернативы, libfaacкоторымволяпересэмплировать 8 каналов в 2 канала?

Мне нужно сделать это из командной строки на моем сервере Ubuntu 12.04.

решение1

Прежде всего, если вы еще этого не сделали, ознакомьтесь сэто руководство по кодированию ffmpeg h.264- это применимо и к avconv, просто измените каждый экземпляр на ffmpeg. avconvТакже рассмотрите возможность обновления до более новой версии avconv или ffmpeg - поскольку вы используете Ubuntu, вы можете использоватьэтот PPA, илискомпилируйте его самостоятельно(последний вариант предоставит вам доступ кfdk_aac, который является гораздо лучшим кодировщиком AAC, чем FAAC).

Если вы не знаете точно, что делаете, и у вас нет конкретной причины, вам, вероятно, не следует использовать -bufsize 20M -maxrate 4000k -threads 12 -same_quant. Фактически, судя по вводу в pastebin, вам, вероятно, следует просто использовать -codec:v copy, что не коснется видеопотока.

Что касается вашей заявленной проблемы... Я не думаю, что libfaac - ваша проблема. Посмотрите сюда (из вашего pastebin):

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from \'/var/www/up/up50eefce404e4f.mp4\':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isomavc1mp42
    creation_time   : 2007-12-08 19:28:08
  Duration: 00:46:47.64, start: 0.000000, bitrate: 308 kb/s
    Stream #0.0(und): Audio: aac, 44100 Hz, stereo, s16, 111 kb/s
    Metadata:
      creation_time   : 2007-12-08 19:28:08
    Stream #0.1(und): Video: h264 (Baseline), yuv420p, 320x240 [PAR 1:1 DAR 4:3], 195 kb/s, 11.99 fps, 11.99 tbr, 11988 tbn, 23976 tbc
    Metadata:
      creation_time   : 2007-12-08 19:28:11

FFmpeg считает, что ваш входной звук — стерео. Гораздо позже:

Input stream #0:0 frame changed from rate:44100 fmt:s16 ch:2 to rate:44100 fmt:s16 ch:8
Resampling output channel count must be 1 or 2 for mono input; 1, 2 or 6 for stereo input; or N for N channel input.
Can not resample 8 channels @ 44100 Hz to 2 channels @ 44100 Hz

Видеопоток также выдает кучу ошибок. Я подозреваю, что ваш ввод может быть поврежден.

Еговозможныйчто следующая команда будет работать:

avconv -ac 8 -i input.mp4 -c:v copy -c:a libfaac -b:a 128k -ac 2 output.mp4

-acустанавливает количество аудиоканалов:еслипоток AAC не поврежден, возможно, формат контейнера просто предоставляет неверные данные для avconv, а размещение -ac 8перед входом переопределяет настройку, предоставленную контейнером MP4 (а размещение -ac 2перед выходом указывает ffmpeg на необходимость вывода на 2 аудиоканала).

Связанный контент