Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/03/2008, à 20:36

paul2nice

[resolu] script mencoder / ffmpeg

Bonjour,

Je suis super débutant en linux je cherche à créer un script dont voici le contenu :

#!/bin/sh
# Conversion des videos en .flv
for i in `find . -iname '*.mov'` `find . -iname '*.avi'` `find . -iname '*.asf'`; 
do 
mencoder $i -forceidx -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf  -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=250:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=360:240 -o $i.flv;
done
# FONCTIONNE


# Extraction des images aperçu dans les videos .flv
for i in `find . -iname '*.flv'`;
do
ffmpeg -y -i $i -vcodec mjpeg -vframes 10 -an -f rawvideo TN-$i.jpg;
done
# NE FONCTIONNE PAS

Je suis bloqué à la deuxième boucle, ça me dit

Could not open 'TN-./crossbretagne/100_4067.MOV.flv.jpg' et idem pour les autres images des autres répertoires...

Merci pour votre aide ;-)

Dernière modification par paul2nice (Le 27/03/2008, à 13:23)

Hors ligne

#2 Le 08/03/2008, à 20:42

jean bono

Re : [resolu] script mencoder / ffmpeg

je ne m'y connais vraiment pas mais bon je vois un fichier .MOV.flv.jpg
donc l'erreur vient de l'extension
quand tu convertis en flv les fichiers sont lisibles?
je pense qu'il doit falloir renommer a un moment ou alors rajouter une option dans ffmpeg

Hors ligne

#3 Le 08/03/2008, à 20:53

paul2nice

Re : [resolu] script mencoder / ffmpeg

oui effectivement ça me génère un TN-image.MOV.flv.jpg, va falloir que je renommes tout ça par la suite mais je m'y met petit à petit, si tu as des propositions elles sont les bienvenues !

Avec la commande

for i in *.flv;
do
ffmpeg -y -i $i -vcodec mjpeg -vframes 10 -an -f rawvideo TN-$i.jpg;
done

ça passe
seulement j'execute le script dans le répertoire ou il y a les videos, j'aimerais l'appliquer pour les répertoires et sous répertoires.

Sinon oui, mes videos fonctionnent parfaitement.

Dernière modification par paul2nice (Le 08/03/2008, à 20:54)

Hors ligne

#4 Le 08/03/2008, à 20:56

jean bono

Re : [resolu] script mencoder / ffmpeg

je crois que certaines commandes prennent l'argument -R comme recursif pour gerer les sous dossier
ca pourrait marcher

Hors ligne

#5 Le 08/03/2008, à 21:30

paul2nice

Re : [resolu] script mencoder / ffmpeg

J'ai essayé avec un ls -R mais je n'arrive pas à le coupler avec le *.jpg

Autrement, je ne comprends pas pourquoi la commande

for i in `find . -iname '*.flv'`;
do
ffmpeg -y -i $i -vcodec mjpeg -vframes 10 -an -f rawvideo TN-$i.jpg;
done

fonctionne partiellement car mes fichiers jpg sont parcourus mais pas traités...

Hors ligne

#6 Le 08/03/2008, à 22:42

paul2nice

Re : [resolu] script mencoder / ffmpeg

J'ai suivi tes conseils, j'ai renommé mes fichiers pour avoir une seule extension claire et net.
Malheureusement ça n'y fait rien... sad

Dernière modification par paul2nice (Le 08/03/2008, à 22:43)

Hors ligne

#7 Le 08/03/2008, à 22:57

paul2nice

Re : [resolu] script mencoder / ffmpeg

Bon bah j'ai trouvé là ou ça clochait...

la commande suivante

for i in `find . -iname '*.flv'`;
do
ffmpeg -y -i $i -vcodec mjpeg -vframes 10 -an -f rawvideo TN-$i.jpg;
done

ne fonctionnait pas ça me disait
Could not open 'TN-./crossbretagne/100_4067.MOV.flv.jpg'

En enlevant le préfixe TN- dans mon code finalement c'est passé.
Du coup je me tape un renamage pour réintégrer le préfixe par la suite.

