Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 25-10-2016 09:17:44

golgot200
Membre
Inscription : 05-08-2007

Un script "FADE IN & OUT" sur un WAV

Bonjour,

voilà, je planche sur un script.

J'ai le début en supposant que le fichier se nomme pour l'instant : MON_FICHIER.wav
J'ai trouvé sur le net le moyen de prendre l'info de sa durée en secondes et juste ça.


ffmpeg -i MON_FICHIER.wav 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }'
 



Il me retourne bien :


88
 



J'aimerai bien que cette durée - 5 secondes  soit mise dans la suite du script " la deuxième commande " plutôt que de rentrer celle-ci manuellement. Si vous voyez ce que je veux dire. Ça pourrait devenir intérressant par la suite.


ffmpeg -i MON_FICHIER.wav -af "afade=t=in:ss=0:d=5,afade=t=out:st=83:d=5" output.wav
 




out:st=83:d=5
 



Merci à celui ou à ceux qui voudront bien m'aider. smile

Dernière modification par golgot200 (25-10-2016 09:59:13)

Hors ligne

#2 25-10-2016 10:09:44

golgot200
Membre
Inscription : 05-08-2007

Re : Un script "FADE IN & OUT" sur un WAV

Ou pour faire plus simple que 5 secondes soit automatiquement enlever à 88

Hors ligne

#3 25-10-2016 10:27:10

golgot200
Membre
Inscription : 05-08-2007

Re : Un script "FADE IN & OUT" sur un WAV

Whouuuuua !!!!   big_smile

J'ai trouvé un truc qui fonctionne :


#!/bin/bash -v

times=()
for f in *.wav; do
 _t=$(ffmpeg -i "$f" 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] - 5 }')
    times+=("$_t")
done
echo "${times[@]}" | sed 's/ /+/g' | bc



 ffmpeg -i "$f" -af "afade=t=in:ss=0:d=5,afade=t=out:st=$times :d=5" output.wav


sleep 100

 



Mettre -5 à la fin de cette ligne :


 _t=$(ffmpeg -i "$f" 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] - 5 }')
 



smile

Dernière modification par golgot200 (25-10-2016 10:30:46)

Hors ligne

#4 25-10-2016 10:34:44

golgot200
Membre
Inscription : 05-08-2007

Re : Un script "FADE IN & OUT" sur un WAV

Bien sûr, ça ne marche que pour un fichier Wav, si il y en a deux ça foire. Normal pour l'instant tongue

Hors ligne

#5 25-10-2016 22:42:20

phlinux
Membre
Lieu : S-M
Distrib. : Jessie
Noyau : 4.6
(G)UI : Openbox (+Rox+Feh)
Inscription : 10-05-2009

Re : Un script "FADE IN & OUT" sur un WAV

Bsr,
Ce n'est peut être pas important mais tu peux simplifier la ligne de base, par exemple:

ffmpeg -i "$f" 2>&1 | awk '/^  Duration/ { split($2, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] - 5 }'


Pages perso : feh, omegat, udisks, sa station de travail comme passerelle

Hors ligne

#6 25-10-2016 23:29:00

golgot200
Membre
Inscription : 05-08-2007

Re : Un script "FADE IN & OUT" sur un WAV

Bonsoir  phlinux

C'est adopté, merci smile

Hors ligne

#7 26-10-2016 10:53:41

greenmerlin
Membre
Lieu : 127.0.0.1
Distrib. : Archlinux/TinycoreLinux(CorePure 64-6.4.1)/Jessie
Noyau : 4.2.2-1 / 4.4
(G)UI : wmaker
Inscription : 23-01-2016

Re : Un script "FADE IN & OUT" sur un WAV

@phplinux

Excellent ton pipe AWK !

plus.png

" La plus importante et la plus négligée de toutes les conversations, c'est l'entretien avec soi-même. "
Chancelier Oxenstiern.

536920766f7573206172726976657220c3a0206c69726520c3a7612c20632765737420717565206e6f757320706172746167656f6e73206c6573206dc3aa6d65732063656e747265732064e28099696e74c3a972c3aa74732e

Hors ligne

Pied de page des forums