Réduire la taille d’un MP3 sans perte de qualité sonore avec ffmpeg
Article mis en ligne le 7 octobre 2022
dernière modification le 26 août 2024

grâce à cd .. dossier/ , se placer dans le dossier où se trouve le ou les mp3 à traiter.
remplacer
in.mp3 : par le nom complet du fichier à traiter
out.mp3 : par le nom que vous souhaiter lui donner, n’oubliez l’extension .mp3

  • Pour un seul fichier remplacer
    • in.mp3 : par le nom complet du fichier à traiter
    • out.mp3 : par le nom que vous souhaiter lui donner, n’oubliez l’extension .mp3

ffmpeg -i "in.mp3" -f mp3 -acodec libmp3lame -ab 128k -ss 00:00:00 -t 00:02:23 "out.mp3"

Pour information un Mp3 de 448.7 Mo =====> 2.3 Mo , le fichier a un petit peu réduit ;)

  • Pour un répertoire complet, le script à lancer dans le répertoire où se trouve les mp3 à traiter
#!/bin/bash

# les fichiers dont l’extension est « .mp3 » à partir du répertoire courant :
find . -name "*.mp3" 

#on crée un répertoire tmp
mkdir tmp
#pour chaque mp3 on réencode un autre en 128 kbps dans ./tmp/
for file in <span class="base64" title="PGNvZGUgY2xhc3M9J3NwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lJyBkaXI9J2x0cic+bHMgLVIgKi5tcDM8L2NvZGU+"></span>
do
echo "conversion de $file"
ffmpeg -i $file -f mp3 -acodec libmp3lame -ab 128k -ss 00:00:00 -t 00:02:23 ./tmp/$file
done
"{}" \;

L’encodage est correct , vous pouvez supprimer vos source mp3

Exemple un répertoire de 37G ======> 1G , stupéfiant !

Réduire la taille d’une image sans perte avec mogrify en ligne de commande

NB : ces réductions sont moins efficaces avec les fichiers .bmp.
Mieux vaut d’abord les convertir en jpg !

#!/bin/bash
# se placer dans le dossier grâce à 
cd .. dossier/
#puis transformer les images en .jpg
mogrify -format jpg *.bmp

puis supprimer les fichiers .bmp

#!/bin/bash
rm *.bmp

[fond rouge][blanc]ATTENTION[/blanc][/fond rouge] : mogrify écrase la photo d’origine en la réduisant sous le même nom.

grâce à cd .. dossier/ , se placer dans le dossier où se trouve la photo à traiter.
remplacer [bleu].ext[/bleu] par [marron].jpg[/marron], [marron].jpeg[/marron], [marron].JPG[/marron], [marron].JPEG[/marron], [marron].png[/marron], [marron].PNG[/marron]

**pour une image simple
Essayer l’une de ces 3 formules de réduction décroissante, de forte à faible.
La taille en pixel de la plus forte dimension ne dépassera pas 1024, 1536 ou 2048 pixels, en gardant les proportions de l’image.

  • mogrify *[bleu].ext[/bleu] -resize [rouge]1024[/rouge]x[rouge]1024[/rouge]\> ([rouge]réduction forte[/rouge])
  • mogrify *[bleu].ext[/bleu] -resize [violet]1536[/violet]x[violet]1536[/violet]\> ([violet]réduction moyenne[/violet])
  • mogrify *[bleu].ext[/bleu] -resize [bleu]2048[/bleu]x[bleu]2048[/bleu]\> ([bleu]réduction faible[/bleu])

**Pour toutes les images d’un dossier, ou de tous les sous-dossiers
Se placer dans le dossier parent cd ../
Appliquer l’une des formules pour : [marron].jpg[/marron], [marron].jpeg[/marron], [marron].JPG[/marron], [marron].JPEG[/marron]

  • find . -iregex '.+\.jpe?g' -exec mogrify -resize [rouge]1024[/rouge]x[rouge]1024[/rouge]\> '{}' \;
  • find . -iregex '.+\.jpe?g' -exec mogrify -resize [violet]1536[/violet]x[violet]1536[/violet]\> '{}' \;
  • find . -iregex '.+\.jpe?g' -exec mogrify -resize [bleu]2048[/bleu]x[bleu]2048[/bleu]\> '{}' \;

