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

Debian-facile

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

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

#1 11-05-2020 17:49:53

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

Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Bonjour,

Je n'ai jamais réussi à faire ce truc.

Par l'appel d'un seul script ouvrirait un terminal + une commande d'encodage en boucle dans celui-ci.
Il ne faut pas que celui-ci ce ferme à chaque fois.

Une idée smile

Dernière modification par golgot200 (12-05-2020 22:29:36)

Hors ligne

#2 11-05-2020 18:33:51

Croutons
Membre
Distrib. : Debian10 Buster
Noyau : Linux 4.19.0-16-amd64
(G)UI : Mate
Inscription : 16-12-2016

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Hello
Bon j'y connais pas grand chose mais j'ai fouillé un peu vite fais
https://openclassrooms.com/fr/courses/4 … es-boucles
ce qui donne avec un petit script test.sh

#!/bin/bash

while [ test ]
do
        echo 'Action en boucle'
       
done



le rendre exécutable

chmod +x test.sh


./test.sh


Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
Action en boucle
 


(un petit Ctrl + c pour stop la boucle)

Dernière modification par Croutons (11-05-2020 18:34:14)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#3 11-05-2020 21:41:53

Alyve
Adhérent(e)
Lieu : Belgique
Distrib. : Debian Sid
Noyau : Linux 5.6.0-1-amd64
(G)UI : i3 ftw
Inscription : 31-07-2011
Site Web

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Tu veux qu'il continue de tourner sans vraiment le voir ?
Sinon, tu peux juste faire:

./toncript.sh &


Il rendra la main à l'interpréteur et gardera ton PID.
Sinon pour ouvrir un terminal directement avec une commande (ça dépend du terminal), tu peux aussi le lancer avec une commande en particulier:

gnome-terminal -x './tonscript'


Mais j'avoue avoir du mal à comprendre ta question. ^^


Dell Latitude E7450 • Debian Sid • i3
Fairphone 3 • Lineage OS • Pie
BlogShaarliMastodon

Hors ligne

#4 11-05-2020 21:48:17

phlinux
Membre
Distrib. : Buster
Noyau : 4.19
(G)UI : Openbox (+Rox+Feh)
Inscription : 10-05-2009

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Je comprends que le script ouvre un terminal dans lequel s'effectue la commande de boucle.

Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent

Hors ligne

#5 12-05-2020 09:53:39

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Bonjour,

Tout d'abord merci pour votre aide.

@phlinux

Oui, c'est ça. Je ne m'explique pas sur un truc, j'ai un script qui me fais bien ça avec sox que je post ici pour le style. Ce script est placé dans mon ~/.config/caja/scripts
C'est en fait un script nautilus qui par une sélection au détail sur quelques fichiers audio me les lis dans un terminal unique pour le visuel. ( ceci se fait par le clic droit contextuel -- Scripts)

Sox.png

J'ai sélectionné 2 morceaux que je lis toujours dans ce même terminal. Il ne se ferme pas à la fin du premier morceau pour ce réouvrir sur la lecture du second titre.


#!/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




J'arrive avec ffmpeg par un mate-terminal -x sh -c "la_commande ffmpeg" à faire un truc qui si rapproche, mais c'est une ouverture/fermeture et ainsi de suite du terminal ...

vv222 à fait un script qui me plait bien, mais c'est transparent sur l'encodage en masse des fichiers.
Si on ne met pas une notification à la fin du job, on ne sait pas si celui-ci est fini.

Son script :
https://debian-facile.org/viewtopic.php?id=27255


#!/bin/sh
set -o errexit

###
# Convert the list of audio files given as arguments to this script to FLAC
# ffmpeg is used for the conversion
###

for source_file in "$@"; do
        target_file="${source_file%.*}.flac"
        ffmpeg -i "$source_file" "$target_file"
done

exit 0
 



Sans une option -y ajoutée entre  "$source_file" et "$target_file" on peut attendre longtemps la confirmation de l'écrasement qui donne :



#!/bin/sh
set -o errexit

###
# Convert the list of audio files given as arguments to this script to FLAC
# ffmpeg is used for the conversion
###

for source_file in "$@"; do
        target_file="${source_file%.*}.flac"
        ffmpeg -i "$source_file" "$target_file"
done

exit 0
 

Dernière modification par golgot200 (12-05-2020 10:00:30)

Hors ligne

#6 12-05-2020 22:28:57

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

