3 votes

Remux FFmpeg MKV vers MP4 tout en convertissant toutes les pistes audio en AAC

J'avais une commande ffmpeg qui remuxait avec succès un mkv vers un mp4 compatible iTunes. Cependant, elle ne prenait que le premier flux audio, quelle que soit la langue. Je veux remuxer tous les flux audio, ou au moins le flux anglais. Je dois également conserver le 5.1.

Voici ce que j'ai pour l'instant :

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

Ce qui entraîne l'erreur suivante :

Erreur lors de l'ouverture de l'encodeur pour le flux de sortie #0:1 - peut-être des paramètres incorrects comme le bit_rate, le taux, la largeur ou la hauteur.

Voici le résultat complet :

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

4voto

llogan Points 50040

[libvo_aacenc @ 037dfb00] Unable to set encoding parameters

libvo_aacenc ne peut probablement pas encoder les canaux 5.1 et est un mauvais encodeur en général. Vous pouvez utiliser aac (avec -strict experimental ), libfaac ou libfdk_aac (si votre ffmpeg a été configuré pour le supporter) pour préserver vos canaux. Si vous devez utiliser libvo_aacenc vous pouvez ajouter -ac 2 ou utiliser un filtre audio pour transformer la sortie en deux canaux.

Déclarer une "qualité" pour votre audio est probablement le plus simple, comme par exemple -q:a 100 para libfaac o -vbr 5 para libfdk_aac sinon vous pouvez choisir le bitrate audio avec -b:a mais notez que le débit binaire sera partagé entre tous les canaux. Donnez-lui donc une valeur plus élevée que pour une sortie stéréo. libvo_aacenc accepte uniquement -b:a .

Par défaut, ffmpeg choisira le "meilleur" flux vidéo, audio et de sous-titres de votre entrée, ce qui donnera une sortie avec potentiellement une vidéo, un flux audio et un flux de sous-titres. Ajouter -map 0 comme slhck l'a mentionné, pour remplacer cette valeur par défaut et inclure tous les flux d'entrée. 0 (la première entrée). Voir sélection des flux dans la documentation de ffmpeg pour plus d'informations et une explication de "best".

Voir aussi :

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X