Debian-facile

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

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

#1 11-11-2020 17:32:58

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

[Résolu] action Perso dans Thunar (convertir en mp3)

Bonjour,
J'ai ajouté une action personnalisé dans Thunar pour convertir des musiques de Flac en Mp3 (320kbps_Stéréo) dans le menu du clic droit.

La commande que j'ai utilisé dans thunar (Edition, Config. les Actions, Action Perso. puis Modifier l'action, Commande) :

ffmpeg -i %F -acodec libmp3lame -ab 320K -joint_stereo 0 %F.mp3



Le problème est sur le nommage du fichier uniquement : lalala.flac il me nomme en lalala.flac.mp3
J'aimerai avoir directement lalala.mp3
J'ai essayé $fichier.mp3 mais ça donne .mp3
Si quelqu'un a une idée merci.

Dernière modification par Daff (12-11-2020 20:54:34)

Hors ligne

#2 11-11-2020 19:10:16

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

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Ahhhm. En une ligne ? La meilleur solution serait de faire un script. Mais je suppose que ça pourrait marcher aussi :

sh -c 'a=%F; ffmpeg -i $a ${a%.*}.mp3'



Si tu vois l'idée, tu peux adapter comme tu veux ensuite (par contre j'ai pas testé, je dis dessuite)

---

Anecodtiquement, vu que ce que tu veux faire ressemble à un truc que j'ai déjà fait pour ma maman avec zenity pour avoir une barre de progression.

https://gnuw.arzinfo.pw/permalink/08-20 … pegbar.mp4
Le script en question est là : https://gnuw.arzinfo.pw/?p=otyugh/infor … ffmpegbar/
Et ce que je mets dans actions personnalisé c'est
- En mp3 : ffmpegbar -e mp3 %F"
- En mp4 : ffmpegbar -e mp4 -a "-map 0 -vf scale=-2:720 -r 25 -c:v libx264 -preset medium -crf 30 -c:a libvorbis -q:a 3 -c:s copy" %F

D'avance oui, le code est assez crade, j'en ai peur. tongue

Dernière modification par otyugh (11-11-2020 19:20:42)


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#3 11-11-2020 22:15:43

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

J'ai vu la video de ton ffmpegbar c'est super cool

sh -c 'a=%F; ffmpeg -i $a ${a%.*}.mp3'


Je comprends l'idée du script mais c tout lol, pour l'appliquer je sais pas trop.


J'ai trouvé une autre commande qui marche dans thunar pour convertir en mp3 :

lame -h --noreplaygain -m s -b 320 %F


Il n'y a plus le problème du nom mais cette fois-ci c'est les id tag et pochettes qui disparaissent.

Hors ligne

#4 11-11-2020 23:04:11

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

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Je comprends l'idée du script mais c tout lol, pour l'appliquer je sais pas trop.


Comment ça pour l'appliquer ? Tel quel ça marche à priori. Si tu veux ajouter des arguments comme sur ta première commande, je ne vois pas pourquoi ça ne marcherai pas.

Dernière modification par otyugh (11-11-2020 23:04:36)


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#5 12-11-2020 10:16:53

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Et bien je ne sais pas me servir du script, j'ai essayé dans thunar tel quel il ne se passe rien et j'ai essayé :

sh -c 'a=%F; ffmpeg -i $a ${a%.*}.mp3' ; ffmpeg -i %F -acodec libmp3lame -ab 320K -joint_stereo 0 %F.mp3


ça donne le même résultat : lalala.flac.mp3

puis ça

sh -c 'a=%F; ffmpeg -i %F -acodec libmp3lame -ab 320K -joint_stereo 0 %F $a ${a%.*}.mp3'


Rien ne se passe, je ne sais pas où ni comment il faut mettre mes arguments
peace_flag.gif

Hors ligne

#6 12-11-2020 12:31:12

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

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Je viens de tester, ça marche pas de toute façon. Faut essayer autre chose T_T

Dernière modification par otyugh (12-11-2020 12:32:01)


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#7 12-11-2020 13:07:43

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@otyugh

Une solution ici je pense ( je ne peux pas tester ) :

https://pclosmag.com/html/Issues/201305/page09.html

DEEPL :

 La ligne " nom de base %f .ext " enlève l'ancienne extension avant d'attacher la nouvelle.




Donc l'action personnalisée dans Thunar serait :

ffmpeg -i %F -acodec libmp3lame -ab 320K -joint_stereo 0 `basename %F .flac`.mp3

Dernière modification par golgot200 (12-11-2020 13:30:03)

En ligne

#8 12-11-2020 14:08:44

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@golgot200

ffmpeg -i %F -acodec libmp3lame -ab 320K -joint_stereo 0 `basename %F .flac`.mp3