Hors ligne

#8 Le 09/03/2008, à 00:00

jean bono

Re : [resolu] script mencoder / ffmpeg

bien joue

Hors ligne

#9 Le 09/03/2008, à 01:28

paul2nice

Re : [resolu] script mencoder / ffmpeg

Bon bah au final je reste bloqué pour renommer les fichiers .jpg en leur mettant un préfixe TN- pour les intégrer dans ma gallerie.

# Ajout d'un suffixe sur les images jpg
for i in `find . -iname '*.jpg'`;
do
mv $i TN-$i;
done

visiblement c'est mon find .-iname qui pose problème.
Je galère grave dans mon script pour parcourir mes fichiers.

Hors ligne

#10 Le 10/03/2008, à 01:43

Saito

Re : [resolu] script mencoder / ffmpeg

Bonsoir,

ton problème vient du fait que $i contient le chemin complet vers les fichiers comme le montre ton erreur
Could not open 'TN-./crossbretagne/100_4067.MOV.flv.jpg'
                               ^                     $i                            ^

Pour ne pas avoir à renommer par la suite commme tu le fais, tu peux modifier

for i in `find . -iname '*.flv'`;
do
ffmpeg -y -i $i -vcodec mjpeg -vframes 10 -an -f rawvideo TN-$i.jpg;
done

de cette façon:

for i in `find . -iname '*.flv'`;
do
# on vérifie que $i contient au moins un slash, pour récupérer le chemin du fichier
[[ $i == */* ]] && chemin=${i%/*}/ || chemin=
# on récupère le nom du fichier
nom=${i##*/}
# on retire l'extension de $nom
ffmpeg -y -i $i -vcodec mjpeg -vframes 10 -an -f rawvideo ${chemin}TN-${nom%.*}.jpg;
done

Ainsi, les fichiers jpg seront créés dans le même répertoire que le fichier flv, et seront nommés de la même façon ( machin.jpg pour machin.flv).
Tu peux, pour vérifier, placer la commande echo devant ffmpeg ( echo ffmpeg -y ...) pour voir ce que donne la ligne et si cela te convient.

Dernière modification par Saito (Le 10/03/2008, à 01:50)


Aku-Soku-Zan_Shinsengumi

Hors ligne

#11 Le 10/03/2008, à 13:03

paul2nice

Re : [resolu] script mencoder / ffmpeg

merci pour ton aide je test ce soir dés que je rentre ;-)

Hors ligne

#12 Le 10/03/2008, à 13:13

Sciensous

Re : [resolu] script mencoder / ffmpeg

oui le pb vient que le nom est complet (avec le . du repertoire courant)

pour faire simple, tu peux récuperer que le nm du fichier par basename <nom du fichier>

#13 Le 11/03/2008, à 19:54

paul2nice

Re : [resolu] script mencoder / ffmpeg

Nickel ça fonctionne parfaitement,

par contre,

Sciensous a écrit :

tu peux récuperer que le nm du fichier par basename <nom du fichier>

Je n'ai pas compris l'histoire de basename ??

Merci à vous !

Hors ligne

#14 Le 12/03/2008, à 00:32

Saito

Re : [resolu] script mencoder / ffmpeg

En fait tu peux utiliser

nom=`basename $i`

en lieu et place de l'expression:

nom=${i##*/}

que j'utilise plus haut pour récupérer uniquement le nom de fichier dans une chaîne de caractères.
La diffèrence étant que tu utilises un programme externe, qui n'est pas forcément toujours présent plutôt qu'un mécanisme propre au shell ( l'expansion de paramètre dans notre cas).

Sinon n'oublie de regarder les pages de manuel, man basename et man bash qui est trés riche.

Dernière modification par Saito (Le 12/03/2008, à 00:40)


Aku-Soku-Zan_Shinsengumi

Hors ligne

#15 Le 13/03/2008, à 23:22

paul2nice

Re : [resolu] script mencoder / ffmpeg

merci pour les infos !

Hors ligne