Прежде всего, если вы еще этого не сделали, ознакомьтесь с этим руководством по кодированию 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 - твоя проблема. Посмотри здесь (из твоего пастбина):
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 аудиоканала).