FFmpeg MKV para MP4 remux enquanto converte todas as faixas de áudio para AAC

FFmpeg MKV para MP4 remux enquanto converte todas as faixas de áudio para AAC

Eu tinha um comando ffmpeg que remuxaria com sucesso um mkv para um mp4 compatível com o iTunes. No entanto, foi necessário apenas o primeiro fluxo de áudio, independentemente do idioma. Quero remixar todos os streams de áudio, ou pelo menos o stream em inglês. Eu também preciso reter 5.1.

Aqui está o que tenho até agora:

ffmpeg -i "input.mkv" -y -f mp4 -vcodec copy -acodec libvo_aacenc -ac 6 "output.mp4"

O que gera o seguinte erro:

Erro ao abrir o codificador para o fluxo de saída #0:1 - talvez parâmetros incorretos, como taxa de bits, taxa, largura ou altura

Aqui está a saída completa:

C:\Program Files\ffmpeg\bin>"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "E:\movies\A film.mkv" -y -f mp4 -vcodec copy -acodec libvo_aacenc -ac 6 "E:\iTunes\Automatically Add to iTunes\A film.mp4"
ffmpeg version N-47062-g26c531c Copyright (c) 2000-2012 the FFmpeg developers
  built on Nov 25 2012 12:21:26 with gcc 4.7.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-pthreads --enable-runtime-cpudetect --enab
le-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libop
encore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libop
enjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheo
ra --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-lib
vpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52.  9.100 / 52.  9.100
  libavcodec     54. 77.100 / 54. 77.100
  libavformat    54. 37.100 / 54. 37.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 23.102 /  3. 23.102
  libswscale      2.  1.102 /  2.  1.102
  libswresample   0. 17.101 /  0. 17.101
  libpostproc    52.  2.100 / 52.  2.100
Input #0, matroska,webm, from 'E:\movies\Pitch Perfect.mkv':
  Duration: 01:52:07.11, start: 0.000000, bitrate: 9765 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p, 1920x1040, SAR 1:1 DAR 24:13, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Stream #0:2(eng): Subtitle: subrip
[libvo_aacenc @ 037dfb00] Unable to set encoding parameters
Output #0, mp4, to 'E:\iTunes\Automatically Add to iTunes\Pitch Perfect.mp4':
    Stream #0:0(eng): Video: h264, yuv420p, 1920x1040 [SAR 1:1 DAR 24:13], q=2-31, 23.98fps, 90k tbn, 1k tbc (default)
    Stream #0:1(eng): Audio: aac, 48000 Hz, 5.1, s16, 128 kb/s (default)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (dca -> libvo_aacenc)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

Responder1

[libvo_aacenc @ 037dfb00] Unable to set encoding parameters

libvo_aacencprovavelmente não consegue codificar canais 5.1 e é um codificador ruim em geral. Você pode usar aac(com -strict experimental), libfaacou libfdk_aac(se o seu ffmpeg estiver configurado para suportá-lo) para preservar seus canais. Se precisar usar, libvo_aacencvocê pode adicionar -ac 2ou usar um filtro de áudio para alterar a saída para dois canais.

Declarar uma "qualidade" para o seu áudio é provavelmente mais fácil, como -q:a 100for libfaacou -vbr 5for libfdk_aac, caso contrário você pode escolher a taxa de bits do áudio com -b:a, mas observe que a taxa de bits será compartilhada entre todos os canais, portanto, atribua um valor mais alto do que você daria para um estéreo saída. libvo_aacencsó aceita -b:a.

Por padrão, o ffmpeg escolherá o "melhor" fluxo de vídeo, áudio e legenda de sua entrada, resultando em uma saída com potencialmente um vídeo, um fluxo de áudio e um fluxo de legenda. Adicione -map 0, como slhck mencionou, para substituir esse padrão e incluir todos os fluxos da entrada 0(a primeira entrada). Verseleção de fluxona documentação do ffmpeg para mais informações e uma explicação do "melhor".

Veja também:

informação relacionada