LIBFAAC no puede volver a muestrear canales

LIBFAAC no puede volver a muestrear canales

Lo estoy usando avconvpara convertir archivos de video a MP4, pero cada vez que intento codificar archivos con 6 u 8 canales en 2 canales, libfaacrecibo estos mensajes de error:

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

(EDITAR: el resultado completo de los mensajes se puede encontrar aquí:http://pastebin.com/UXGrBy1D)

Estos son los codecs que tenemos instalados para avconv:http://pastebin.com/hyQrqXqW

Y este es el comando que estoy ejecutando:

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

¿Estoy haciendo algo mal?

¿O hay alguna alternativa a libfaacla cualvoluntad¿Remuestrear 8 canales en 2 canales?

Necesito poder hacer esto desde una línea de comando en mi servidor Ubuntu 12.04.

Respuesta1

En primer lugar, si aún no lo has hecho, consultaesta guía de codificación ffmpeg h.264- También se aplica a avconv, simplemente cambie cada instancia de ffmpega avconv. Además, considere actualizar a una versión más reciente de avconv o ffmpeg; dado que está en Ubuntu, podría usareste PPA, ocompílalo tú mismo(esta última opción te dará acceso afdk_aac, que es un codificador AAC mucho mejor que FAAC).

A menos que sepa exactamente lo que está haciendo y tenga un motivo específico, probablemente no debería utilizar -bufsize 20M -maxrate 4000k -threads 12 -same_quant. De hecho, siguiendo la entrada en ese Pastebin, probablemente deberías usar -codec:v copy, que no afectará la transmisión de video.

En cuanto a su problema planteado... No creo que libfaac sea su problema. Mire aquí (de su pastbin):

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 cree que su audio de entrada es estéreo. Mucho más tarde:

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

La transmisión de vídeo también arroja muchísimos errores. Sospecho que su entrada puede estar corrupta.

Esposibleque el siguiente comando funcionará:

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

-acestablece el número de canales de audio:sila transmisión AAC no está dañada, es posible que el formato del contenedor simplemente proporcione datos incorrectos a avconv, y colocarlo -ac 8antes de la entrada anula la configuración proporcionada por el contenedor MP4 (y colocarlo -ac 2antes de la salida le indica a ffmpeg que envíe a 2 canales de audio) .

información relacionada