Appliquer l’une des formules pour : [marron].png[/marron], [marron].PNG[/marron]

  • find . -iregex '.+\.png' -exec mogrify -resize [rouge]1024[/rouge]x[rouge]1024[/rouge]\> '{}' \;
  • find . -iregex '.+\.png' -exec mogrify -resize [violet]1536[/violet]x[violet]1536[/violet]\> '{}' \;
  • find . -iregex '.+\.png' -exec mogrify -resize [bleu]2048[/bleu]x[bleu]2048[/bleu]\> '{}' \;

[*w*] qui est connecté et fait quoi.

[*who*] qui est connecté.

[*hostname*] Affiche le nom d’hôte de la machine conformément à ce qui est écrit dans le fichier /etc/hostname.

[*uname*] Infos sur le système et le matos. L’option -r bien pratique, permet d’obtenir la version du kernel.

[*lsb_release*] lsb_release -a donne toutes les infos sur la distrib.

[*lshw*] Donne une liste détaillée de l’hardware système tels que la configuration ram, la version du firmware, la configuration de la carte mère… Avec l’option -short vous obtiendrez une sortie plus digeste.

[*ls*] liste les fichiers d’un dossier

  • Options :
    • -a pour les fichiers cachés,
    • -l pour la liste détaillées,
    • -h pour les tailles en unités "human readable". Très pratique l’option
    • -R permet en un coup d’œil de visualiser les sous-dossiers.

[*cd *] change directory

la commande permet de naviguer dans l’arborescence. Par exemple cd /var/log va dans le dossier des logs, quelque soit l’endroit où l’on se trouve puisqu’on a mis le slash de début, lequel indique qu’il s’agit d’une adresse absolue. En revanche, cd mondossier/images va dans le répertoire images de mon dossier lequel se trouve à l’endroit où on se situe déjà. Comme on ne met pas de slash de début, il s’agit d’une adresse relative, on ajoute donc ce chemin à celui dans lequel on se trouve déjà.

Deux raccourcis très utiles sont à connaître. cd mène au répertoire de l’utilisateur courant (/home/user/ la plupart du temps ou /root/ si vous êtes en root) et cd - retourne sur le chemin précédent.

[*du*] disk usage, précise l’espace disque

que prend chaque fichier ou dossier
(l’option -h permet d’obtenir les tailles en "human readable"),
tandis que l’option —max-depth=x (ou -d), très utile également, permet de limiter la détail à un niveau de sous dossier.
— max-depth=1 ne retournera donc que la taille des répertoires courants. Cette commande s’avère particulièrement pratique quand ls -l ne nous donne pas la taille d’un dossier.

