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 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 big_smile

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 wink )

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 wink

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 wink

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 wink

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.

leold a écrit :

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 big_smile
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