C'est pas dans mon habitude, mais là je dépose les armes. Je pense que ce n'est pas possible et ce n'est pas faute d'avoir cherché.

Hors ligne

#7 12-05-2020 23:50:20

MicP
Membre
Inscription : 29-02-2016

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Bonsoir golgot200

Les deux derniers scripts dans ton dernier message sont identiques.

Dans le dernier script, tu as sans doute oublié
d'ajouter le -y entre "$source_file" et "$target_file"

=======

golgot200 a écrit :

… Si on ne met pas une notification à la fin du job, on ne sait pas si celui-ci est fini. …

Tu pourrais installer le paquetage libnotify-bin
ce qui te permettra d'ajouter dans ton script, juste après la ligne contenant done
la ligne de commande suivante :

notify-send -t 30000 "Les conversions audio sont terminées."

(le paramètre suivant -t est la durée d'affichage en millisecondes => 30000 <=> 30 secondes)

=======
Après y avoir installé le paquetage libnotify-bin,
je viens de tester avec succès la commande notify-send
sur une machine virtuelle debian 10 (buster) avec l'environnement de bureau MATE

Dernière modification par MicP (12-05-2020 23:51:38)

Hors ligne

#8 13-05-2020 00:07:46

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Bonsoir,

Oui exact, ça c'est pour le script de vv222. L'option -y, c'est ce que je lui ai suggéré pour la confirmation d'écrasement sans attendre une confirmation d'écrasement d'un doublon éventuel.
Sans, son script ne pouvait pas continuer (pas de visuel). La notification, je l'utilise déjà sur mes scripts de même genre.

C'est pour celà que je cherchais une autre méthode : Clic droit -- encoder -- tout en visuel dans un même terminal (et un seul script). Pas un script qui lance un autre.
Mais sur le net, mis à part un << mate-terminal -x sh -c "la_commande" >> qui me fera un ouvrir/fermer ... ouvrir/fermer  et ainsi de suite du terminal jusqu'à la fin du traitement de tous les fichiers sélectionnés, je ne trouve rien smile

Dernière modification par golgot200 (13-05-2020 00:10:57)

Hors ligne

#9 13-05-2020 04:17:15

MicP
Membre
Inscription : 29-02-2016

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Bonjour

La méthode que j'ai utilisée
consiste à faire créer un fichier temporaire créé dans /temp
dans laquelle les listes de fichiers seront envoyées.

Tant que la première liste de fichiers n'a pas été convertie
les listes suivantes se rajouteront à la suite dans le fichier temporaire

Et quand tous les noms de fichiers contenus dans le fichier temoraire
ont été traités, la fenêtre se fermera

Au besoin, si tu veux qu'un message de notification
apparaisse pour te signaler que le script a terminé son travail,
tu pourras le faire avec la commande notify-send
qui est dans le paquetage libnotify-bin

J'ai testé ça en envoyant la liste des fichiers sur une ligne
comme paramètre du script gestionListeConversion.sh
qui ouvrira mate-terminal en lui faisant exécuter le script conversion.sh
auquel il donne en paramètre le nom du fichier temporaire dans /temp
qui contiendra la liste des fichiers à convertir

Mes tests ont bien fonctionné
puis qu'avant que le premier paquet de noms de fichiers ait été affiché dans la fenêtre
j'envoyais un autre paquet de fichiers qui s'est ajouté à la liste à traiter
sans ouvrir une autre fenêtre de terminal.

Mais il me manque juste à savoir comment intégrer le script gestionListeConversion.sh
dans Nautilus pour finir les test.

Pour l'instant, la fenêtre affiche seulement le nom de chaque fichier
de la liste et patiente pendant deux secondes entre chaque fichier
parce que pour les tests, j'ai inhibé les lignes de commande
qui permettent la véritable conversion du fichier.

Ils sont donc simplement affichés un a un
avec 2 secondes de délais entre chaque nom de fichier,
ce qui me donne le temps d'envoyer un autre paquet de noms
pour vérifier le fonctionnement.

Si, après intégration dans Nautilus du script gestionListeConversion.sh
tu arrives à voir la liste avec un fichier par ligne,
il te suffira de décommenter les 2 lignes

#    target_file="${source_file%.*}.flac"
#    ffmpeg -i "$source_file" "$target_file"

et de commenter ou supprimer la ligne

     echo "conversion de $source_file" ; sleep 2



Si les fichiers apparaissent sur une seule ligne,
il faudra jouer avec IFS ou autre dans les boucles while
pour adapter tout ça,
parce que pour l'instant, je ne sais pas comment se présente
une liste de fichiers sélectionnée dans Nautilus
et envoyée dans un script.

=======
Dis moi comment tu as procédé pour intégrer ton script dans Nautilus

Merci.

EDIT : je viens de trouver, j'y travaille,et j'ai même trouvé une idée pour n'en faire qu'un seul script.
=======

#!/bin/bash

# conversion.sh

# Script de conversion qui traitera la liste
# contenue dans le fichier dont le nom est donné en paramètre
# et qui sera lancé par l'autre script dans une fenêtre de terminal

while read source_file; do
#  Les 2 lignes suivantes sont inhibées pendant les premiers tests
#    target_file="${source_file%.*}.flac"
#    ffmpeg -i "$source_file" "$target_file"
     echo "conversion de $source_file" ; sleep 2
done < "$1"
rm "$1"
# Ici, tu mettras la commande "notify-send" pour signaler la fin des conversions
 


#!/bin/bash

# gestionListeConversion.sh

# Script pour Nautilus qui recevra les listes des fichiers à traiter
#  et qui lancera le script de conversion dans une fenêtre de terminal
#   ( À adapter pour le faire lancer depuis Nautilus
      je n ai encore jamais appris à faire fait ça pour Nautilus )
   
