Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 01-10-2017 12:31:25

Batmood
Membre
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-amd64
(G)UI : i3
Inscription : 31-08-2017

[résolu] script: convertir des fichiers .ogg .flac en .mp3 avec tags

Bonjour tout le monde,

J'ai plusieurs dossiers contenant un mélange de fichiers musicaux (ogg, wav, flac, mp3, etc.). J'aimerais convertir tous les fichiers ogg, wav et flac en mp3 pour qu'ils puissent être lus sur mon lecteur externe et ailleurs. Avez-vous une astuce pour le faire via script ou commande et que les tags soient conservés (ou convertis tout du moins).
La solution dans ce fil de discussion propose de convertir les flac et supprimer les fichiers sources après conversion mais ça ne garde pas les tags:

for f in *.flac; do flac -cd "$f" | lame -b 320 - "${f%.*}".mp3 && rm "$f"; done

Dernière modification par Batmood (01-10-2017 19:03:25)

Hors ligne

#2 01-10-2017 12:56:06

golgot200
Membre
Inscription : 05-08-2007

Re : [résolu] script: convertir des fichiers .ogg .flac en .mp3 avec tags

Bonjour,

il me semble bien déjà que les fichiers Wav n'ont pas de tags à l'origine et ne peuvent pas être taggué  (en principe ) wink

EDIT:
Pour conserver les tags, ffmpeg et l'option metadata ferait bien l'affaire.

Dernière modification par golgot200 (01-10-2017 13:38:12)

Hors ligne

#3 01-10-2017 16:50:09

Batmood
Membre
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-amd64
(G)UI : i3
Inscription : 31-08-2017

Re : [résolu] script: convertir des fichiers .ogg .flac en .mp3 avec tags

Je regarderai dans les options de ffmpeg. En attendant, j'ai trouvé ceci qui marche impeccablement bien pour les flac :-) :
https://fr.wikibooks.org/wiki/Convertir … chiers_mp3

edit: pour les ogg et les wav, c'est pas grave, comme je n'en ai pas beaucoup, je le fais manuellement avec audacity.

Dernière modification par Batmood (01-10-2017 19:04:28)

Hors ligne

#4 02-10-2017 12:23:10

golgot200
Membre
Inscription : 05-08-2007

Re : [résolu] script: convertir des fichiers .ogg .flac en .mp3 avec tags

Bonjour,

A  voir pour trouver un moyen de déplacer tout les fichiers  "ogg,wav,flac" encodés en mp3  dans un ou nouveau dossier wink


find . -type f -regextype posix-extended -iregex ".*\.(flac|wav|aiff|ogg|wv)" -exec bash -c 'ffmpeg -i "$0" -b:a 192k -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "${0%.*}.mp3"' '{}' \;
 




Un truc du genre dans un script :

find . -type f -regextype posix-extended -iregex ".*\.(flac|wav|aiff|ogg|wv)" -exec bash -c 'ffmpeg -i "$0" -b:a 192k -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "${0%.*}.mp3"' '{}' \; && find . -type f -name '*.mp3' -print0 | xargs -0 mv -t "$DIRMP3/$JOUR/$HEURE"

Dernière modification par golgot200 (02-10-2017 12:29:02)

Hors ligne

#5 02-10-2017 16:38:22

golgot200
Membre
Inscription : 05-08-2007

Re : [résolu] script: convertir des fichiers .ogg .flac en .mp3 avec tags

Tant pis, c'est résolu mais ce script fonctionne pas mal. Avec le programme parallel, c'est encore mieux. Ça encode vitesse grand V chez moi.

Encode tous les fichiers flac, wav et ogg dans un dossier MP3 crée sur  le bureau par le script.
Crée aussi des sous-répertoires Jour/heures. ( A cause de l'utilisation de mv qui n'écrasent pas les mêmes fichiers) . J'ai pas trouvé une autre combine.
Garde les Tags pour les fichiers qui le sont.


apt install parallel ffmpeg lame
 



Script:


#!/bin/bash -v

DIR=$(xdg-user-dir DESKTOP)
DIRMP3=$DIR/MP3

JOUR=$(date +%d-%m-%y)
HEURE=$(date +%H.%M.%S)


# Création Du Dossier MP3
if [ ! -d $DIRMP3 ]; then
    echo "$DIRMP3 n'existe pas !"
    echo "Création du dossier $DIRMP3."
mkdir "$DIRMP3"
else
    echo "$DIRMP3"
fi

# Création D'un Dossier JOUR

if [ ! -d "$DIRMP3/$JOUR" ]; then
    echo "$DIRMP3/$JOUR n'existe pas !"
    echo "Création Du Dossier $JOUR."
mkdir "$DIRMP3/$JOUR"
 
fi

# Création D'un Sous-Répertoire HEURE

if [ ! -d "$DIRMP3/$JOUR/$HEURE" ]; then
    echo "$DIRMP3/$JOUR/$HEURE n'existe pas !"
    echo "Création Du Sous Répertoire $HEURE."
mkdir "$DIRMP3/$JOUR/$HEURE"
 
fi

#find . -type f -regextype posix-extended -iregex ".*\.(flac|wav|aiff|ogg|wv)" -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "${0%.*}.mp3"' '{}' \; && find . -type f -name '*.mp3' -print0 | xargs -0 mv -t "$DIRMP3/$JOUR/$HEURE"


find . -type f -name '*.flac' -o -name '*.ogg' -o -name '*.wav' | parallel -i -j$(nproc) ffmpeg -y -i {} -c:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 -y {.}.mp3 && find . -type f -name '*.mp3' -print0 | xargs -0 mv -t "$DIRMP3/$JOUR/$HEURE"
 

Dernière modification par golgot200 (02-10-2017 16:39:46)

Hors ligne

Pied de page des forums