Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés

Debian-facile

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

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

#26 29-07-2022 13:13:36

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

manon a écrit :

... Mais elle convertit en m4a de piètre qualité....



Bonjour,

Sans option sur le bitrate, c'est 128k par défaut. ( ~ 15KHz)

remet ton bitrate -b:a 530k qui va bien wink

Mais pourquoi 530k ? hmm

ffmpeg -i output.flac -c:a aac -b:a 530k -c:v copy output.m4a




Pour ma part, passer du flac à l'aac, j'avoue avoir du mal cool

Met 320k pour l'aac, à 530k, ffmpeg va gueuler wink

Dernière modification par Anonyme (29-07-2022 14:12:39)

#27 29-07-2022 21:44:19

manon
Banni(e)
Inscription : 21-05-2020

Re : [Résolu] Conversion musique avec ffmpeg

Salut,

Je mets 530k, car ça permet d'avoir le aac en VBR (là où il est le plus efficace), et d'avoir la courbe de fréquence la plus proche de l'original (quasi à l'identique).

Je transcode les flac en m4a, c'est pour les passer sur mon mini-pc qui me sert pour écouter la musique via Audacious (il n'a qu'un eMMC de 16 Go, pas de lecteur SD, et un seul port usb, sur lequel est branché le dac usb), mini-pc sans marque "reçu en cadeau" lors d'une commande à La Redoute il y a quelques années, et sur lequel j'ai réussi à installer Debian tant bien que mal, avantage il est silencieux, et tient une vingtaines d'heures sur sa batterie pour l'écoute musicale.

Du coup je sais que le m4a est le meilleur des formats lossy (poids/efficacité optimal, le ogg fait moins bien, et ça se ressent à l'écoute, un son moins spatial), et avec ce paramétrage, aucune différence audible entre le flac originel, et le m4a (vu les courbes quasi identiques rien d'étonnant).

Ce qui me permet de mettre 2 fois plus de musiques sur ce eMMC, que si je laissais tout en flac, et comme j'ai des milliers de musiques, ça m'évite de (dé)brancher le disque dur externe 10 fois par semaine.
Avec 16 Go je peux mettre énormément de musique pour des écoutes sur plusieurs mois.

En tout cas ta ligne de commande fonctionne à la perfection.
la conversion est nickel, les métadatas sont présentes, les covers sont présents aussi.

J'ai réadapté ta ligne de commande pour transcoder plusieurs fichiers flac en même temps, ce qui donne ceci, plus qu'y a me faire un alias, et ce sera parfait.

for f in ./*.flac; do ffmpeg -i "$f" -c:a aac -b:a 530k -c:v copy "${f%.*}.m4a"; done



Merci beaucoup, problème résolu on dirait.

Dernière modification par manon (29-07-2022 21:45:13)

Hors ligne

#28 30-07-2022 09:27:30

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

Hé bien, tu vois manon qu'avec un peu de patience, de sérénité et de communication respectueuse, il y a (presque) toujours quelqu'un pour donner la solution smile

Et au final, ffmpeg fait bien le taf, et les devs non rien "zappés" wink

Au plaisir.

Edit:
Pour mettre ton sujet en [Résolu], ajoute cette balise manuellement au titre de cette discussion en éditant ton 1er message.
Merci pour ceux qui chercheront le même type de résultat.

Dernière modification par Tawal (30-07-2022 09:29:15)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#29 30-07-2022 10:05:25

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

Et il te manque encore une réponse à une des tes question :
Comment choisir le dossier de sortie ?

Je pense que c'est possible en intégrant cette donnée dans la partie copy de la commande.
Mais du coup, plutôt que de faire un alias, je passerais par une fonction qui gère les arguments passés, quelque chose comme :

flac2m4a ()
{
   local  f  f_name
   if ! [ -d "$1" -o -d "$2" ]
   then
      echo "2 arguments nécessaires : dossier d'entrée et dossier de sortie."
      echo "Usage : flac2m4a  Input_Folder  Output_Folder"
      exit 1
   fi >&2
   for f in "$1"/*.flac
   do
      f_name="${f##*/}"
      ffmpeg -i "$f" -c:a aac -b:a 530k -c:v copy "$2/${f_name%.*}.m4a"
   done
}


