Pages : 1
#1 Le 05/07/2008, à 09:52
- leold
petit bout de scripte
bonjour
j'aurais besoin d'un scripte pour transformer des avi en mpg
j'ai fouiller sur le net et j'ai reussi a bricoler quelque chose
#!/bin/bash
IFS=$(echo -e "\n\r\t")
which ffmpeg 1>/dev/null || (echo "Vous devez préalablement installer ffmpeg." && exit 1)
echo "=== Conversion mov2avi ==="
echo ""
echo "Traitement de $1"
AVIFILE=$(echo $(basename $( echo $1 | tr "[:upper:]" "[:lower:]") .avi).mpg)
ffmpeg -i $1 -b 5000k $AVIFILE
le code marche mais le pbl est dans la variable SAVEFILE elle change bien d'extension mais le chemin n'ai pas conserver
comme j'ai fait ca en cherchant sur le net je suis uncapable de savoir ce qui va spas car je ne comprends pas ce que je tape
pourriez vous me commenter mes lignes
et au passage me dire ce qui surprime le chemin du fichier
merci
#2 Le 05/07/2008, à 12:11
- redisded
Re : petit bout de scripte
salut,
je pense que tu devrais essayer de remplacer la ligne :
AVIFILE=$(echo $(basename $( echo $1 | tr "[:upper:]" "[:lower:]") .avi).mpg)
(je laisse le soin de la commenter à quelqu'un de plus calé pour éviter de dire un bétise )
par :
AVIFILE=$(echo "$1" | tr "[:upper:]" "[:lower:]" | sed 's/\.avi$/.mpg/g')
que l'on pourrait détailler comme ca :
echo $1 : afficher le nom du fichier d'origine.
tr "[:upper:]" "[:lower:]" : remplacer les majuscules par des minuscules.
sed 's/\.avi$/.mpg/g') : remplacer la derniere occurence de ".avi" par .mpg.
en éspérant que cela puisse te dépanner
EDIT : Le fait que ton chemin soit supprimé dans ta commande d'origine vient je pense du "basename" dont le but est, justement, d'extraire le nom d'un fichier de son chemin complet.
Dernière modification par redisded (Le 05/07/2008, à 12:13)
Hors ligne
#3 Le 05/07/2008, à 13:33
- leold
Re : petit bout de scripte
merci de ta renonce ca marche au poil
et pour les commentaire il me vont tres bien
j'ai enfin put comprendre ce que j'écrivais
merci encore
#4 Le 05/07/2008, à 13:39
- redisded
Re : petit bout de scripte
de rien
Hors ligne
#5 Le 05/07/2008, à 13:40
- leold
Re : petit bout de scripte
oups j'ai parler trop vite
bizarrement quand je le lance dans un terminal tout vas bien
par contre le but etait de pouvoir convertir le fichier grace au logiciel nautilus action qui permet de configurer le menu contextuelle de nautilus
donc pour l'instant j'avais reussi a le faire fonctionner mais la je n'ai plus rien qui ce passe et comme tout est en masquer je n'ai meme pas d'erreur
#6 Le 05/07/2008, à 13:52
- redisded
Re : petit bout de scripte
huuum est-ce que le fichier que tu essai d'encoder ne contiendrais pas un espace? j'ai créé quelques scripts utilisant les nautilus actions mais je n'ai jamais réussi à les faire fonctionner correctement avec les fichiers contenant des espaces dans leur nom (voir dans le chemin complet).
Sinon, si tu pouvais poster ton script en entier, il serait plus simple de voir d'ou vient ton pb.
Enfin, éventuellement, tu peut aller faire un tour du coté de ma signature, tu y trouvera un script nommé easy-converter, qui correspondra peut etre à tes attentes
Dernière modification par redisded (Le 05/07/2008, à 13:54)
Hors ligne
#7 Le 05/07/2008, à 14:09
- leold
Re : petit bout de scripte
voici mon scripte complet
#!/bin/bash
IFS=$(echo -e "\n\r\t")
which ffmpeg 1>/dev/null || (echo "Vous devez préalablement installer ffmpeg." && exit 1)
echo "=== Conversion mov2avi ==="
echo ""
echo "Traitement de $1"
#AVIFILE=$(echo $(basename $( echo $1 | tr "[:upper:]" "[:lower:]") .avi).mpg)
#AVIFILE= &(basename $( echo $1))
AVIFILE=$(echo "$1" | tr "[:upper:]" "[:lower:]" | sed 's/\.avi$/.mpg/g')
ffmpeg -i $1 -b 5000k $AVIFILE
le nom du fichier est : ffmpeg.sh
dans nautilus action je fait bien référence au bon fichier avec comme variable %M
a priori ton scripte ce lance bien mais comme il me demande mon mot de passe ainsi que de créer un profile je l'ai pas teste jusqu'au bout car je ne sais pas ce que je fait et je ne pourrais pas revenir en arrière docn j'ai fait annuler pour tout
#8 Le 05/07/2008, à 14:21
- leold
Re : petit bout de scripte
je me suis en peut amuser en modifiant la commande dans nautilus action par : gnome-terminal -x /home/golden2/scripte/ffmpeg.sh
et le scripte a l'aire de marcher aléatoirement il coupe un peut n'importe quand mais voila ce que j'ai put avoir quand il termine
=== Conversion mov2avi ===
Traitement de /media/util/para/pict0004.avi
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-libmp3lame --enable-libfaadbin --enable-libfaad --enable-libfaac --enable-xvid --enable-x264 --enable-liba52 --enable-amr_nb --enable-amr_wb --enable-shared --prefix=/usr
libavutil version: 1d.49.3.0
libavcodec version: 1d.51.38.0
libavformat version: 1d.51.10.0
built on Dec 20 2007 21:22:28, gcc: 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
/m: I/O error occured
Usually that means that input file is truncated and/or corrupted.
#9 Le 05/07/2008, à 19:17
- redisded
Re : petit bout de scripte
Je n'ai pas trop le temp de regarder ton script pour le moment, je m'y pencherais plus tard.
a priori ton scripte ce lance bien mais comme il me demande mon mot de passe ainsi que de créer un profile je l'ai pas teste jusqu'au bout car je ne sais pas ce que je fait et je ne pourrais pas revenir en arrière docn j'ai fait annuler pour tout
Pour info, le script te demande ton script uniquement pour l'installation des dépendances, si tu préfere tu peu installer toi meme les dépendances au préalable, le script ne te demandera ainsi pas ton mot de passe.
Pour le profil de configuration, il s'agit juste de choisir les parametres pour le script (ajout ou non de sous-titres, codec de destination, suppression du fichier d'origine) afin que tu n'est pas à les renseigner à chaque fois (tu peu bien sur modifier la config par la suite).
Hors ligne
#10 Le 05/07/2008, à 19:30
- leold
Re : petit bout de scripte
merci de ta réponse
tu est deja bien aimable de répondre donc je comprend que le WE tu le passe a autre chose qu'a des pbl informatique
par contre il me semble que le pbl doit être plus profond que ca car je me suis amuser a changer le scripte d'origine :
#!/bin/bash
IFS=$(echo -e "\n\r\t")
which ffmpeg 1>/dev/null || (echo "Vous devez préalablement installer ffmpeg." && exit 1)
echo "=== Conversion mov2avi ==="
echo ""
echo "Traitement de $1"
#AVIFILE=$(echo $(basename $( echo $1 | tr "[:upper:]" "[:lower:]") .avi).mpg)
#AVIFILE= &(basename $( echo $1))
AVIFILE=$(echo "$1" | tr "[:upper:]" "[:lower:]" | sed 's/\.avi$/.mpg/g')
echo "variable $AVIFILE"
ffmpeg -i $1 -b 5000k $AVIFILE
pour savoir qu'elle sont les variable envoyer a mon bout de scripte
et la reponce est :
=== Conversion mov2avi ===
Traitement de /media/util/para/pict0004.avi
variable /media/util/para/pict0004.mpg
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-libmp3lame --enable-libfaadbin --enable-libfaad --enable-libfaac --enable-xvid --enable-x264 --enable-liba52 --enable-amr_nb --enable-amr_wb --enable-shared --prefix=/usr
libavutil version: 1d.49.3.0
libavcodec version: 1d.51.38.0
libavformat version: 1d.51.10.0
built on Dec 20 2007 21:22:28, gcc: 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
/m: I/O error occured
Usually that means that input file is truncated and/or corrupted.
on vois bien que $1 et AVIFILE sont bien conforme
donc il y a un pbl ailleurs
mais la ca dépasse mes compétence
#11 Le 05/07/2008, à 19:32
- leold
Re : petit bout de scripte
ha pour info je suis sous ubuntu 64
Pages : 1