Ne fonctionne pas.

J'ai essayé autre chose, j'ai installé le paquet : rename
puis j'ai ajouté la commande pour renommer le fichier de sortie à la fin :

ffmpeg -i %F -acodec libmp3lame -ab 320K -joint_stereo 0 %F.mp3 && rename 's/.flac//' *.mp3


ça fonctionne, j'ai bien au final : lalala.mp3
mais ça marche pour un seul fichier à la fois si j'en sélectionne plusieurs ça ne fonctionne pas.

Hors ligne

#9 12-11-2020 14:48:25

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Et avec ça :

for file in %F; do ffmpeg -i "$file" -acodec libmp3lame -ab 320K -joint_stereo 0  `basename "$file" `.mp3; done

Dernière modification par golgot200 (12-11-2020 14:59:47)

En ligne

#10 12-11-2020 15:07:36

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Bien, je sais que les scripts en une ligne c'est ce qu'il y a de plus satisfaisant, je ne peux faire que l'éloge d'une telle pratique, cependant, quid d'un p'tit script?

la commande dans thunar :

/chemin/vers/mon/script %F



et le script :

#!/bin/bash

for f in "$@"; do
   ffmpeg -i "$f" -acodec libmp3lame -ab 320K -joint_stereo 0 "${f%.*}".mp3
done


avec des guillemets pour les espaces, on sait jamais.

Comme le script d'otyugh en soi! Et c'est pas mal quand on lance un script un peu long de savoir si ça travail vraiment ou pas. Et je suppose qu'il peut s'adapter sans trop de difficulté...

Dernière modification par David5647 (12-11-2020 15:10:16)

Hors ligne

#11 12-11-2020 15:29:46

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Allez, encore à moi big_smile

https://bubu1.eu/articles/thunar_custom_actions.html

for file in %F; do ffmpeg -i $file -acodec libmp3lame -ab 320K -joint_stereo 0 `echo "\`basename $file .flac\`.mp3"`; done

Dernière modification par golgot200 (12-11-2020 15:31:28)

En ligne

#12 12-11-2020 19:09:24

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@golgot200
ni l'une ni l'autre a fonctionné

@David5647
n'a pas fonctionné

En faite cette commande :

ffmpeg -i %F -acodec libmp3lame -ab 320K -joint_stereo 0 %F.mp3 && rename 's/.flac//' *.mp3


avec ou sans [rename] fonctionne mais uniquement 1 fichier à la fois. Ce qui est déjà pas mal.

Mais il doit y avoir une commande a ajouté et/ou modifié qui permettrait de traiter tous les fichiers sélectionner dans Thunar ( le %F devrait pourtant prendre en compte tous les fichiers non ?).
scratchhead.gif

Hors ligne

#13 12-11-2020 19:12:35

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@Daff

C'est bizarre que toutes ces commandes données sur différents sites ne fonctionnent pas. Il doit y avoir un truc à faire hmm

Je  vais les passer en script nautilus pour vérifier quelque chose wink

Dernière modification par golgot200 (12-11-2020 19:13:59)

En ligne

#14 12-11-2020 19:40:58

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Je suis à 100% sûr de mon script,
il y effectivement une chose que je n'ai pas précisé : il faut rendre le script exécutable :

clic droit > propriétés > permissions > Autoriser ce fichier à être exécuté

.
ou

chmod +x mon_script.sh



et bien faire attention aux chemins, voilà!

Hors ligne

#15 12-11-2020 19:59:31

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Alors comme le script de David5647 ( qui fonctionne aussi )

PS: j'ai pas les options d'encodage pour être plus sûr


#!/bin/bash

for file in "$@"; do
  ffmpeg -i "$file" "$(basename "${file/.flac}")".mp3
done



j'adapte en aveugle une action :

for file in %F; do ffmpeg -i "$file" -acodec libmp3lame -ab 320K -joint_stereo 0 "$(basename "${file/.flac}")".mp3; done



Il faut que je regarde de plus près ce %F ce que c'est smile

EDIT:
Pour %F compris
https://docs.xfce.org/xfce/thunar/4.12/custom-actions

Dernière modification par golgot200 (12-11-2020 20:06:49)

En ligne

#16 12-11-2020 20:54:02

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@David5647
ah ok, donc j'ai rendu le script exécutable, et oui ça fonctionne correctement. Superyes.gif

@golgot200
l'action en aveugle n'a pas fonctionné

[Résolu] Merci à vous pour le coup de main.

P.S : c'est dommage que ffmpeg utilise qu'un seul core du cpu pour l'encodage mais ça fait le job c'est l'essentiel.

Hors ligne

#17 12-11-2020 21:22:49

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Daff a écrit :