Cette fonction peut très bien être déclarée dans ton fichier d'alias (~/.bash_aliases en général).
Et du coup, tu fais tout à distance, c'est à dire sans te placer dans le dossier contenant les flac.
Elle s'utilise ainsi :

flac2m4a    /chemin/du/dossier/contenant/les/flac    /chemin/du/dossier/contenant/les/m4a_crées



Edit:
Les 2 dossiers (entrée et sortie) doivent exister.
Dis si tu préfères que le dossier de sortie soit créé en cas d'inexistence, car c'est aussi possible wink

Edit2:
Ajout de l'exit dans le test de présence des dossiers.

Dernière modification par Tawal (30-07-2022 10:30:14)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#30 30-07-2022 12:05:59

manon
Banni(e)
Inscription : 21-05-2020

Re : [Résolu] Conversion musique avec ffmpeg

En effet avec la patience, on y arrive, le soucis, c'est que quand je galère pendant des heures sans comprendre ce que je fais (puisque je recopie bêtement ce que je trouve sur internet), ça finit par m'agacer au plus haut point.

Pour le dossier de sortie, j'avais oublié ce petit détail.
J'avoue que j'ai une préférence pour que le dossier soit créer.
Par exemple, si je converti les flac du dossier rock, j'aimerai que le sous-dossier rock soit créer systématiquement dans le dossier Musique.

Et j'avoue aussi que je teste actuellement pour faire une custom action dans thunar, vu que j'utilise Xfce.
J'ai trouvé et réadapté ceci sur internet

xfce4-terminal -x bash -c 'ffmpeg -i "$0" -c:a aac -b:a 530k -c:v copy "${0%%.*}".m4a' %F


Mais si je sélectionne plusieurs flac dans le même dossier, seul le 1er sélectionné se converti, et ensuite le terminal se ferme.

Voilà voilà, comme je suis nulle, et que je galère, le moindre petit truc me paraît ultra complexe !
Merci.

Hors ligne

#31 30-07-2022 13:05:41

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

