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 04/05/2010, à 12:55

cracolinux

Utiliser cpulimit dans un script [Résolu]

Bonjour les gens,

#!/bin/bash
# script wma -> mp3

IFS=$'\t\n'

cd $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

for i in *.wma
 do ffmpeg -i "$i" -ab 192k "${i%wma}mp3"
done

Voici mon script nautilus pour convertir du wma en mp3

Je cherche à inclure une limitation à ffmpeg afin de ne pas prendre 100% du cpu.

J'ai essayé ça avec cpulimit :

#!/bin/bash
# script wma -> mp3

cpulimit -e ffmpeg -l 20

IFS=$'\t\n'

cd $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

for i in *.wma
 do ffmpeg -i "$i" -ab 192k "${i%wma}mp3"
done

mais dans ce cas, le script ne se lance pas...sans que je sache pourquoi

A vot' bon coeur msieur dames...

Dernière modification par cracolinux (Le 05/05/2010, à 12:09)


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#2 Le 04/05/2010, à 14:00

johndo

Re : Utiliser cpulimit dans un script [Résolu]

Bonjour,

Il me semble que cpulimit n'agit que sur les process actuellement en cours d'exécution.
Essaie donc ceci :

#!/bin/bash
# script wma -> mp3

IFS=$'\t\n'

cd $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

for i in *.wma
 do 
ffmpeg -i "$i" -ab 192k "${i%wma}mp3" </dev/null &
cpulimit -z -e ffmpeg -l 20
done

EDIT :
Modification du script et ajout de l'option -z suite à la lecture de ceci

-z, --lazy
              exit if there is no suitable target process, or if it dies

Cela signifie donc que cpulimit, sans l'option -z, ne rend pas la main s'il ne trouve pas le processus en question. En d'autre terme, j'ai "mal pensé" big_smile et qu'il est possible de l'utiliser pour des "exe" qui ne sont pas encore en cours d'exécution.
Cela explique aussi pourquoi tu avais l'impression que ton script ne se lance pas.
En rajoutant l'option -z, cela permet donc de quitter cpulimit lorsque ffmpeg aura fini de traiter le fichier "i"

Dernière modification par johndo (Le 04/05/2010, à 14:23)

Hors ligne

#3 Le 04/05/2010, à 15:45

cracolinux

Re : Utiliser cpulimit dans un script [Résolu]

Formidable, je te remercie!

Une fois de plus, je correspond bien à cette option --lazy car je n'ai pas lu la man page en entier...:mad:

ffmpeg -i "$i" -ab 192k "${i%wma}mp3" </dev/null &

Est-ce que tu peux me dire à quoi sert cette partie du code (en gras)?
Est-ce que ça sert à rendre la main à la suite du script (donc vers cpulimit).
Au début je voulais essayer un truc du genre mais je me suis dis que bash attendrait à chaque fois la fin du traitement par ffmpeg avant de demander un cpulimit...et que donc il ne le trouverais jamais.

Merci de ton aide smile


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#4 Le 04/05/2010, à 17:49

Totor

Re : Utiliser cpulimit dans un script [Résolu]

Bonsoir,

& : c'est pour mettre l'exécution de la commande en fond de tache et cela permet au script de passer à la ligne suivante
</dev/null : c'est pour remplacer la saisie clavier par "rien" car le fait de mettre en fond de tache une application qui scrute l'interruption clavier l'interrompt. Et comme ffmpeg scrute l'interruption clavier, il aurait été arrété si johndo n'avait pas précisé cette commande.


-- Lucid Lynx --

Hors ligne

#5 Le 04/05/2010, à 18:07

cracolinux

Re : Utiliser cpulimit dans un script [Résolu]

Whah!! eh ben merci de tes précieuses lumières Totor!
wink

Et merci encore à Johndo (à partir du moment ou tu me coupe pas la tête...) big_smile


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#6 Le 04/05/2010, à 18:31

sputnick

Re : Utiliser cpulimit dans un script [Résolu]

A noter que Totor voulait dire "tache de fond et non "fond de tache" qui est plutôt destiné à la mère Denis et sa lessive... wink


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#7 Le 04/05/2010, à 19:10

Totor

Re : Utiliser cpulimit dans un script [Résolu]

@sputnick : yikes merci pour la correction
lol


-- Lucid Lynx --

Hors ligne