Commande pour noms, résolution et taille de vidéos
Résolu/Fermé
yayou
Messages postés
1168
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
12 novembre 2024
-
6 sept. 2022 à 12:59
yayou Messages postés 1168 Date d'inscription dimanche 17 octobre 2004 Statut Membre Dernière intervention 12 novembre 2024 - 8 sept. 2022 à 21:34
yayou Messages postés 1168 Date d'inscription dimanche 17 octobre 2004 Statut Membre Dernière intervention 12 novembre 2024 - 8 sept. 2022 à 21:34
A voir également:
- Commande pour noms, résolution et taille de vidéos
- Invite de commande - Guide
- Comment réduire la taille d'un fichier - Guide
- Commande terminal mac - Guide
- Les noms des animaux - Télécharger - Études & Formations
- Nom de l'adresse - Forum Consommation & Internet
1 réponse
mamiemando
Messages postés
33363
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
16 novembre 2024
7 801
Modifié le 6 sept. 2022 à 14:58
Modifié le 6 sept. 2022 à 14:58
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
6 sept. 2022 à 17:58
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.
7 sept. 2022 à 14:01
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
8 sept. 2022 à 11:54
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.
8 sept. 2022 à 14:32
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
8 sept. 2022 à 21:34
Ca, ça va m'être très utile. Je ne connaissais pas ce programme.