Commande pour noms, résolution et taille de vidéos
Résolu
yayou
Messages postés
1218
Date d'inscription
Statut
Membre
Dernière intervention
-
yayou Messages postés 1218 Date d'inscription Statut Membre Dernière intervention - 8 sept. 2022 à 21:34
yayou Messages postés 1218 Date d'inscription Statut Membre Dernière intervention - 8 sept. 2022 à 21:34
1 réponse
Bonjour,
Tu peux utiliser :
- la commande find pour itérer sur les fichiers vidéos et egrep pour filtrer les fichiers sur leur extension
- la commande ls -sh pour récupérer la taille d'un fichier
- la commande ffprobe pour récupérer les métadonnées (dont la résolution de la vidéo), voir cette discussion
- la commande jq pour extraire d'une chaîne json un champ particulier
- l'opérateur > (resp. >>) pour rediriger un résultat de commande dans un fichier (resp. à la suite d'un fichier)
À tester mais ça doit ressembler en gros à ceci :
#!/bin/bash OUT="result.txt" echo "" > "$OUT" for f in $(find . -type f | egrep "\.(mov|mp4)$") do metadata=$(ffprobe -v quiet -print_format json -show_streams "$f") width=$(echo "$metadata" | jq -r '.streams[0].width') height=$(echo "$metadata" | jq -r '.streams[0].height') size=$(ls -sh "$f" | cut -d" " -f1) echo "$f $width $height $size" >> "$OUT" done
Bonne chance
Merci pour cette très riche réponse. En fait j'espérais trouver mon bonheur avec une commande native de Linux mais apparemment il va falloir installer un ou deux trucs (FFmpeg notamment). Ca ne m'arrange pas trop parce que j'ai mal pensé la taille de ma partition Linux et elle est fréquemment à cours d'espace (je dois effacer les anciens noyaux pour en gagner). Je dois donc déjà voir si je peux installer FFmpeg et tester ton script par la suite.
Encore merci pour ton partage.
Il y a rarement une commande qui "fait le café", l'idée sous Linux c'est plutôt de mettre à disposition plein de petites briques et après, libre à tout un chacun d'assembler son lego :-)
Donc dans ton cas, il faut effectivement installer les paquets qui fournissent jq et ffprobe.
Concernant ce point, je te fais une réponse rapide car c'est un autre sujet, mais si tu veux d'autres indications, je t'invite à ouvrir une nouvelle discussion.
Bonne chance
Tu as tout à fait raison. J'avais espoir de pouvoir faire ce dont j'ai besoin par un bon jeu de commandes natives mais je ne me faisais pas trop d'illusions. En plus des noyaux je fais aussi le nettoyage basique (Autoremove, autoclean, clean).
Merci pour tes conseils ainsi que pour ta très élégante commande.
De rien :-)
Très bien ! Pour finaliser le ménage (car parfois sudo apt autoremove ne trouve pas tout) tu peux également virer les paquets orphelins. Il faut au préalable installer deborphan :
Puis ensuite, tant qu'elle purge des paquets, répète la commande suivante :
Bonne continuation
Ca, ça va m'être très utile. Je ne connaissais pas ce programme.