3 votes

La conversion de DTS en AAC avec ffmpeg décale l'audio parlé vers la droite.

Je suis en train d'utiliser ffmpeg pour convertir mkv films à mp4 comme ça :

$ ffmpeg -i source.mkv -c:v copy -c:a aac destination.mp4

En faisant cela, le flux audio est converti à partir du DTS original :

Stream #0:1: Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)

Au CAA :

Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default)

Le fichier résultant est lu sans problème, sauf que le son parlé (ce que je suppose être envoyé au canal central dans une configuration 5.1) est clairement décalé vers la droite, lorsqu'il est écouté par les haut-parleurs intégrés du MacBook ou par mon casque stéréo. Notez que la musique et les autres effets sonores ne sont pas affectés et sont correctement équilibrés. Notez également que j'ai été en mesure de reproduire ce comportement avec une variété de fichiers source.

Voici la bannière de ffmpeg :

ffmpeg version 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 9.1.0 (clang-902.0.39.2)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.0.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100

4voto

Gyan Points 28168

Un commit FFmpeg, aacenc : support des dispositions de canaux étendus utilisant des PCEs En novembre 2017, le système a ajouté la prise en charge de beaucoup plus de dispositions de canaux que celles spécifiées dans la norme MPEG pour AAC. Malheureusement, il semble que cela ait cassé l'encodage pour des dispositions qui fonctionnaient bien auparavant.

La série de versions 3.4 est la dernière avant le "commit" mentionné et doit être utilisée pour l'encodage AAC multicanal si vous rencontrez une erreur avec les versions plus récentes.

Il existe un rapport de bogue ouvert à l'adresse suivante https://trac.ffmpeg.org/ticket/7273 . Vous pouvez y poster un commentaire pour présenter votre exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X