params="$@"
nomScr="${0##*/}"

scr="/home/michel/conversion.sh"   # tu adapteras le chemin en fonction de l'endroit où tu mettras tes scripts
titre="Conversion des fichiers audio"
options="--hide-menubar"

CreeAjConv () {
    lstTmp=$(mktemp -p/tmp --suffix=.$UID_$nomScr XXXX)
    ajout
    # lancer louverture d'une fenêtre de terminal
    # avec le nom du script de conversion et le nom du fichier "$lstTmp"
    # et dans laquelle s'afficheront les messages de conversion
    mate-terminal --command="$scr $lstTmp" --title="$titre" "$options"     # j'ai testé avec succès cette ligne de commande dans une machine virtuelle debian MATE
}

ajout () {
    while read fich; do
        printf "%s\n" "$fich" >> "$lstTmp"
    done <<< "$params"
}

##############
lstTmp=$(find /tmp -name ????.$UID_$nomScr 2>/dev/null)
[ -z "$lstTmp" ] && CreeAjConv || ajout

Dernière modification par MicP (13-05-2020 10:17:28)

Hors ligne

#10 13-05-2020 10:26:49

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Bonjour MicP

Merci pour ton travail. Tu dois dormir en ce moment big_smile big_smile big_smile

Alors, j'avoue que j'ai eu du mal à le faire partir.
J'ai mis un # devant :  je n ai encore jamais appris à faire fait ça pour Nautilus )
J'ai mis un rm -f $lstTmp car le script ne fonctionnait qu'une fois autrement.
Il fonctionne bien pour un fichier sélectionné mais pas plus. Je sais pourquoi mais je n'arrive pas à l'expliquer. ( une succession de files)

Donc, pour intégrer tout ça à nautilus, c'est tout con. j'ai pour ton travail mis dans un dossier Scripts, qui ce trouve dans mon répertoire personnel, conversion.sh
et gestionListeConversion.sh dans ~/.config/Caja/scripts
Dans mon clic-droit -- Scripts : je trouve donc gestionListeConversion.sh (si exécutable)
Je peux donc sélectionner les fichiers de mon choix et lancer le travail.

Mais je pense qu'il il y a plus simple (mais vraiment plus simple) Mais voilà, tu risques de tiquer  sur la méthode smile

Alors voilà en gros. Les noms compliqués avec des espaces, des parenthèses ou des croches etc etc ça passe. J'ai mis comme tu m'as dis un IFS.
J'ai vraiment allégé. tongue

Dans mon dossier ~/Scripts


#!/bin/bash

IFS='
'

for file in $CAJA_SCRIPT_SELECTED_FILE_PATHS
do
      output="${file%.*}.flac"
       ffmpeg -i $file -y $output  
done
notify-send --urgency=low -i lollypop "Conversion Terminée"
 



$CAJA_SCRIPT_SELECTED_FILE_PATHS au lieu de $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS vu que je suis sous Mate

Et dans ~/.config/caja/scripts
le script : gestionListeConversion.sh qui n'a plus que le nom tongue


#!/bin/bash

scr="$HOME/Scripts/conversion.sh"
mate-terminal -x bash -c "$scr"
 