Avant que je te propose quoique ce soit d'autre, mettons au point ta demande.
Si je comprends bien, tu voudrais sélectionner depuis Thunar des fichiers flac pour les convertir en m4a, puis les déposer (automatiquement) dans un dossier qui serait créé dans le dossier Musiques (dossier qui porterait le même nom que le dossier d'origine).

Dis-moi, si c'est bien cela que tu souhaites.
Il y aura quelques manipulations à faire, mais une fois en place, ce sera user-friendly.

[apparté]
Quand un truc t'énerves, prend le temps de respirer, fais une pause, reprends point par point ton désir.
Souvent, une nouvelle idée survient comme ça et débloque la situation wink
[/apparté]

Edit:
Est-ce que tu veux aussi absolument suivre le déroulé dans un terminal ?

Dernière modification par Tawal (30-07-2022 13:07:28)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#32 30-07-2022 14:47:29

manon
Banni(e)
Inscription : 21-05-2020

Re : [Résolu] Conversion musique avec ffmpeg

Tawal a écrit :

Avant que je te propose quoique ce soit d'autre, mettons au point ta demande.
Si je comprends bien, tu voudrais sélectionner depuis Thunar des fichiers flac pour les convertir en m4a, puis les déposer (automatiquement) dans un dossier qui serait créé dans le dossier Musiques (dossier qui porterait le même nom que le dossier d'origine).



Tu as parfaitement résumé, c'est exactement le fonctionnement que je souhaiterait obtenir.

Tawal a écrit :

Il y aura quelques manipulations à faire, mais une fois en place, ce sera user-friendly.


Tant que l'on me guide un peu, pour que je comprenne les démarches tout va bien wink

Tawal a écrit :

[apparté]
Quand un truc t'énerves, prend le temps de respirer, fais une pause, reprends point par point ton désir.
Souvent, une nouvelle idée survient comme ça et débloque la situation wink
[/apparté]


Quand je galère, je suis du genre têtue, à vouloir absolument trouver la solution, et à chercher tout et n'importe quoi, et faire n'importe quelle manipulation (et comme je suis peu douée, je recopie naïvement ce que je vois sur internet, au risque de faire des conneries, et je finis par perdre patience, même en faisant autre chose, je continue à penser, et souvent à je reprends les recherches mais sur le smartphone..

Tawal a écrit :

Edit:
Est-ce que tu veux aussi absolument suivre le déroulé dans un terminal ?


Si possible oui, pour checker d'éventuelles anomalies/erreurs (si il devait y en avoir lors de la conversion).
Merci bien.

Dernière modification par manon (30-07-2022 14:47:47)

Hors ligne

#33 30-07-2022 14:50:21

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

Tawal a écrit :


Edit:
Est-ce que tu veux aussi absolument suivre le déroulé dans un terminal ?



Bonjour,

moi ... oui
Je serais curieux de voir si tu peux me pondre :

Quand les fichiers sont sélectionnés, la commande ffmpeg travail "boucle" sur un unique terminal sans me faire un fermer/ouverture/fermeture .. etc car moi j'en suis là smile

Dernière modification par Anonyme (30-07-2022 14:53:35)

#34 30-07-2022 17:05:11

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

Re,

@manon :
Copie/colle le script suivant dans un fichier texte.

#!/bin/bash

# Script de conversion flac --> m4a (Spécial pour action personnalisée de Thunar)

xfce4-terminal -x bash -c '
   doss="${0%/*}"
   doss="${doss##*/}"
   doss="$HOME/Musiques/$doss"
   [ -d "$doss" ] || mkdir "$doss"

   for f in "$0" "$@"
   do
      f_name="${f##*/}"
      ffmpeg -i "$f" -c:a aac -b:a 530k -c:v copy "$doss/${f_name%.*}.m4a"
   done
   bash'
"$@"

exit


Appelle-le flac2m4a (ou autrement, mais il faudra adapter le reste en fonction).
Ouvre un terminal et déplace toi dans le dossier contenant le script.
Rends le exécutable avec :

chmod +x flac2m4a


Déplace ce script dans /usr/local/bin (ou autre dossier du PATH, mais celui-là est assez judicieux) avec :

sudo mv flac2m4a /usr/local/bin/


Ensuite, dans Thunar, crée une action personnalisée.
Pour le nom et la description de l'action, mets ce que tu veux.
Pour la commande, mets celle-ci :

flac2m4a %F


Choisi l'icône de ton choix.
Dans l'onglet "Conditions d'apparition", mets en "Motif de fichier" :

*.flac


Puis coche la case "Fichiers audio".

Voilà, tout est prêt à l'emploi wink


@Anonyme :
Je n'ai pas compris ce que tu voulais dire. Désolé.
Peut-être que l'exemple donné à manon te servira.
PS: je ne suis pas une poule lol

Edit:
Correction syntaxique et petite modification du script (test de la présence du dossier à créer, évite une erreur en cas d'existence).

Edit2:
Une fois la conversion des fichiers exécutée, le terminal reste ouvert dans le dossier d'origine des fichiers (là où se trouvent les flac sélectionnés)
Si tu préfères te retrouver dans le dossier créé, signale le moi wink

Dernière modification par Tawal (30-07-2022 17:35:37)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#35 30-07-2022 20:06:14

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [Résolu] Conversion musique avec ffmpeg

Sinon c'est assez trivial à adapter imho

xfce4-terminal -x bash -c 'for a in $@; do ffmpeg -i "$a" -c:a aac -b:a 530k -c:v copy "${a%%.*}".m4a; done' %F



Pour que le terminal reste ouvert, le plus simple est sans doute d'ajouter un "read"  à la fin :<

xfce4-terminal -x bash -c 'for a in $@; do ffmpeg -i "$a" -c:a aac -b:a 530k -c:v copy "${a%%.*}".m4a; done; read -n1' %F

Dernière modification par otyugh (30-07-2022 20:10:57)


virtue_signaling.png

En ligne

#36 30-07-2022 21:34:13

manon
Banni(e)
Inscription : 21-05-2020

Re : [Résolu] Conversion musique avec ffmpeg

C'est parfait, tout fonctionne à merveille, exactement comme je l'imaginais au début de cette "aventure" qui me semblait insurmontable.
ffmpeg est complexe quand on connait rien, mais pour ceux qui maîtrisent c'est un jeu d'enfant, et ça a l'air d'être un soft puissant.

Tawal a écrit :

Edit2:
Une fois la conversion des fichiers exécutée, le terminal reste ouvert dans le dossier d'origine des fichiers (là où se trouvent les flac sélectionnés)
Si tu préfères te retrouver dans le dossier créé, signale le moi wink



Je veux bien que tu ajoutes l'option, c'est par curiosité, si je souhaite m'en servir, je l'aurais.
Je la laisserais en commenté dans le script, j'aurais juste à décommenter pour l'activer wink

Merci encore, et pourtant j'ai été grincheuse et chiante au départ roll

otyugh a écrit :


Pour que le terminal reste ouvert, le plus simple est sans doute d'ajouter un "read"  à la fin :<

    xfce4-terminal -x bash -c 'for a in $@; do ffmpeg -i "$a" -c:a aac -b:a 530k -c:v copy "${a%%.*}".m4a; done; read -n1' %F


J'ai essayé par curiosité, mais ça ne fonctionne pas la commande, j'ai des erreurs de chemins inconnus.
Mais pas grave, le script et l'action custom de Tawal fonctionne nickel wink

Plus qu'a tout convertir, avec ce mini-pc, ça va être long, ce n'est pas un foudre de guerre, mais ce n'est qu'un détail ça, le résultat en vaut la chandelle, niveau qualité de son, le m4a est merveilleux, et égal au flac (avec le paramétrage actuel en tout cas).

Un rien me rend heureuse.
Merci encore à tout le monde.

Je fais quelques conversions pour voir si tout va nickel, et je passerais en résolu.

Hors ligne

#37 30-07-2022 21:50:18

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

manon a écrit :

...
niveau qualité de son, le m4a est merveilleux, et égal au flac (avec le paramétrage actuel en tout cas).
...



Nan


1. Qualité sonore

Le format FLAC est sans perte, tandis que M4A est avec perte. Par conséquent, FLAC produit une qualité sonore primordiale et claire par rapport à M4A.
 



out.gif

Dernière modification par Anonyme (30-07-2022 21:50:53)

#38 30-07-2022 22:26:28

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

@otyugh : oui, en effet, un read à la place du bash à la fin permet de garder ouvert le terminal.
Mais il se ferme dès qu'on frappe une touche (option -n1) tandis qu'avec bash à la fin, on peut entrer des commandes, bref c'est un "vrai terminal" interactif.
De plus, l'option -c de bash a une particularité $0 est le 1er argument. Donc $@ liste à partir du 2ième, on perd le 1er.
Regarde ma boucle for wink

@manon : pour se retrouver dans le dossier des .m4a créés, il suffit d'ajouter un cd "$doss" entre le done et le bash.
Le script devient alors :

#!/bin/bash

# Script de conversion flac --> m4a (Spécial pour action personnalisée de Thunar)

xfce4-terminal -x bash -c '
   doss="${0%/*}"
   doss="${doss##*/}"
   doss="$HOME/Musiques/$doss"
   [ -d "$doss" ] || mkdir "$doss"

   for f in "$0" "$@"
   do
      f_name="${f##*/}"
      ffmpeg -i "$f" -c:a aac -b:a 530k -c:v copy "$doss/${f_name%.*}.m4a"
   done
   cd "$doss"
   bash'
"$@"

exit
 



Mettre un caractère # en début de ligne pour commenter une ligne d'un script bash.

Dernière modification par Tawal (30-07-2022 22:28:52)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#39 31-07-2022 10:05:13

manon
Banni(e)
Inscription : 21-05-2020

Re : [Résolu] Conversion musique avec ffmpeg

Anonyme a écrit :

Le format FLAC est sans perte, tandis que M4A est avec perte. Par conséquent, FLAC produit une qualité sonore primordiale et claire par rapport à M4A.



Petit comparatif avec une musique en flac acheté sur Deezer, que j'ai converti avec ffmpeg au qualité maximale de chaque format
ogg avec oggenc -q 10
mp3 avec -ab 320k

Le spectogramme de fréquence est une preuve de la qualité et des défauts de chaque format compressé, même si le ogg reste assez propre, mais plus lourd que le m4a, donc au final pour un rapport poids/qualité/compression, le m4a reste la meilleure option (à mon goût évidemment, et selon le système hifi d'écoute).
Pour un casque acheté 20€ branché sur le port jack d'un pc avec sa carte son d'origine, aucune différence audible entre le flac, et un mp3 par exemple.
Mais quand on a un système un peu plus performant (le mien reste de gamme moyenne à des prix très raisonnables) la différence s'entend (manque de spatialisation notable, et un voile dérangeant qui rend le son étouffé, des aigus moins cinglants)

flac.png     m4a.png
ogg.png    mp3.png

@Tawal, parfait merci, j'ai ajouté l'option, et je l'ai commenté.
Je peux passer en résolu le sujet, tout fonctionne nickel, c'est parfaitement le fonctionnement et résultat que je voulais wink

Merci bien à tous.

Hors ligne

#40 31-07-2022 10:39:44

Jean-Pierre Pinson
Membre
Lieu : Orléans
Distrib. : Debian Sid 64bits Ordi.: Thinkpad T400
Noyau : de cerise
(G)UI : xfce
Inscription : 04-03-2017

Re : [Résolu] Conversion musique avec ffmpeg

Quel est le meilleur format audio sans perte ?
FLAC
Le FLAC : sans doute le meilleur format Lossless

Il offre notamment un format de compression “sans perte”, ce qui évite d'altérer le fichier original. Sa qualité audio s'en trouve donc bien supérieure, tout en offrant une taille de fichier limité, avec un bitrate pouvant dépasser les 1000 Kbps.
https://graphiste.com/blog/format-audio

Debian sid
Bureau : xfce
Ordinateur : Thinkpad T400 libreboot

Hors ligne

#41 31-07-2022 11:18:02

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

Tawal a écrit :


@Anonyme :
Je n'ai pas compris ce que tu voulais dire. Désolé.
Peut-être que l'exemple donné à manon te servira.
PS: je ne suis pas une poule lol




smile


Simple :

J'ai deux ou trois fichiers audios que j'ai sélectionnés parmis une multitude de fichiers audios dans un dossier.
Je veux lancer l'encodage de ceux-ci avec ffmpeg
le script espéré serait que le terminal s'ouvre un seul fois et l'encode se fasse en boucle dans ce même terminal ouvert et qu'il ne se ferme pas à la fin.

Avec sox, pour une simple lecture de fichiers audios sélectionnés, lui me donne ce résultat (sauf le maintien du terminal ouvert, pas utile pour une simple lecture), mais pas ffmpeg pour un encodage.
La seul chose que j'ai réussi à avoir, c'est un lancement du terminal pour l'encodage du premier morceaux puis fermeture de celui-ci et relance du terminal pour le deuxième morceaux et ainsi de suite 


#!/bin/bash

# sudo pacman -s sox
# Pour les mp3 installer twolame

declare -a FILES
for f; do
    if [ -r "$f" ]; then
        FILES+=("$f")
    fi
done

mate-terminal -x sox  -S -v 1.0   "${FILES[@]}"  -t alsa hw:0,0
 



Dans le terminal avec Sox :



***** - 01 - ****** - ******.flac:

 File Size: 25.7M     Bit Rate: 956k
  Encoding: FLAC          
  Channels: 2 @ 16-bit   Track: 01/13
Samplerate: 44100Hz      Album: *******
Replaygain: off         Artist: *******
  Duration: 00:03:35.16  Title: ****** - ******

In:12.0% 00:00:25.82 [00:03:09.34] Out:1.24M [ -====|====- ] Hd:0.1 Clip:0    
Skipped (Ctrl-C twice to quit).

***** - 02 - ********.flac:

 File Size: 30.9M     Bit Rate: 1.04M
  Encoding: FLAC          
  Channels: 2 @ 16-bit   Track: 02/13
Samplerate: 44100Hz      Album: ******
Replaygain: off         Artist: ******
  Duration: 00:03:57.31  Title: ******

In:2.50% 00:00:05.94 [00:03:51.36] Out:1.52M [======|======] Hd:0.0 Clip:5    
Skipped (Ctrl-C twice to quit).

***** - 03 - *******.flac:

 File Size: 31.1M     Bit Rate: 1.06M
  Encoding: FLAC          
  Channels: 2 @ 16-bit   Track: 03/13
Samplerate: 44100Hz      Album: ******
Replaygain: off         Artist: ******
  Duration: 00:03:54.09  Title: *****


 

Dernière modification par Anonyme (31-07-2022 11:36:57)

#42 31-07-2022 13:47:50

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

Donne moi le code de ton script pour l'encodage, s'il te plaît.
J'essaierai de l'adapter à ton besoin wink

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#43 31-07-2022 15:25:39

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

Tawal a écrit :

Donne moi le code de ton script pour l'encodage, s'il te plaît.
J'essaierai de l'adapter à ton besoin wink




Le bout de script que j'ai dans mon ~/.config/caja/script


flac2m4a :


for file in "$@"; do
file_name_in=$(basename "$file")
file_name_out="$(basename "$file" | sed 's/\.[^.]*$//').m4a"

mate-terminal -x ffmpeg -i "$file_name_in" -c:a aac -c:v copy "$file_name_out"  



done
 

#44 31-07-2022 16:09:01

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

Normal, que ton terminal s'ouvre et se ferme.
Car il est lancé à chaque tour de boucle.
Il faut inclure la boucle dans le terminal.
Un truc du genre :

#!/bin/bash

mate-terminal -x bash -c '
   for file in "$0" "$@"
   do
      file_name_in="${file##*/}"
      file_name_out="${file_name_in%.*}.m4a"
      ffmpeg -i "$file_name_in" -c:a aac -c:v copy "$file_name_out"
   done
   read -n1'
"$@"


Avec cela, tous les encodages se feront dans le même terminal.
Le terminal reste ouvert jusqu'à l'appui sur une touche.
Les fichiers encodés se retrouvent dans le même dossier que les fichiers originaux.


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#45 31-07-2022 18:09:57

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

@Tawal

Sur deux fichiers sélectionnés :


ffmpeg version n5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, flac, from '1 1.flac':
  Metadata:
    ARTIST          : *****
    TITLE           : *****
    ALBUM           : *****
    DATE            : 1998
    track           : 02/13
    GENRE           : Celtic
    disc            : 1/1
  Duration: 00:03:57.31, start: 0.000000, bitrate: 1042 kb/s
  Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Stream mapping:
  Stream #0:0 -> #0:0 (flac (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, ipod, to '1 1.m4a':
  Metadata:
    ARTIST          : *****
    TITLE           : *****
    ALBUM           : *****
    DATE            : *****
    track           : 02/13
    GENRE           : *****
    disc            : 1/1
    encoder         : Lavf59.16.100
  Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc59.18.100 aac
size=    3761kB time=00:03:57.30 bitrate= 129.8kbits/s speed=38.1x    
video:0kB audio:3720kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.101461%
[aac @ 0x555ad5981880] Qavg: 1004.654
ffmpeg version n5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, flac, from '2 2.flac':
  Metadata:
    ARTIST          : *****
    TITLE           : *****
    ALBUM           : *****
    DATE            : *****
    track           : 03/13
    GENRE           : *****
    disc            : 1/1
  Duration: 00:03:54.09, start: 0.000000, bitrate: 1064 kb/s
  Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Stream mapping:
  Stream #0:0 -> #0:0 (flac (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, ipod, to '2 2.m4a':
  Metadata:
    ARTIST          : *****
    TITLE           : *****
    ALBUM           : *****
    DATE            : *****
    track           : 03/13
    GENRE           : *****
    disc            : 1/1
    encoder         : Lavf59.16.100
  Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc59.18.100 aac
size=    3747kB time=00:03:54.10 bitrate= 131.1kbits/s speed=37.6x    
video:0kB audio:3706kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.091104%
[aac @ 0x55f9d7fdf8c0] Qavg: 703.918

 



100/100 fonctionnel !!!

Un grand merci smile



Tawal a écrit :

Normal, que ton terminal s'ouvre et se ferme.
Car il est lancé à chaque tour de boucle.
Il faut inclure la boucle dans le terminal...



C'est ce que je disais ... à peu près big_smile et que je ne savais pas faire tongue

Anonyme a écrit :

... que le terminal s'ouvre une seule fois et l'encode se fasse en boucle dans ce même terminal ....

Dernière modification par Anonyme (31-07-2022 18:17:55)

#46 31-07-2022 18:33:34

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Conversion musique avec ffmpeg

Au vu du retour de ton terminal, je pense qu'il serait judicieux de mettre un echo ou 2 juste après la commande ffmpeg afin de séparer chaque encodage.
Cela faciliterai la lecture du retour wink
Ça donne ceci :

#!/bin/bash

mate-terminal -x bash -c '
   for file in "$0" "$@"
   do
      file_name_in="${file##*/}"
      file_name_out="${file_name_in%.*}.m4a"
      ffmpeg -i "$file_name_in" -c:a aac -c:v copy "$file_name_out"
      echo -e "\n"
   done
   read -n1'
"$@"

Dernière modification par Tawal (31-07-2022 18:36:55)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#47 31-07-2022 18:42:30

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

Des echo "" et des echo -e avec texte colorisé ? smile

EDIT: pour manon, je vais y intégrer la génération d'un spectrum pour chaque fichiers encodés wink

Dernière modification par Anonyme (31-07-2022 18:50:35)

#48 31-07-2022 20:00:30

manon
Banni(e)
Inscription : 21-05-2020

Re : [Résolu] Conversion musique avec ffmpeg

Anonyme a écrit :

EDIT: pour manon, je vais y intégrer la génération d'un spectrum pour chaque fichiers encodés wink


Avec un spectrum généré, ça peut être intéressant pour voir si tout est clean wink

Hors ligne

#49 31-07-2022 20:10:43

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

manon a écrit :

Anonyme a écrit :

EDIT: pour manon, je vais y intégrer la génération d'un spectrum pour chaque fichiers encodés wink


Avec un spectrum généré, ça peut être intéressant pour voir si tout est clean wink



C'est en cours wink

#50 01-08-2022 05:08:42

Anonyme
Banni(e)

Re : [Résolu] Conversion musique avec ffmpeg

Bonjour,

@manon

demande à Tawal qu'il te place ceci dans ton script (à adapter bien sûr) :


spectrogram_image="${file_name_in%.*}.png"
ffmpeg -i "$file_name_out" -f wav - | ffmpeg -i - -filter_complex "showspectrumpic=s=896x448:mode=separate:fscale=lin:scale=log" -c:v png -f image2pipe - | ffmpeg -y -i - "$spectrogram_image"
 



Bien sûr, il aurait été plus simple de sortir le spectre avec sox, mais le m4a, il me le jette d'entrée.

Spectrum.png

Pied de page des forums