P.S : c'est dommage que ffmpeg utilise qu'un seul core du cpu pour l'encodage mais ça fait le job c'est l'essentiel.



Il faudrait utiliser parallel peut-être smile

En ligne

#18 12-11-2020 21:41:20

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

#!/bin/bash

for file in "$@"; do
  ffmpeg -i "$file" "$(basename "${file/.flac}")".mp3 &
done


Mais tu peux lancer plusieurs processus non? Avec un & en fin de ligne, tu les lances tous en même temps. Note : ça fait pt'être mal si tu lances sur 2000 fichiers

Hors ligne

#19 12-11-2020 22:10:22

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@golgot200
oui avec parallel c'est ce que j'ai voulu faire, j'ai essayé mais pas réussi

@David5647
ah oui effectivement, pratique ce & en fin de ligne
donc faut pas trop abusé avec le nombre simultané

Hors ligne

#20 13-11-2020 07:45:51

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Daff a écrit :

@golgot200
oui avec parallel c'est ce que j'ai voulu faire, j'ai essayé mais pas réussi



Voilà un truc qui fonctionne (Testé)



#!/bin/bash

for file ; do
echo "$file" | parallel -i -j$(nproc) ffmpeg -y -i {} -c:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 -y {.}.mp3
done
 



EDIT : parallel apparement ne fait pas son job hmm

Dernière modification par golgot200 (13-11-2020 09:11:43)

En ligne

#21 13-11-2020 09:17:02

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Là ça carbure :


#!/bin/bash

for file in *.flac; do
parallel --bar  'ffmpeg -i {} -map_metadata 0 {/.}.mp3' ::: *
done
 



Et en script nautilus : ( en sélectionnant les titres que l'on veux et parallel qui fonctionne )

mode d'emploi pour xfce, je pense:
https://unix.stackexchange.com/question … click-menu


#!/bin/bash

echo -e "$CAJA_SCRIPT_SELECTED_FILE_PATHS" | parallel --bar  'ffmpeg -i {} -map_metadata 0 {/.}.mp3' :::
 



Reste plus plus qu'à mettre ça en ouverture terminal

Dernière modification par golgot200 (13-11-2020 10:56:54)

En ligne

#22 13-11-2020 11:27:32

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@golgot200

#!/bin/bash

for file in *.flac; do
parallel --bar  'ffmpeg -i {} -map_metadata 0 {/.}.mp3' ::: *
done

Ah oui c vrai ça carbure bien sur tous les cores.

mais je me demande du coup comment adapté parallel avec mes arguments et le script de David5647, j'ai essayé mais fonctionne pas :

#!/bin/bash

for f in "$@"; do
parallel --bar 'ffmpeg -i "$f" -acodec libmp3lame -ab 320K -joint_stereo 0 "${f%.*}".mp3'
done
 



Auparavant j'avais essayé parallel avec mes arguments directement dans un terminal mais sans résultat :

parallel --bar ffmpeg -i lalala.flac -acodec libmp3lame -ab 320K -joint_stereo 0 lalala.mp3

Hors ligne

#23 13-11-2020 11:39:14

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.9.4-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

Essais ce script


#!/bin/bash

echo -e "$CAJA_SCRIPT_SELECTED_FILE_PATHS" | parallel --bar  'ffmpeg -i {} -acodec libmp3lame -ab 320K -joint_stereo 0 {/.}.mp3' :::
 



que tu mets dans un dossier que tu crée, exemple Scripts dans ton home

puis tu crée une nouvelle action avec cette commande:

sh -c `~/Scripts/TON_SCRIPT %f`



En fait tu as juste à suivre ce post :

https://unix.stackexchange.com/question … click-menu

Dernière modification par golgot200 (13-11-2020 11:44:04)

En ligne

#24 13-11-2020 15:43:50

Daff
Membre
Distrib. : Debian 10 [Main]
Noyau : Linux 4.19 (Amd64)
(G)UI : Xfce 4.12
Inscription : 12-07-2019

Re : [Résolu] action Perso dans Thunar (convertir en mp3)

@golgot200

oui j'avais bien compris pour le script a enregistré dans un fichier et créer l'action dans thunar, mais le script n'a rien donné.

sinon je ne comprend pas pourquoi sa ça marche :


#!/bin/bash

for file in *.flac; do
parallel --bar  'ffmpeg -i {} -map_metadata 0 {/.}.mp3' ::: *
done



et la commande avec les arguments ça ne marche plus :


parallel --bar  'ffmpeg -i {} -acodec libmp3lame -ab 320K -joint_stereo 0 {/.}.mp3' ::: *
 



mais bon pas grave
je vais laisser parallel de côté pour le moment

Hors ligne

Pied de page des forums