J'ai une piste audio 5.1 d'un film dont l'avant gauche et l'avant droite contiennent de la musique et le centre des dialogues. La lecture de la piste 5.1 dans VLC associe parfaitement tout.
J'essaie de convertir la piste 5.1 en stéréo ffmpeg -ac 2
, mais le volume du mixage stéréo obtenu est beaucoup plus faible que celui de la piste 5.1 en mode natif.
L'ajout -af "pan=stereo|c0=FL|c1=FR"
donne le volume correct, mais il n'y a pas de dialogue car le canal central n'est pas inclus.
Donc, la solution est peut-être de mélanger la gauche / centre / droite en stéréo et de jeter les canaux de subwoofer arrière? (Je devine ici ...)
La question est donc de savoir comment rendre ffmpeg downmix 5.1 en stéréo de la même manière que VLC, avec le même volume élevé au final.
-ac 2
. Je demande donc comment faire en sorte que ffmpeg génère le même bon résultat que VLC.Réponses:
J'ai trouvé la réponse fournie par Shane pour fournir trop peu des autres canaux et trop du centre. Les films avec des écouteurs semblaient déséquilibrés, avec tous les dialogues et pas assez de musique de fond / effets.
Selon les normes ATSC (section 7.8, page 91), la formule suivante permet de passer de la version 5.1 à la stéréo classique (par opposition à la matrice):
clev et slev devraient être égaux à 0,707, conformément aux tableaux 5.9 et 5.10 du document susmentionné, en supposant un niveau de mixage centre / surround de 0. D'autres valeurs sont fournies dans ces tableaux, ce qui réduit l'ampleur du mixage central, ce que je ne trouve pas utile.
En gardant cela à l’esprit, l’option ffmpeg suivante produit un son bien équilibré avec un dialogue audible. Notez que la spécification des canaux audio n'est pas nécessaire.
Une note sur l'utilisation du symbole inférieur à, dans la documentation du filtre panoramique :
la source
ac -2
commutateur. En d'autres termes, la seule différence entre utiliser ce filtre et faireac -2
est beaucoup plus de dactylographie.Les réponses à cette question sont depuis devenues un peu un bordel, avec beaucoup contenant des informations redondantes et d'autres des inexactitudes complètes. Cette réponse est une tentative de rationaliser les informations contenues dans ces réponses tout en éliminant leurs problèmes.
Plus important encore, il convient de garder à l'esprit que la réponse de Gregory, qui est actuellement la réponse la plus votée à cette question, ne diffère pas de l'utilisation du
-ac 2
commutateur - plus à ce sujet ci-dessous.Mélanger à la baisse un flux audio 5.1 canaux en stéréo avec
-ac 2
FFmpeg est livré avec des fonctionnalités intégrées pour mixer une piste 5.1 en stéréo, et c'est également la solution recommandée par la documentation de FFmpeg :
Le
-ac 2
commutateur mélange les proportions des 5 premiers canaux du flux 6 canaux de la source (arrière gauche, arrière droite, avant gauche, avant droite et avant centre), dans les canaux avant gauche et avant droite du flux stéréo de sortie:Ce faisant, l’audio provenant du canal LFE (le .1 en 5.1, réservé au subwoofer et utilisé pour les effets profonds et basse fréquence) est totalement ignoré lors de l’utilisation de cette option.
Malheureusement, mes tests ont
-ac 2
abouti à des niveaux globaux de musique et de dialogue très différents de la source, ce qui en fait la formule de mixage réduit qui produit le pire résultat de toutes les formules que j'ai testées, bien que vous puissiez le tester et le constater. vous donne un mélange parfaitement adapté à vos besoins. Dans ce cas, utiliser une autre formule serait excessif pour vous.Pour mixer une piste DTS
-ac 2
sans la transcoder (pour que son codec et son extension restent identiques):Comme Mephisto l'a souligné dans sa réponse, si le dialogue et la musique vous paraissent équilibrés mais manquent simplement de volume, vous pouvez sous-mélanger le flux tout en augmentant son volume:
Pour le
-vol
commutateur, 100% du volume de la source équivaut à la valeur entière 256 et l'utilisation d'une valeur supérieure à cette valeur augmente le volume global du flux audio. Cependant, notez que trop vous risquez de générer de la distorsion ou des artefacts, en particulier pendant les périodes les plus fortes.Pour mixer un flux audio en stéréo et le convertir au codec AC3, par exemple:
Mélanger à la baisse un flux audio 5.1 canaux en stéréo avec un algorithme de mixage personnalisé
Si vous voulez un mixage réducteur de meilleure qualité, ou si vous devez absolument inclure le flux LFE dans votre sortie, vous pouvez utiliser le commutateur de filtre audio de FFmpeg (
-af
) pour réduire le mixage audio à l'aide d'une formule de mixage personnalisée.Mélanger avec la formule ATSC (réponse de Gregory)
Au moment de publier cette réponse, la réponse la plus votée à cette question était celle de Gregory , qui place la formule tirée de la spécification ATSC (voir la section 7.8.2, Mixage réduit en deux canaux ) dans un filtre audio FFmpeg. Cette spécification est elle-même directement liée à la documentation de FFmpeg sur le sujet , indiquant qu'il est fort probable que ce soit la même formule que FFmpeg implémente déjà pour son
-ac 2
commutateur. Si cela est vrai, taper toute la formule dans la réponse de Gregory ne serait pas différent de l'utilisation du-ac 2
commutateur, et donc une perte de temps.J'ai décidé de tester cela avec certitude en réencodant la même entrée audio en utilisant à la fois
-ac 2
le-af
filtre de la réponse de Gregory (les commandes exactes utilisées sont visibles dans les notes de bas de page associées à cette réponse).J'ai ensuite comparé les tailles des fichiers de sortie résultants et trouvé qu'elles étaient, octet par octet, de la même taille:
Enfin, j'ai ouvert les deux fichiers de sortie dans Audacity et comparé leurs formes d'onde pour confirmer qu'elles étaient identiques (cliquez pour agrandir):
Il semble donc assez concluant que la formule ATSC détaillée dans la réponse de Gregory soit la même que celle déjà utilisée par FFmpeg et que son utilisation est entièrement redondante si elle ne fait rien qui
-ac 2
ne le fait pas et constitue une commande beaucoup plus lourde.Mélanger à la baisse sans rejeter le canal LFE (réponse de Dave_750)
Parmi les réponses incluses, c’est la seule formule parmi les formules de mixage réducteur qui semble mélanger le canal LFE dans la sortie stéréo au lieu de l’écarter complètement. Par conséquent, celle qui garantit le moins de son de la source est: perdu.
Le niveau de volume général est plus élevé et plus
-ac 2
riche que prévu, mais reste également inférieur au mixage en dessous du mode Nightmode Dialogue. Cependant, les niveaux de musique sont beaucoup plus proches de la source que le mixage réducteur Nightmode Dialogue et, en raison de l’inclusion de la piste LFE, augmenter le volume de la sortie tout en utilisant cette formule de mixage réducteur peut créer un flux de sortie plus fidèle à la source 5.1 que tous les autres. formules que j'ai testées.Si vous en avez la possibilité, je vous recommande fortement d'encoder votre ou vos flux audio en utilisant à la fois cette formule de downmix et le downmix de Nightmode Dialogue, et de comparer soigneusement les formes d'onde des deux pour déterminer laquelle est la meilleure.
Pour mixer une piste 5.1 en stéréo en utilisant cette formule et augmenter son niveau de volume à 425 (où 256 correspond à 100% du niveau de volume de la source d'origine):
Mélangez à fond avec Nightmode Dialogue de Robert Collier (réponse de Shane Harrelson)
La formule Nightmode Dialogue, créée par Robert Collier sur le forum Doom9 et fournie par Shane Harrelson dans sa réponse, aboutit à un mixage bien meilleur que le
-ac 2
commutateur - au lieu de dialogues trop calmes, elle les ramène à des niveaux beaucoup plus proches de la la source.D'après la description du mélange faite par Robert Collier:
Malheureusement, la musique de cette formule de downmix est beaucoup plus basse que dans la source 5.1 (ce qui était probablement voulu par la conception compte tenu de l'intention de Collier de créer un mix "mode nuit") et, en raison de la perte complète de la piste LFE, la sortie audio globale ne sonner aussi complet ou proche de la source que la formule de Dave_750 avec volume augmenté .
Toutefois, si, pour une raison quelconque, vous souhaitez éviter d'augmenter le volume global du flux, le dialogue Nightmode sera probablement votre meilleure option. Néanmoins, je vous recommande fortement d'encoder votre flux audio aux deux et de comparer soigneusement les formes d'onde des deux. .
Pour mixer avec la formule Nightmode Dialogue dans FFmpeg:
La réponse de Tarc
Cette réponse place simplement la formule de mixage à la baisse Nightmode Dialogue issue de la réponse de Shane Harrelson dans une commande permettant de convertir le flux audio dans un conteneur MKV. Alors que la commande donnée dans cette réponse fonctionnerait correctement sur un tel flux audio, son adaptation à une piste audio autonome produirait l'erreur suivante:
Cela est dû au fait que le codec audio ne peut pas être copié lors du mixage en aval - comme pour toutes les autres modifications apportées par FFmpeg à un flux de sortie, un mixage en aval nécessite que la piste soit recodée pour que les modifications soient appliquées.
Cette commande incluait également un
-ac 2
commutateur redondant que FFmpeg aurait ignoré.Commandes de test
Pour démontrer la fiabilité des tests que j'ai effectués pour cette réponse, voici toutes les commandes que j'ai utilisées pour tester chaque formule de sous-mixage.
La commande de test utilisée pour l'
-ac 2
option:La commande de test utilisée pour la réponse de Gregory:
La commande de test utilisée pour la réponse de Dave_750:
La commande de test utilisée pour la réponse de Shane Harrelson:
la source
-ac 2
m’a donné un résultat inférieur au départ, ce qui a motivé la publication originale. Je vais essayer à nouveau et si possible, partager un extrait 5.1 qui ne donne pas un résultat satisfaisant avec le mixage incorporé. Aussi très agréable de savoir que vous pouvez down-mixer sans transcodage!ac -2
option m'a donné le résultat le plus médiocre de toutes les formules de mixage réductif également, je pense que c'est simplement un échec de la formule de la norme ATSC.ffmpeg -i 5.1.mp4 -ac 2 2.mp4
fonctionne, maisffplay -i 5.1.mp4 -ac 2
ne fonctionne pas.Essayez ce downmix:
comme suggéré par Robert Collier dans le forum Doom9.
la source
Donc, en combinant @Shane Harrelson avec la réponse de @Jordan Harris à une autre question - avec le mode paresseux activé - voici ce qu'il faut pour convertir
input_51.mkv
(5.1) enoutput_stereo.mkv
(stéréo):La
-c:v copy
partie signifie que le flux vidéo n'est pas touché (je suppose que les v idéo c paramètres est en cours d' ODEC cop ied). Sans cela, cela prendra beaucoup plus de temps. Répéter simplement la réponse ci-dessus pour compléter,-ac 2
signifie deux canaux audio et-af
spécifie un filtre audio.Après avoir examiné un peu la commande, je me suis rendu compte que cela définissait la composition des deux canaux stéréo. le
FL
(canal avant gauche) provient de l'originalFC
(centre avant) plus0.30*FL
(30% de l'avant gauche) plus0.30*BL
(30% de l'arrière gauche) et ainsi de suite.la source
C'est une vieille question maintenant, mais m'a dirigé dans la bonne direction et voulait partager mon résultat:
Le fait de placer la moitié des FC et des LFE à gauche et à droite donne un total de 1 pour leurs volumes effectifs des deux haut-parleurs. L’utilisation de .707 * Avant / Arrière Gauche / Droite ramène ces canaux à un bon niveau pour qu’ils ne surchargent pas le centre.
la source
Si l’option -ac 2 vous offre un mixage final équilibré dans lequel ni la musique ni la parole ne sonne beaucoup plus que les autres composants, il vous suffit d’augmenter le volume avec
J'ai utilisé 512 dans l'exemple, ce qui augmente le son en le rendant deux fois plus fort. La règle est que 256 est équivalent à 100%
N'allez pas trop haut avec la valeur, et assurez-vous de vérifier les résultats dans les parties du film avec des explosions ou des bruits forts. Il est très facile d'introduire une distorsion en utilisant une valeur trop élevée.
la source
-ac 2
Le volume des canaux dans le mixage descendant est inchangé avec le codec à virgule flottante -> pcm_f32le, aac
Le volume en mixage abaissé (5.1 à 2.0 sans LFE) est réduit de 1 / 2.5 = -7.96 dB avec codec entier -> pcm_s16le, libfdk_aac
Les films ont un son pointé dans une direction et aucune pression sonore maximale sur tous les canaux. Il est donc faux de réduire le volume du mixage, une compression de niveau faible est la bonne solution. C'est ce que fait Dolby.
la source
Après avoir lu toute cette page et quelques expériences, j'ai créé ce script appelé "down_mix":
Ajustez les variables ci-dessus à votre convenance. Je n'ai pas eu de problème avec le faible volume, donc je l'ai omis, mais facilement ajouté.
la source
Le filtre ffmpeg "-ac 2" fonctionne bien tant que votre cible est encodée en pcm_s16le. Lors de l’encodage au format wav de pcm_f32le, le volume est augmenté de 9 dB et plus. Par conséquent: n'utilisez pas le filtre "-ac 2" dans de tels cas.
la source