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.

#26 Le 23/06/2021, à 21:03

Watael

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

avec bash, le grep est facultatif :

 if [[ $(file...) =~ video ]]; ...

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#27 Le 24/06/2021, à 08:39

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Watael a écrit :

avec bash, le grep est facultatif :

 if [[ $(file...) =~ video ]]; ...

Bonjour.
Merci, peut-être mais ta commande avec des ... ne me sert à rien, car je ne sais pas substituer les ... (trop de possibilités) et les doubles-crochets ont tendance à planter chez moi.

Quoi que ce matin c'est tout l'ordinateur sous Debian 10 qui plante. Et le serveur NAS sous Debian 10, qui héberge le script, commence à planter aussi :

Voici le problème :

					echoBlue "débogage : heure=$heure"
					if ((heure > debut_heure_turbo && heure < debut_heure_calme))
					then 

qui engendre cette erreur :

Débogage : heure=09
./vp9.bash: ligne 87: ((: 09 : valeur trop grande pour la base (le symbole erroné est « 09 »)
Heure calme : compression avec 2 threads-coeurs-CPU.

J'avais renommé le nom de mon script vp9.sh en vp9.bash, j'essaie de faire l'inverse, mais c'est bloqué dans mon ordinateur, en attente…

J'ai abimé ma Debian 10 coté ordinateur qui plante de partout, surtout Firefox, aucune erreur mémoire ni aucune erreur disque. Il faut que je réinstalle tout, c'est inguérissable.

#dmesg
…
[160295.869286] Web Content[11537]: segfault at 0 ip 00007f499d423d48 sp 00007fffedd22f30 error 4 in libxul.so[7f499b4a6000+4ac5000]
[160295.869296] Code: 08 fe 41 54 55 53 48 83 ec 30 48 8b 2d 19 c3 3b 05 64 48 8b 04 25 28 00 00 00 48 89 44 24 28 31 c0 48 85 ed 0f 84 d8 00 00 00 <48> 8b 45 00 48 8b 57 08 4c 8b 60 28 0f b6 07 48 89 54 24 18 48 8b
[161909.531891] Web Content[12095]: segfault at 0 ip 00007f8fc6d56f0b sp 00007fff936fb340 error 4 in libxul.so[7f8fc4a5f000+4ac5000]
[161909.531901] Code: 00 88 45 28 48 89 55 38 84 c0 74 07 41 8b 45 04 89 45 2c 41 c6 45 00 00 48 89 ef e8 ef 37 e8 fd 49 8b 7c 24 18 48 89 ee 31 d2 <48> 8b 07 48 8b 40 28 48 83 c4 08 5b 5d 41 5c 41 5d ff e0 66 90 41
[172901.921539] firefox-esr[17980]: segfault at 0 ip 00005593be4d4773 sp 00007ffffd8c3380 error 6 in firefox-esr[5593be4d3000+6f000]
[172901.921548] Code: 08 00 48 8d 0d 86 35 07 00 48 89 08 c7 04 25 00 00 00 00 00 00 00 00 0f 0b 48 8d 05 b7 96 08 00 48 8d 35 90 35 07 00 48 89 30 <c7> 04 25 00 00 00 00 00 00 00 00 0f 0b c7 04 25 00 00 00 00 00 00
[173236.083288] traps: thunderbird[18178] trap int3 ip:7fd7d032bd35 sp:7fff0f8576a0 error:0 in libglib-2.0.so.0.5800.3[7fd7d02f3000+7e000]
[201311.807710] traps: gedit[29675] trap int3 ip:7fba054c4d35 sp:7ffda6d19d60 error:0 in libglib-2.0.so.0.5800.3[7fba0548c000+7e000]
[201319.865600] traps: gedit[29680] trap int3 ip:7f87a8088d35 sp:7fff5dc295c0 error:0 in libglib-2.0.so.0.5800.3[7f87a8050000+7e000]
[204396.530137] Web Content[31269]: segfault at 0 ip 00007f3022403d48 sp 00007fff7e0e1060 error 4 in libxul.so[7f3020486000+4ac5000]
[204396.530146] Code: 08 fe 41 54 55 53 48 83 ec 30 48 8b 2d 19 c3 3b 05 64 48 8b 04 25 28 00 00 00 48 89 44 24 28 31 c0 48 85 ed 0f 84 d8 00 00 00 <48> 8b 45 00 48 8b 57 08 4c 8b 60 28 0f b6 07 48 89 54 24 18 48 8b
[204404.176209] Web Content[31310]: segfault at 0 ip 00007fc25254cd48 sp 00007ffe99409b20 error 4 in libxul.so[7fc2505cf000+4ac5000]
[204404.176233] Code: 08 fe 41 54 55 53 48 83 ec 30 48 8b 2d 19 c3 3b 05 64 48 8b 04 25 28 00 00 00 48 89 44 24 28 31 c0 48 85 ed 0f 84 d8 00 00 00 <48> 8b 45 00 48 8b 57 08 4c 8b 60 28 0f b6 07 48 89 54 24 18 48 8b

Dernière modification par Compte supprimé (Le 24/06/2021, à 08:43)

#28 Le 24/06/2021, à 10:00

MicP

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Bonjour

L_d_v_c@ a écrit :

…qui engendre cette erreur :

Débogage : heure=09
./vp9.bash: ligne 87: ((: 09 : valeur trop grande pour la base (le symbole erroné est « 09 »)
Heure calme : compression avec 2 threads-coeurs-CPU.

À la ligne n°84 du script, remplacer :

heure=$(date +%H)

par :

heure=$(date '+%-H')

Dernière modification par MicP (Le 24/06/2021, à 10:18)

Hors ligne

#29 Le 24/06/2021, à 10:16

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

MicP a écrit :

Bonjour

L_d_v_c@ a écrit :

…qui engendre cette erreur :

Débogage : heure=09
./vp9.bash: ligne 87: ((: 09 : valeur trop grande pour la base (le symbole erroné est « 09 »)
Heure calme : compression avec 2 threads-coeurs-CPU.

Remplacer :

heure=$(date +%H)

par :

heure=$(date '+%-H')

Merci MicP.
J'essayerai ta solution dès que j'aurai fini mon installation et démarré la configuration de mon ordinateur.
En tout cas pour l'instant, je trouve que BASH na vraiment aucune logique embarquée.
Des dollars, des doubles parenthèses dollars de simple parenthèse...
Bon, je ne suis pas encore arrivé à l'explication de tout ce merdier dans ma formation open classroom...

Dernière modification par Compte supprimé (Le 24/06/2021, à 10:19)

#30 Le 24/06/2021, à 10:23

MicP

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Tu verras : Petit à petit, on finit par se rendre compte
que tout ça est très logique et très bien fait.

Hors ligne

#31 Le 24/06/2021, à 11:37

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

MicP a écrit :

Tu verras : Petit à petit, on finit par se rendre compte
que tout ça est très logique et très bien fait.

Ton message me rassure. Si tu as trouvé une logique à tout ça, je vais peut-être finir par la capter...
Je finis de réinstaller mon ordinateur et de faire les 3283 installations- mises à jour de paquets, et je me repencherai sur ce problème.

Mon script devrait me faire gagner 2 à 3 téra-octets de volume disque sur le NAS.

Je suis content, car j'ai réussi tout seul la vérification de durées des vidéos avec une différence de 100ms maximum avant de simuler l'effacement de la vidéo la plus grosse. Mais je n'arrête pas mon auto-formation BASH sur OpenClassroom pour autant.

Malheureusement mon décodeur TNT HD ne pourra pas lire le WebM, ni le H265. C'est vrai que j'adore les images 24 bits non compressées en full HD, mais, pour une vidéo, j'accepte une compression algorithmique tant qu'elle reste imperceptible à l'image.

#32 Le 24/06/2021, à 13:05

MicP

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

… Mon script devrait me faire gagner 2 à 3 téra-octets de volume disque sur le NAS.

Je suis content, car j'ai réussi tout seul la vérification de durées des vidéos avec une différence de 100ms maximum avant de simuler l'effacement de la vidéo la plus grosse.

Bravo ! smile

Il y a quelques temps, tu n'aurais sans doute pas cru pouvoir un jour y arriver tout seul,
et/ou même pas imaginé que ce soit possible de le faire avec un script bash

Dernière modification par MicP (Le 24/06/2021, à 13:06)

Hors ligne

#33 Le 24/06/2021, à 14:20

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

MicP a écrit :

… Mon script devrait me faire gagner 2 à 3 téra-octets de volume disque sur le NAS.

Je suis content, car j'ai réussi tout seul la vérification de durées des vidéos avec une différence de 100ms maximum avant de simuler l'effacement de la vidéo la plus grosse.

Bravo ! smile

Il y a quelques temps, tu n'aurais sans doute pas cru pouvoir un jour y arriver tout seul,
et/ou même pas imaginé que ce soit possible de le faire avec un script bash

Oh si quand même, mais je n'ai jamais appris BASH.
Autrefois, il y a 27 ans, je faisais mes scripts sous AmigaShell et ARexx ! (ça paraissait plus simple et bien plus performant que BASH, surtout l'interconnexion des scripts de programmation ARexx d'un programme à l'autre…) big_smile  (Par exemple la détection d'une faute dans l'éditeur de texte, pouvait mettre la musique en pause, prononcer le message d'erreur en synthèse vocale grâce à la commande SAY, puis reprendre la musique en lecture, grâce au scripts ARexx par exemple… (1993-1994). (ordinateur Amiga COMMODORE = unix'like).

Ça fait un petit moment que je n'avais pas fait de script, mais toute la structure et l’algorithmique est restée… wink En algorithmique au lycée : 20/20 et à l'université en examens partiels de logique combinatoire : 20/20…

C'est juste que BASH me perd avec ces ((…)) ou ses [[…]] ou encore $(date '+%-H')… hmm
Je n'ai pas encore compris pourquoi pas de parenthèse, ou pourquoi les simples parenthèses dans les commandes, et que parfois il faut des doubles-parenthèses… mais je dois continuer l'autoformation OpenclassRoom… big_smile

Dernière modification par Compte supprimé (Le 24/06/2021, à 14:24)

#34 Le 24/06/2021, à 15:49

grandtoubab

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Quelques sites sur bash

https://abs.traduc.org/abs-5.3-fr/index.html
https://www.tuteurs.ens.fr/unix/shell/script.html
en anglais plus récent
https://tldp.org/LDP/abs/html/index.html

Il y a quelques finesses selon le shell
Sous Debian c'est dash

ls -alrt /bin/sh
lrwxrwxrwx 1 root root 4 10 déc.   2020 /bin/sh -> dash

Dernière modification par grandtoubab (Le 24/06/2021, à 15:56)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#35 Le 24/06/2021, à 17:31

Watael

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

pourquoi les simples parenthèses dans les commandes, et que parfois il faut des doubles-parenthèses

ce ne sont pas les mêmes commandes :
- le crochet simple ([) est un alias interne vers la commande test. cf. man bash /test, ou help [
- les crochets doubles ([[) introduit des capacités de test augmentées cf. man bash /[[, ou help [[
- la parenthèse simple (() exécute les commandes dans un sous-shell (un processus enfant). cf. man bash / commandes composées
- la parenthèse simple précédée d'un dollar ($() permet d'utiliser la sortie les commandes. cf. man bash /substitution de commandes
- les parenthèses doubles introduise un contexte arithmétique. cf. man bash /Développement arithmétique, et /Évaluation arithmétique

en gros : man bash.  lol


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#36 Le 25/06/2021, à 17:10

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Watael a écrit :

pourquoi les simples parenthèses dans les commandes, et que parfois il faut des doubles-parenthèses

ce ne sont pas les mêmes commandes :
- le crochet simple ([) est un alias interne vers la commande test. cf. man bash /test, ou help [
- les crochets doubles ([[) introduit des capacités de test augmentées cf. man bash /[[, ou help [[
- la parenthèse simple (() exécute les commandes dans un sous-shell (un processus enfant). cf. man bash / commandes composées
- la parenthèse simple précédée d'un dollar ($() permet d'utiliser la sortie les commandes. cf. man bash /substitution de commandes
- les parenthèses doubles introduisent un contexte arithmétique. cf. man bash /Développement arithmétique, et /Évaluation arithmétique

en gros : man bash.  lol

Merci ! Hyper important ces crochets et parenthèses…
J'ai trouvé man bash, en français sur internet (il est en français dans l'ordinateur mais je préfère lire au lit qu'au fauteuil roulant devant l'ordinateur…

Et je dois d’abord finir mon autoformation BASH OpenclassRoom.
smile

#37 Le 25/06/2021, à 17:13

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Voilà où en est le script, il ne doit pas trop y avoir d'erreur…

#!/bin/bash
# vp9.bash 
# convertir vidéos en vp9
# LDVC@
# 202106210118 202106221624 202106232147 202106251226
# débogué par kamaris
# 202106220027

debut_heure_turbo=07
threads_heure_turbo=3
debut_heure_calme=19
threads_heure_calme=2
suppression_automatique=false # simulation suppression=$false ; suppression automatique=$true ; 

#un peu de couleurs dans la console.
RED='\033[0;31m'
BLUE='\033[0;34m'
GREEN='\033[0;32m'
NC='\033[0m'
echoBlue () {
	echo -e "${BLUE}$*${NC}"
}
echoGreen () {
	echo -e "${GREEN}$*${NC}"
}
echoRed () {
	echo -e "${RED}$*${NC}"
}

duree_video () {
	echo $(mediainfo --Inform="General;%Duration%" "$1")
}

#dossier=$(zenity --title="Choisir un dossier de vidéos à compresser." --file-selection --file-selection --multiple --filename "${PWD}/")
#Si on clique sur le bouton Annuler
#if [ "$?" -eq 1 ]; then
    #On quitte le script
#    exit
#fi
#Sinon on continue
#echo "Recompression des vidéos du répertoire $dossier"


comparaison_nettoyage () {
	fichier="$1"
	#echo "DÉBUG : $fichier"
	taille1=$(stat -c%s "$fichier")
	taille2=$(stat -c%s "$fichier.webm")
	#echoGreen "TAILLES : $taille1 et $taille2" #débogage.
	duree1=$(duree_video "$fichier")
	duree2=$(duree_video "$fichier.webm")
	#echoGreen "DURÉES : $duree1 et $duree2" #débogage.
	if (( (duree1-duree2)>100 || (duree2-duree1)>100 ))	#(( (${((duree1-duree2))#-})>100  ))  #si la valeur absolue de la différence fait plus de 100ms.
	then	#Les durées sont différentes
		echoRed "LES DURÉES SONT DIFFÉRENTES : originale=$duree1 et conversion=$duree2."
		if [[ $suppression_automatique ]]
		then
			echoBlue "Effacement de $fichier.webm"
			rm -f "$fichier.webm"
		else
			echoRed "MISE DE CÔTÉ du $fichier.webm"
			mv "$fichier.webm" "$fichier.webm-à_effacer"
		fi
	else	#Les durées sont pratiquement les mêmes.
		#echoGreen "Les durées sont pratiquement les mêmes à moins de 100 ms."
		if (( taille1 > taille2 ))
		then	#le fichier vidéo original est plus volumineux que le fichier recompressé VP9
			echoBlue "Le fichier vidéo original est plus volumineux que le fichier recompressé VP9."
			if [[ $suppression_automatique ]]
			then
				echoBlue "Effacement de $fichier"
				rm -f "$fichier"
			else
				echoRed "SIMULATION SUPPRESSION de $fichier"
			fi
		else	#le fichier vidéo original est moins volumineux que le fichier recompressé VP9
			echoBlue "Le fichier vidéo original est moins volumineux que le fichier recompressé VP9."
			if [[ $suppression_automatique ]]
			then
				echoRed "Effacement de $fichier.webm"
				rm -f "$fichier.webm"
				echoBlue "Renommage de $fichier en $fichier+"	#on protège le fichier de ce script de conversion en ajoutant un +
				# Le + à la fin du ficher ne protège pas un fichier en temps normal, mais c'est une façon de nommer les fichiers pour les mettre en valeur
				# et signaler de ne pas les recompresser.
				mv "$fichier" "$fichier+"
			else
				echoRed "SIMULATION SUPPRESSION de $fichier.webm"
				echoBlue "SIMULATION RENNOMAGE de $fichier en $fichier+"
			fi
		fi
	fi
}

#routine principale 
for fichier in *.*
do
	if [ "${fichier: -1}" != '+' ] && file -b --mime-type "$fichier" | grep -q video
	then	
		echoBlue "Traitement du fichier : $fichier"
		#date
		echo "le fichier vidéo n'est pas protégé par un + à la fin du nom de fichier dans l'extension."
		# Le + à la fin du ficher ne protège pas un fichier en temps normal, mais c'est une façon de nommer les fichiers pour les mettre en valeur
		# et signaler de ne pas les recompresser.
		if [ "$(file -b "$fichier")" != "WebM" ]
		then	# $fichier n'est pas WebM.
			#echo "$fichier n'est pas WebM."
			if [ "$(file -b "$fichier.webm")" = "WebM" ]
			then	#Le fichier $fichier.webm existe.
				echoGreen "Le fichier $fichier.webm existe."
				#ls -l "$fichier"
				#ls -l "$fichier.webm"
			else 
				if file -b --mime-type "$fichier" | grep -q video
				then 	#création de la conversion du fichier vidéo en WebM.
					echoBlue "Conversion $fichier en $fichier.webm"
					heure=$(date '+%H')
					#echoBlue "Débogage : heure=$heure"
					echo "Durée de la vidéo à recompresser : " $(mediainfo --Inform="General;%Duration/String3%" "$fichier")
					if ((heure>debut_heure_turbo && heure<debut_heure_calme))
					then 
						echoGreen "Heure turbo : compression avec $threads_heure_turbo threads-coeurs-CPU."
						ffmpeg -i "$fichier" -c:v:0 libvpx-vp9 -filter_threads $threads_heure_turbo -crf 35 -b:v 1000k -tile-columns 4 -frame-parallel 1 -quality best -auto-alt-ref 1 -lag-in-frames 25  -c:a libopus -b:a 16k -strict -2 "$fichier.webm" -hide_banner -loglevel panic -stats;
					else
						echoGreen "Heure calme : compression avec $threads_heure_calme threads-coeurs-CPU."
						ffmpeg -i "$fichier" -c:v:0 libvpx-vp9 -filter_threads $threads_heure_calme -crf 35 -b:v 1000k -tile-columns 4 -frame-parallel 1 -quality best -auto-alt-ref 1 -lag-in-frames 25  -c:a libopus -b:a 16k -strict -2 "$fichier.webm" -hide_banner -loglevel panic -stats;
					fi
				else	# $fichier n'est pas vidéo
					echoRed "$fichier n'est pas un ficher vidéo."
				fi
			fi
			comparaison_nettoyage "$fichier"
		fi
		echo
	fi
done
echoGreen 'Fini.'
#sleep 180
exit

Il parait que des gens ne supportent pas les interfaces graphiques, pour la suite je vais chercher un moyen simple de savoir si le script est lancé en ligne de commandes, ou graphiquement…

#38 Le 25/06/2021, à 17:54

Watael

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

duree_video () {
    mediainfo --Inform="General;%Duration%" "$1"
}

les erreurs doivent être affichées sur la sortie d'erreur (>&2)

else if -> elif

                    if ((heure>debut_heure_turbo && heure<debut_heure_calme))
                    then 
                        echoGreen "Heure turbo : compression avec $threads_heure_turbo threads-coeurs-CPU."
                        horaire=$threads_heure_turbo
                    else
                        echoGreen "Heure calme : compression avec $threads_heure_calme threads-coeurs-CPU."
                        horaire=$threads_heure_clame
                    fi
                    ffmpeg \
                        -i "$fichier" \
                        -c:v:0 libvpx-vp9 \
                        -filter_threads $horaire \
                        -crf 35 \
                        -b:v 1000k \
                        -tile-columns 4 \
                        -frame-parallel 1 \
                        -quality best \
                        -auto-alt-ref 1 \
                        -lag-in-frames 25  \
                        -c:a libopus \
                        -b:a 16k \
                        -strict -2 "$fichier.webm" \
                        -hide_banner \
                        -loglevel panic \
                        -stats;
                else	# $fichier n'est pas vidéo

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#39 Le 25/06/2021, à 18:41

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Bonsoir Watael.
Je ne comprends pas pourquoi tu m'écris ça :

Watael a écrit :
duree_video () {
    mediainfo --Inform="General;%Duration%" "$1"
}

les erreurs doivent être affichées sur la sortie d'erreur (>&2)

Par quoi me conseilles-tu de remplacer la fonction suivante, s'il te plaît ?

duree_video () {
    mediainfo --Inform="General;%Duration%" "$1"
}

Merci pour la réorganisation des options de ffmpeg. Puis te citer en entête ?

Je vais essayer d'avancer mon autoformation BASH, pour poser moins de questions. Même si le script n'est pas fini, il me permet déjà de gagner de la place sur mon NAS…

#40 Le 25/06/2021, à 19:16

Watael

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

parce que le echo ne sert à rien.

pour "les erreurs", ce n'est pas relatif à cette fonction, mais à l'affichage des... erreurs smile (en rouge).


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#41 Le 26/06/2021, à 13:55

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Bonjour à tous !
Je dois étre fatigué parce que je m'énerve déjà, donc je vais me re-coucher…

ludovic@LibraZiK:~/LDVC$ cat test.bash 
#!/bin/bash
# test
a=false
if [ a ]
then
	echo "a est vrai"
elif [ !a ]
then
	echo "a est faux"
else
	echo "a n'est rien"
fi
sleep 10
exit
ludovic@LibraZiK:~/LDVC/test.bash 
a est vrai
ludovic@LibraZiK:~/LDVC$ 

mad
https://openclassrooms.com/fr/courses/4 … conditions

Dernière modification par Compte supprimé (Le 26/06/2021, à 14:02)

#42 Le 26/06/2021, à 14:20

Watael

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

ben ouais, grosse fatigue, parce que a ce n'est pas "$a", et puis
si a vaut la chaîne false, alors test "$a" est vrai, parce que la chaîne "false" existe,
et une variable ne peut pas enregistrer le code de retour d'une commande; par exemple a=$(false) ne contiendra pas le code de retour 1 de false.

on peut "ruser" :

a=$(false; echo $?)
test $a -eq 0 && echo vrai || echo faux

mais ça ne me semble pas une bonne pratique.

tu devrais exposer ton cas concret dans un sujet à part.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#43 Le 26/06/2021, à 15:07

MicP

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Bonjour

EDIT : Les variables de type booléen n'existent pas dans bash

Mais tu pourrais utiliser une chaîne de caractère
en faisant comme ça :

suppression_automatique="non"     # mettre "oui", sinon mettre n'importe quoi d'autre que "oui" sera équivalent à "non"

if [[ "$suppression_automatique" == "oui" ]]
then
   choses à faire
   si la suppression automatique
   a été activée en mettant la variable "suppression_automatique" à "oui"
else
   choses à faire
   si la suppression automatique
   n'a PAS été activée
fi

Dernière modification par MicP (Le 28/06/2021, à 14:21)

Hors ligne

#44 Le 27/06/2021, à 20:02

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Bonsoir,

L_d_v_c@ a écrit :
https://fr.wikipedia.org/wiki/Bug_(informatique)#Approche_formelle_:_les_m%C3%A9thodes_formelles a écrit :


L'industrie du développement logiciel fait de gros efforts pour trouver des méthodes de prévention des erreurs des programmeurs menant à des bugs.

  • « La ligne de code la plus sûre au monde est celle que l'on n'écrit pas ! » : rechercher la simplicité et la simplification, la cohérence, la réutilisation de code ou de librairies éprouvées, puis établir des règles de codage et de politique de nommage claire.

tongue

Il faut que j’arrête pour ce soir, je n'y vois presque plus.

Je ne veux surtout pas faire cette partie de l’algorithme avec des chaînes de caractère là où de simples booléens auraient suffi.
Question de programmation écologique. Un octet c'est 8 booléens !

PS : Monsieur Christian DELAIR m'a lancé sur :

for dirs in $(find . -type d) ; do
    echo "$dirs"
done

Mais ça plante chez moi à cause des espaces dans certains noms de dossiers.
J'ai bien essayé d'ajouter les guillemets, c'est mieux :

for dirs in "$(find . -type d)" ; do
    echo "$dirs"
done

Maintenant j'ai cherché comment faire une boucle fichiers *.* à l'intérieur de la boucle dirs…

repertoire=$(pwd)
for dirs in "$(find . -type d)"
do
	cd "$dirs"
	for fichier in *.*
	do

	done
done

Mais je continuerai demain.
Bonne soirée.

Dernière modification par Compte supprimé (Le 27/06/2021, à 20:04)

#45 Le 27/06/2021, à 21:01

Watael

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

for dirs in $(find . -type d) ; do

mauvaise pratique.
tu t'en es aperçu.

voilà comment faire en bash :

while IFS='' read -d '' dir
do
   echo ">$dir<" # pour voir que ça fonctionne correctement quel que soit le format des noms des fichiers
done < <(find -type d -print0)

en full bash, puisqu(il n'est question que de remonter uniquement les répertoires :

shopt -s nullglob globstar
for d in ./**/; do echo "$d"; done

MAIS la boucle interne est probablement inutile, car il doit être possible de retrouver seulement les fichiers adéquates en se basant sur le format de leur nom, une extension, leur type mime...


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#46 Le 28/06/2021, à 13:41

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Bonjour. Merci Watael.
Tu ne m'as pas répondu si je peux te citer dans les remerciements de débogages/mises au point ?

Comme le but est de balayer tous les fichiers du dossier et des sous-dossier, on va partir sur :

for file in "$(find . -type f)"
do
    echo "$file"
done

J'avais mal posée ma question. Mon script doit travailler sur des fichiers de sous-dossiers.

#47 Le 28/06/2021, à 13:56

Watael

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

c'est une mauvaise pratique, S'il existe un fichier fi chi er, ta boucle fera patatras.

ceci descend dans les sous-répertoires, et protège les noms de fichiers qui contiendraient des espaces :

shopt -s nullglob globstar
for f in ./**
do
    if [[ $(file... "$f") =~ video ]]; then echo "fichier à traiter : $f"; fi
done

tu peux me citer. smile

Dernière modification par Watael (Le 28/06/2021, à 13:59)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#48 Le 28/06/2021, à 14:17

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Pas encore tout à fait ça. J'ai une drôle de sortie, comme si le script voulait tout traiter d'un coup au lieu de traiter ligne par ligne.
Je ne retrouve pas mes repères d'affichages dans la sortie :

ludovic@ludovic-J5005:~$ cd /nas/Datas/6To/0-système_secondaire/vidéos_secondaires/Films\ et\ reportages\ ++++++/tv
ludovic@ludovic-J5005:/nas/Datas/6To/0-système_secondaire/vidéos_secondaires/Films et reportages ++++++/tv$ ./vp9.bash 
./tv-Films & D.A./48 heures.ed.m2ts
./tv-Films & D.A./48 heures de plus.ed.m2ts
./tv-Films & D.A./Retour vers le futur (1 sur 3).ts
./tv-Films & D.A./Retour vers le futur (2 sur 3).ts
./tv-Films & D.A./Retour vers le futur (3 sur 3).ts
./tv-Films & D.A./big_buck_bunny_1080p_stereo.ogv
./tv-Films & D.A./La jetée - 06-05-2018 23h00 30m (99).ed.m2ts
./tv-Films & D.A./Johnny English - 15-10-2018 20h58 01h47 (135).ed.m2ts
./tv-Films & D.A./Johnny English, le retour - 18-06-2020 20h59 02h02 (2840).ed.m2ts
./tv-Films & D.A./Tortue Ninja (Chumlee le ninja) - 27-02-2020 21h00 02h (2799).ed.m2ts
./tv-Films & D.A./The Shanghai Job - 20-02-2020 22h55 01h55 (2793).ed.m2ts
./tv-Films & D.A./Scary_Movie_3_(150811_203901).ed.mpg
./tv-Films & D.A./SCARYMOVIE_(171111_204929).ed.mpg
./tv-Films & D.A./Blade Runner 2049 - 20-09-2020 21h05 02h29.ed.m2ts
./tv-Films & D.A./Boule Bill - 05-07-2020 21h05 01h18.ed.m2ts
./tv-Films & D.A./Total Recall  01h45.ed.m2ts
./tv-Films & D.A./Brillantissime - 31-05-2020 21h05 01h26.ed.m2ts
./tv-Films & D.A./Coexister - 03-05-2020 21h05.ed.m2ts
./tv-Films & D.A./Diversion.ed.m2ts
./tv-Films & D.A./France 2 - Garde alternée - 30-08-2020 21h05 01h55 (2847).ed.m2ts
./tv-Films & D.A./France 2 - Hancock - 05-07-2020 22h27 01h58 (2842).ed.m2ts
./tv-Films & D.A./France 2 - La chance de ma vie - 16-08-2020 21h05 01h45 (2845).ed.m2ts
./tv-Films & D.A./France 2 - L'amour, c'est mieux à deux - 09-08-2020.ed.m2ts
./tv-Films & D.A./France 2 - La soupe aux choux - 28-03-2020 14h00 01h55 (2819).m2ts
./tv-Films & D.A./France 3 - Man of Steel - 19-03-2020.ed.m2ts
./tv-Films & D.A./On ne choisit pas sa famille.ed.m2ts
./tv-Films & D.A./Le Boulet (manque instant début).ed.m2ts
./tv-Films & D.A./Hitch, expert en séduction - 29-03-2020.ed.m2ts
./tv-Films & D.A./La nuit au musée 2 - 19-07-2020.ed.m2ts
./tv-Films & D.A./Sans Issue.ed.mpg
./tv-Films & D.A./Double Zéro.ed.mpg
./tv-Films & D.A./Le Flic de Beverly Hills.ed.mpg
./tv-Films & D.A./Les Rois Mages - Les Inconnus.ed.mpg
./tv-Reportages et Documentaires/20121130 Envoyé Spécial - Toute ma vie sur Internet.ed.MPG
./tv-Reportages et Documentaires/iHuman - L'intelligence artificielle et nous - 21-04-2020 22h30 01h55 (2831).ed.m2ts
./tv-Reportages et Documentaires/Comment êtes-vous pistés.mpg
./tv-Reportages et Documentaires/L'intelligence artificielle va-t-elle nous dépasser (INCOMPLET)- 06-10-2018 22h25 55m (133).ed.m2ts
./tv-Reportages et Documentaires/L'échodeslois OGM (140711_234459).mpg
./tv-Reportages et Documentaires/Partir revenir (suicide) (160711_220048).mpg
./tv-Reportages et Documentaires/Ovnis, extraterrestres - 03-03-2012 22h35.ed.ts
./tv-Reportages et Documentaires/Liberté, Égalité… Sexualité ! Enquête sur les nouveaux comportements sexuels des français.ed.m2ts
./tv-Reportages et Documentaires/L'alcool, l'intoxication globale - 12-05-2020 22h20 01h42 (2836).ed.m2ts
./tv-Reportages et Documentaires/Envoyé spécial - Démarchage téléphonique - 25-10-2018.ed.m2ts
./tv-Reportages et Documentaires/Envoyé spécial - Service après vente - 13-02-2020.ed.m2ts
./tv-Reportages et Documentaires/Vie après la mort, pouvoirs occultes - 03-03-2012 20h35 2h.ed.ts
./tv-Reportages et Documentaires/DirectStar_Livehome Mika Tomboy (151110_235555).mpg
./tv-Reportages et Documentaires/Facebook Olivier BESANCENOT.mp4
./tv-Reportages et Documentaires/Livehome Mika (151110_235241).mpg
./tv-Spectacles & Musiques/Olympia 99 (Raymond Devos).webm
./tv-Spectacles & Musiques/Radio Equinoxe Version Live - Version Web.mp4
./tv-Spectacles & Musiques/Ils se re-aiment Michèle LAROQUE et Pierre PALMADE.ed.m2ts
./tv-Spectacles & Musiques/Ils se sont aimés - Michèle LAROQUE et Pierre PALMADE.ed.m2ts
./tv-Spectacles & Musiques/Bigard remet le paquet (041011_203501).ed.mpg
./tv-Spectacles & Musiques/Destination Eurovision (2e partie) - 20-01-2018 20h55.ed.m2ts
./tv-Spectacles & Musiques/France 2 - On n'demande qu'à en rire Spéciale - 28-03-2013.ed.ts
./tv-Spectacles & Musiques/Les délires magiques de Lindsay et d'Eric ANTOINE.ed.mpg
./vp9.bash ne sera pas traité.

Fini.

#49 Le 28/06/2021, à 14:20

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Watael a écrit :

c'est une mauvaise pratique, S'il existe un fichier fi chi er, ta boucle fera patatras.

ceci descend dans les sous-répertoires, et protège les noms de fichiers qui contiendraient des espaces :

shopt -s nullglob globstar
for f in ./**
do
    if [[ $(file... "$f") =~ video ]]; then echo "fichier à traiter : $f"; fi
done

tu peux me citer. smile

Merci, je vais essayer ta méthode, car celle proposée par Christian DELAIR, n'est pas adaptée à mon script, et apparemment n'est pas bonne.

#50 Le 28/06/2021, à 14:21

Compte supprimé

Re : [RÉSOLU] Script 1, compression adaptative vidéos fonctions de l'heure.

Je cherche à comprendre ta première ligne…

shopt -s nullglob globstar

C'est parti pour une session man… wink

Édit ! ???

root@LibraZiK:/home/ludovic/scripts# man shopt
Aucune entrée de manuel pour shopt
Vous avez du nouveau courrier dans /var/mail/root
root@LibraZiK:/home/ludovic/scripts# man nullglob
Aucune entrée de manuel pour nullglob
root@LibraZiK:/home/ludovic/scripts# man globstar
Aucune entrée de manuel pour globstar
root@LibraZiK:/home/ludovic/scripts# man ls
root@LibraZiK:/home/ludovic/scripts# 

Dernière modification par Compte supprimé (Le 28/06/2021, à 14:26)