[Afficher les répertoires et volume mais trier le résultat en fonction du volume :

du -sB G * | sort -k1n

 /sites$ => se placer dans le répertoire sur lequel on lance la commande

du => La commande du (disk usage) permet de connaître l’espace utilisé par des fichiers.

-s => Afficher seulement le total pour chaque argument.

B G => La commande du utilise par défaut le multiple 1024, ce qui signifie que la taille s’affiche par défaut en Kilo octet. Il est possible grâce à l’option -B pour spécifier dans quel multiple on souhaite que la taille s’affiche. Les tailles acceptées peuvent être K (kilo), M (Mega), G (Giga), T (Tera), P (Peta).

-k1n => « sort » permet un tri. « -k » suivi d’un chiffre indique la colonne sur laquelle effectuer le tri et « n » précise qu’il s’agit d’une valeur numérique, afin d’éviter que « 1 » et « 10 » et « 100 » ne se suivent.

Liste des 10 plus gros fichiers du répertoire courant et de ses sous-repertoires, dans l’ordre décroissant de taille :

du -a | sort -nr | head -n 10

  • ls => La commande ls liste les éléments non-cachés du dossier en cours
    • ls -a affiche tous les éléments, y compris les éléments cachés.
    • ls -d .* n’affiche que les fichiers et dossiers cachés

du —help

Utilisation : du [OPTION]... [FICHIER]...
ou : du [OPTION]... —files0-from=F
Totaliser l’occupation de l’espace disque pour l’ensemble des FICHIERs,
récursivement pour les répertoires.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
-0, —null terminer chaque ligne de sortie par NUL au lieu d’un
saut de ligne
-a, —all afficher le décompte pour tous les fichiers, pas
seulement pour les répertoires
—apparent-size afficher les tailles apparentes au lieu de l’occupation
d’espace disque ; même si la taille apparente est
habituellement plus petite, elle peut être plus grande
en raison de trous dans les fichiers (« sparse »), de
la fragmentation, de blocs indirects et autres raisons
similaires
-B, —block-size=TAILLE convertir les tailles en TAILLE avant de les
afficher ; par exemple, « -BM » affiche les tailles
en unités de 1 048 576 octets ;
consultez le format de TAILLE ci-dessous
-b, —bytes équivalent à « —apparent-size —block-size=1 »
-c, —total produire le total général
-D, —dereference-args ne déréférencer que les liens symboliques sur
la ligne de commande
-d, —max-depth=N afficher le total pour un répertoire (ou un fichier,
avec —all) seulement s’il est à N niveaux ou moins
selon les arguments de la ligne de commande ;
—max-depth=0 est identique à —summarize
—files0-from=F résumer l’occupation du disque pour les noms de fichiers
(terminés par NUL) indiqués dans le fichier F ; si F
est -, alors les noms sont lus sur l’entrée standard
-H, équivalent à —dereference-args (-D)
-h, —human-readable afficher les tailles dans un format lisible
(par exemple 1K, 234M ou 2G)
-i, —inodes afficher les renseignements des inœuds à la place de ceux
des blocs
-k, identique à —block-size=1K
-L, —dereference déréférencer tous les liens symboliques
-l, —count-links comptabiliser les tailles de tous les liens directs
-m identique à —block-size=1M
-P, —no-dereference ne pas suivre les liens symboliques (par défaut)
-S, —separate-dirs ne pas inclure la taille des sous-répertoires
—si identique à -h mais en multiple de 1000 au lieu de 1024
-s, —summarize n’afficher qu’un total pour chaque argument
-t, —threshold=TAILLE exclure les entrées plus petites que TAILLE si
positive, ou plus grandes que TAILLE si négative
—time afficher l’heure de la dernière modification de tous
les fichiers du répertoire ou des sous-répertoires
—time=MOT afficher l’heure de MOT au lieu de l’heure de
modification : atime, access, use, ctime ou status.
—time-style=STYLE afficher l’heure en utilisant le STYLE qui peut être :
full-iso, long-iso, iso ou +FORMAT ;
FORMAT est interprété comme dans « date »
-X, —exclude-from=FICHIER exclure les fichiers correspondants à un des
motifs du FICHIER
—exclude=MOTIF exclure les fichiers correspondants à MOTIF
-x, —one-file-system ignorer les répertoires de différents systèmes de
fichiers
—help afficher l’aide et quitter
—version afficher des informations de version et quitter

Les valeurs sont affichées selon les unités de la première TAILLE disponible
parmi —block-size et les variables d’environnement DU_BLOCK_SIZE, BLOCK_SIZE
et BLOCKSIZE. Dans le cas contraire, les unités par défaut sont 1 024 octets
(ou 512 si POSIXLY_CORRECT est défini).

L’argument TAILLE est un entier suivi d’une unité facultative (10k pour 10*1024
par exemple). Les unités sont K, M, G, T, P, E, Z et Y (puissances de 1024) ou
KB, MB, etc. (puissances de 1000).
Les préfixes binaires peuvent être utilisés aussi : KiB=K, MiB=M, etc

Aide en ligne de GNU coreutils : <https://www.gnu.org/software/coreutils/>
Signalez les problèmes de traduction de à :
Documentation complète <https://www.gnu.org/software/coreut...>
ou disponible localement via : info ’(coreutils) du invocation’

[*find*] find = chercher, en anglais

La commande find permet de chercher des fichiers et éventuellement d’exécuter des commandes dessus.
Quelques options :
-name : Recherche d’un fichier par son nom
-iname : Même chose que -name mais insensible à la casse
-type : Recherche de fichier d’un certain type
-atime : Recherche par date de dernier accès
-mtime : Recherche par date de dernière modification
-user : Recherche de fichiers appartenant à l’utilisateur donné
-group : Recherche de fichiers appartenant au groupe donné
-size : Recherche par rapport à une taille de fichier.
-exec : Exécute la commande donnée aux fichiers trouvés.
-a : Opérateur ET
-o : Opérateur OU
 ! ou -not : Opérateur NOT
Ex :

  • find \( -name '*.png' \) -print
    permet d’afficher (-print) la liste de tous les fichiers .png du dossier dans lequel on se trouve.

[*pwd*] print working directory.

Cette commande affiche tout simplement le chemin absolu du dossier dans lequel on se trouve,

[*clear*] nettoie votre fenêtre de terminal

en reléguant tout le texte au dessus (donc accessible avec un scroll) et vous laissant donc face à une fenêtre clean. Bien utile de temps à autre pour y voir plus clair. Le raccourci clavier ctrl + l fait la même chose.

[*history*] L’historique de bash est très pratique.

Cependant, il peut parfois s’avérer intéressant d’en supprimer des entrées. history permet d’afficher l’historique avec les numéros de lignes correspondants. Si vous vouler supprimer une entrée, il suffira d’utiliser l’option -d, history -d 11 et pour tout supprimer, vous utiliserez l’option -c sans autre paramètre.

Récupérer un site ou répertoire sur son ordinateur ou serveur

wget -r -l 0 ftp://http://www.l_adresse_du_site.a_recuperer.com/* --ftp-user=Mon_Login --ftp-password=Mon_Pass -nH --cut-dirs=1

MP3

Une qualité maximale est obtenue lorsque, quelles que soient les conditions d’écoute, vous ne parvenez pas à détecter une différence entre le MP3 et l’original.

  • les MP3 encodés en LAME atteignent généralement ce niveau de transparence lorsqu’ils sont encodés avec les paramètres par défaut, à des débits bien inférieurs au maximum.
     X ? = -4 ( 165 kbps), -5 ( 130 kbps) ou -6 ( 115 kbps) sont recommandés.

Vous pouvez utiliser cette commande :
ffmpeg -i input.mp3 -vn -ar 44100 -ac 2 -b:a 192k output.mp3
Explication des arguments utilisés dans cet exemple :
 i - fichier d’entrée
 vn - Désactivez la vidéo, pour vous assurer qu’aucune vidéo (y compris l’image de couverture de l’album) n’est incluse si la source serait un fichier vidéo
 ar- Réglez la fréquence d’échantillonnage audio. Pour les flux de sortie, il est défini par défaut sur la fréquence du flux d’entrée correspondant. Pour les flux d’entrée, cette option n’a de sens que pour les périphériques de capture audio et les démultiplexeurs bruts et est mappée aux options de démultiplexeur correspondantes.
 ac- Réglez le nombre de canaux audio. Pour les flux de sortie, il est défini par défaut sur le nombre de canaux audio d’entrée. Pour les flux d’entrée, cette option n’a de sens que pour les périphériques de capture audio et les démultiplexeurs bruts et est mappée aux options de démultiplexeur correspondantes. Donc utilisé ici pour s’assurer qu’il est stéréo (2 canaux)
 b:a - Convertit le débit audio pour qu’il soit exact 192kbit par seconde


Plan du site Contact Mentions légales

2017-2025 © SpipFactory - Tous droits réservés
Haut de page
Réalisé sous SPIP
Habillage ESCAL 5.5.4
Hébergeur : SpipFactory