EDIT: Par contre, j'aimerais bien laisser ce terminal ouvert à la fin du job .... je cherche ...
EDIT 2 : Apparement :

mate-terminal -x bash -c "$scr; exec $SHELL"



laisse bien le terminal ouvert en fin de job.

Dernière modification par golgot200 (13-05-2020 11:10:58)

Hors ligne

#11 13-05-2020 11:17:19

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

De plus un ctrl + c dans le terminal sur un fichier en cours d'encodage stop bien, et passe au morceau suivant. ça me convient smile

Dernière modification par golgot200 (13-05-2020 11:17:45)

Hors ligne

#12 13-05-2020 11:58:23

MicP
Membre
Inscription : 29-02-2016

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Merci pour ton retour.

J'ai fait fonctionner le script sans aucun problème…
mais c'était juste après avoir fait une installation toute neuve de debian MATE

Puis, petit à petit, quelques heures plus tard,
le comportement des scripts est devenu incohérent.
et tout ça sans avoir modifié les scripts.

=======
Si tu mets un retour à la ligne dans IFS, c'est logique qu'il ne puisse plus
que traiter un seul fichier à la fois.

La liste des fichiers sélectionnés
est retournée par caja sous la forme d'une ligne
dont les noms de fichiers sot séparés par un caractère espace.

Et donc, bien sûr, s'il y a des espaces dans les noms de fichiers,
forcement, il sera impossible de différencier une espace dans le nom d'un fichier
d'une espace qui sépare deux noms de fichiers.

Dernière modification par MicP (13-05-2020 19:56:49)

Hors ligne

#13 13-05-2020 12:39:03

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Tiens, j'ai ajouter une option pour faire l'impasse sur les fichiers déjà en flac.
Ça vaut ce que ça vaut, mais ça fonctionne. On passe au suivant.


#!/bin/bash

IFS='
'

for file in $CAJA_SCRIPT_SELECTED_FILE_PATHS
do
#filename="$( file "$file" |awk -F ":" '{print $1}')"
filesubtype="$(file -bi "$file" | awk -F "; " '{print $1}' | awk -F "/" '{print $2}')"
if [ "$filesubtype" != flac ]; then
      output="${file%.*}.flac"
       ffmpeg -i $file -y $output
fi

if [ "$filesubtype" = flac ]; then
notify-send "Flac détecté ... suivant"  -t 1000
sleep 2
fi  
done
notify-send --urgency=low -i lollypop "Terminée"
 



EDIT: Plus qu'à ajouter une condition "audio"

Dernière modification par golgot200 (13-05-2020 12:53:00)

Hors ligne

#14 14-05-2020 16:47:07

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside


#!/bin/bash

scr="$HOME/Scripts/conversion"  
mate-terminal -x bash -c "$scr; exec $SHELL"
 






#!/bin/bash

IFS='
'

for file in $CAJA_SCRIPT_SELECTED_FILE_PATHS
do

filesubtype=$(ffprobe "$file" 2>&1 | awk  '/Audio:/ { print $4 }' | tr -d ',')
filetype=$(ffprobe "$file" 2>&1 | awk  '/Audio:/ { print $3 }' | tr -d ':' | wc -l)

echo "Proceed..."


if [ "$filetype" -eq "1" ] && [ "$filesubtype" != flac ]; then
      output="${file%.*}.flac"
       ffmpeg -i $file -y $output
fi

if [ "$filesubtype" = flac ]; then
notify-send "Flac détecté ... suivant"  -t 1000
sleep 2

fi

if [ "$filetype" -eq "0" ]; then
notify-send "Fichier invalide"  -t 1000
sleep 2

fi  

done
notify-send --urgency=low -i lollypop "Terminée"
 

Dernière modification par golgot200 (14-05-2020 16:49:00)

Hors ligne

#15 14-05-2020 17:10:34

nam1962
Banni(e)
Distrib. : Manjaro, Debian, Xebian, Yunohost
Noyau : Ca dépend
(G)UI : Xfce
Inscription : 02-08-2017

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

Hello, je ne sais pas si le lanceur que j'utilise pour lancer mes mises à jour flatpak répond au cahier des charges :

[Desktop Entry]
Version=1.0
Type=Application
Name=Flatpak maj
Comment=
Exec=sh -ic "flatpak update -y; exec bash"
Icon=aim
Path=
Terminal=true
StartupNotify=false



Il ouvre le terminal, puis y visualise l'exécution de la commande.

Dernière modification par nam1962 (14-05-2020 17:14:39)


