Aide - Recherche - Membres - Calendrier
Version complète : DownMix 5.1 --> 2.0
Forum Ripp-it After Me > Les ressources > Filtres avisynth....
Dirk-Pitt
Il suffit de demander Pepsi yahoo.gif Cette fois je me suis inspiré de "la matrice de downmix d'AC3Filter d'Alexander Vigovsky".

function DownMix( clip C )
{
  Assert( C.AudioChannels == 6, "This clip must have 6 audio channels" )
  A1=GetChannel( C, 1 )
  A2=GetChannel( C, 2 )
  A3=GetChannel( C, 3 )
  A4=GetChannel( C, 4 )
  A5=GetChannel( C, 5 )
  A6=GetChannel( C, 6 )
  A1=MixAudio( MixAudio( A1, A5, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A2=MixAudio( MixAudio( A2, A6, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A=MergeChannels( A1, A2 )
  Return( C.HasVideo ? AudioDub( C, A ) : A )
}

Avec en entrée un flux 6 canaux ayant pour ordre L R C LFE SL SR. Vala. cling1.gif
pepsilite
Merci Dirk, en fait, le cas est arrivé aujourd'hui à un posteur, et hier à Pepsy (NON, C PAS MON COUSIN yahoo1.gif) le son original est un wma2 5.1 dans un wmv et ffmpeg refuse catégoriquement d'encodage du 5.1 et il ne propose rien pour le "downmix", le pb aussi est que je n'ai rien pour savoir si le son est du 5.1 ou autre à la base, tu n'aurais pas une solution "automatique" pour ça? style que le script lui même analyse le nombre de canaux? j'ignore si une telle fonction existe, mais au cas où yahoo1.gif
Dirk-Pitt
Il suffit de demander Pepsi yahoo.gif ( bis )

function DownMix( clip A )
{
  A1=GetChannel( A, 1 )
  A2=GetChannel( A, 2 )
  A3=GetChannel( A, 3 )
  A4=GetChannel( A, 4 )
  A5=GetChannel( A, 5 )
  A6=GetChannel( A, 2 )
  A1=MixAudio( MixAudio( A1, A5, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A2=MixAudio( MixAudio( A2, A6, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A=MergeChannels( A1, A2 )
  Return ( A )
}
# ====================================================================
A=WAVSource( "..." )
A=A.AudioChannels == 6 ? DownMix( A ) : A

Re-Vala. cling1.gif
pepsilite
ah ben voilà yahoo1.gif
super yahoo1.gif
pepsilite
je teste

CA MARCHE !!!!!! génial yahoo1.gif
Dirk-Pitt
Vraiment content d'apporter une pierre à l'édifice RI4M. aga.gif
pepsilite
ça va servir apparemment : http://forum.ripp-it.com/index.php?s=&show...ndpost&p=110037

bon, je l'ai intégré pour tous les ré-encodages ffmpeg mais il faudrait réfléchir à l'intégration des 2.
Dirk-Pitt
(pepsilite @ dimanche 15 janvier 2006 à 22:17) *

... mais il faudrait réfléchir à l'intégration des 2 ...

1. Que veux tu dire par là ?
2. Dans le cas de Nin_mania le DownMix est fait lors de la conversion AC3 --> WAV par Azid, non ?
pepsilite
1. ben utiliser ces scripts dans Ri4m pour convertir les sons en cas de besoin
2. ça devrait, mais pas là...
pepsilite
Mise à jour publiée :
http://forum.ripp-it.com/index.php?s=&show...ndpost&p=100855
Dirk-Pitt
Ok, super. aga.gif
Dirk-Pitt
Voilà une nouvelle version :

function DownMix( clip C )
{
  Assert( C.AudioChannels == 6, "This clip must have 6 audio channels" )
  A1=GetChannel( C, 1 )
  A2=GetChannel( C, 2 )
  A3=GetChannel( C, 3 )
  A4=GetChannel( C, 4 )
  A5=GetChannel( C, 5 )
  A6=GetChannel( C, 2 )
  A1=MixAudio( MixAudio( A1, A5, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A2=MixAudio( MixAudio( A2, A6, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A=MergeChannels( A1, A2 )
  Return( C.HasVideo ? AudioDub( C, A ) : A )
}

Les nouveautés :
1. un contrôle du nombre des canaux en entrée
2. si le clip a une piste vidéo, elle est préservée

Enjoy. cling1.gif
Dirk-Pitt
Personne n'a vu la bulle ... voilà une nouvelle version :

function DownMix( clip C )
{
  Assert( C.AudioChannels == 6, "This clip must have 6 audio channels" )
  A1=GetChannel( C, 1 )
  A2=GetChannel( C, 2 )
  A3=GetChannel( C, 3 )
  A4=GetChannel( C, 4 )
  A5=GetChannel( C, 5 )
  A6=GetChannel( C, 6 )
  A1=MixAudio( MixAudio( A1, A5, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A2=MixAudio( MixAudio( A2, A6, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A=MergeChannels( A1, A2 )
  Return( C.HasVideo ? AudioDub( C, A ) : A )
}

Les nouveautés :
1. correction

Enjoy. cling1.gif
rol
Effectivement cling1.gif yahoo1.gif
underground78
(rol @ mercredi 16 août 2006 à 20:56) *

Effectivement cling1.gif yahoo1.gif


Ah ouais j'avais pas vu le "2" baladeur non plus ... cling1.gif
Winche
Ah les 2 alors ... evil.gif .. incorrigibles !!!
Winche
.. AutoModo .. hop.gif
Winche
Je me suis auto modéré car good.gif j'allais sinon prendre le risque de potentiellement blesser certains, sans que ce ne soit le but du tout, pour faire un petit mot d'esprit .. cling1.gif
rol
J'ai modifié le premier message pour remplacer le 2 par un 6 cling1.gif
Dirk-Pitt
(rol @ dimanche 20 août 2006 à 18:51) *

J'ai modifié le premier message pour remplacer le 2 par un 6 cling1.gif

Bonne idée Rol, sauf que ce n'est pas la dernière ( meilleure ) version. euh.gif
rol
Ah ? Ma modif n'est pas bonne ? yahoo1.gif
Winche
Non mais c'est pas grave .. t'es quand même une sympathique et gentille bzzzz bzzzz ..

mrgreen2.gif
Winche
yahoo1.gif
Dirk-Pitt
(rol @ dimanche 20 août 2006 à 19:02) *

Ah ? Ma modif n'est pas bonne ? yahoo1.gif

Disons que la dernière version du script est là http://forum.ripp-it.com/index.php?s=&...st&p=171574 yahoo.gif
rol
On peut mettre la dernière version dans le 1er message ? yahoo1.gif
Dirk-Pitt
Bonne idée ... Je te laisse faire. cling1.gif
rol
Ok cling1.gif yahoo1.gif
Winche
La faignasse le DP .. mrgreen2.gif
rol
Voilà cling1.gif
Dirk-Pitt
(Winche @ dimanche 20 août 2006 à 20:58) *

La faignasse le DP .. mrgreen2.gif

w02.gif
Winche
Hi hi .. bah oué .. grosse limace même .. an_lof.gif
underground78
mrgreen2.gif
leon1789
(Dirk-Pitt @ mercredi 16 août 2006 à 14:06) *

Personne n'a vu la bulle ... voilà une nouvelle version :

function DownMix( clip C )
{
  Assert( C.AudioChannels == 6, "This clip must have 6 audio channels" )
  A1=GetChannel( C, 1 )
  A2=GetChannel( C, 2 )
  A3=GetChannel( C, 3 )
  A4=GetChannel( C, 4 )
  A5=GetChannel( C, 5 )
  A6=GetChannel( C, 6 )
  A1=MixAudio( MixAudio( A1, A5, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A2=MixAudio( MixAudio( A2, A6, 0.2698, 0.2698 ), MixAudio( A3, A4, 0.1907, 0.2698 ) )
  A=MergeChannels( A1, A2 )
  Return( C.HasVideo ? AudioDub( C, A ) : A )
}

Les nouveautés :
1. correction

Enjoy. cling1.gif

La "bulle" est toujours présente dans Riam aga.gif
leon1789
J'ai repris le dernier code de Dirk-Pitt en
-1- renommant les variables (plus lisibles je trouve)
-2- réajustant les constantes de mixage (sorties aussi de AC3Filter, année 2007)
-3- corrigeant une baisse indésirée de 50% du volume final.


function DownMix( clip V )
{
  Assert( V.AudioChannels == 6, "This clip must have 6 audio WAV channels" )
  L = GetChannel( V, 1 )
  R = GetChannel( V, 2 )
  C = GetChannel( V, 3 )
  LFE = GetChannel( V, 4 )
  SL = GetChannel( V, 5 )
  SR = GetChannel( V, 6 )

  CLFE = MixAudio( C, LFE, 0.2071, 0.2071 )
  L = MixAudio( MixAudio( L, SL, 0.2929, 0.2929 ), CLFE, 1, 1 )
  R = MixAudio( MixAudio( R, SR, 0.2929, 0.2929 ), CLFE, 1, 1 )

  A = MergeChannels( L, R )
  Return( V.HasVideo ? AudioDub( V, A ) : A )
}
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez DownMix 5.1 --> 2.0.
Invision Power Board © 2001-2008 Invision Power Services, Inc.