Almanet doLys de l'open source : mon tuto pour optimiser / finaliser une install
Manjaro Xfce - Debian Xfce - Yunohost - Xebian Et vous ?
61 convertis  IRL (n'ont pas eu le choix...).

Hors ligne

#16 14-05-2020 18:26:13

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

Re : Abandon Script Un terminal unique s'ouvre suivi d'une commande inside

@nam1962

Bonsoir, je regarde ça plus tard wink


Pour la conversion on pourrait mettre pour éviter les images incorporées et ce message :

[flac @ 0x55cfa615f740] Video stream #0 is not an attached picture. Ignoring



un :

-map a



ça serait plus rapide pour les mp4 et les mkv.

et aussi :

encoding as 24 bits-per-sample



passer en 16bits tout les fichiers.


Ce qui ferait une commande :

ffmpeg -i $file -map a -c:a flac -sample_fmt s16 -y $output





Proceed...
ffmpeg version n4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.3.0 (Arch Linux 9.3.0-1)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --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-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/patrick/Desktop/Digitalo - Never Say Never/Digitalo - Never Say Never.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:05:55.06, start: 0.000000, bitrate: 941 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 808 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:1 -> #0:0 (aac (native) -> flac (native))
Press [q] to stop, [?] for help
Output #0, flac, to '/home/patrick/Desktop/Digitalo - Never Say Never/Digitalo - Never Say Never.flac':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
    Stream #0:0(und): Audio: flac, 44100 Hz, stereo, s16, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      encoder         : Lavc58.54.100 flac
size=   36711kB time=00:05:55.05 bitrate= 847.0kbits/s speed= 236x    
video:0kB audio:36702kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.022263%
Proceed...
ffmpeg version n4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.3.0 (Arch Linux 9.3.0-1)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --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-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/patrick/Desktop/Digitalo - Never Say Never/Digitalo - Never Say Never (ZYX Extended Version).mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:07:27.05, start: 0.000000, bitrate: 158 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 320x240 [SAR 1:1 DAR 4:3], 28 kb/s, 6 fps, 6 tbr, 90k tbn, 12 tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 05/11/2020.
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
Stream mapping:
  Stream #0:1 -> #0:0 (aac (native) -> flac (native))
Press [q] to stop, [?] for help
Output #0, flac, to '/home/patrick/Desktop/Digitalo - Never Say Never/Digitalo - Never Say Never (ZYX Extended Version).flac':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
    Stream #0:0(und): Audio: flac, 44100 Hz, stereo, s16, 128 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
      encoder         : Lavc58.54.100 flac
size=   39780kB time=00:07:27.05 bitrate= 728.9kbits/s speed= 260x    
video:0kB audio:39771kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.020545%

 



EDIT:


#!/bin/bash

scr="$HOME/Scripts/conversion"  
mate-terminal -x bash -c "$scr; exec $SHELL"
 




#!/bin/bash

IFS='
'

for file in $CAJA_SCRIPT_SELECTED_FILE_PATHS
do

DIR=$(xdg-user-dir DESKTOP)
CONVERT_FILE=$DIR/FLACS

filesubtype=$(ffprobe "$file" 2>&1 | awk  '/Audio:/ { print $4 }' | tr -d ',')
filetype=$(ffprobe "$file" 2>&1 | awk  '/Audio:/ { print $3 }' | tr -d ':' | wc -l)

echo "Proceed..."

## CONDITION:
## UN SEUL STREAM AUDIO ET QUE CELUI-CI NE SOIT PAS AU FORMAT FLAC.
if [ "$filetype" -eq "1" ] && [ "$filesubtype" != flac ]; then
   [ -d "$CONVERT_FILE" ] || mkdir "$CONVERT_FILE"
      output="${file%.*}.flac"
      ffmpeg -i "$file" -map a -c:a flac -sample_fmt s16 -y "$output"
      mv "$output" "$CONVERT_FILE"  

fi

## SI C'EST DÉJÀ UN FLAC.
if [ "$filesubtype" = flac ]; then
notify-send "Flac détecté ... suivant"  -t 1000
sleep 2

fi

## FICHIERS SANS AUDIO.
if [ "$filetype" -eq "0" ]; then
notify-send "Fichier invalide"  -t 1000
sleep 2

fi  

done
notify-send --urgency=low -i lollypop "Terminée"
 

Dernière modification par golgot200 (30-05-2020 00:03:45)

Hors ligne

Pied de page des forums