Salut,
J'encode beaucoup de vidéos en HEVC et j'utilise différentes options. Typiquement, sur cette base :
Je greffe ces options :
$ffmpeg -i file.MP4 -c:a libvorbis -c:v libx265 -map_metadata 0 -y file.mp4
- -crf xx (la qualité globale)
- -preset slow (le temps de travail)
- -ss xx:xx:xx -t xx:xx:xx (je coupe le temps qui m'intéresse)
- -vf eq=contrast / brightness / saturation / gamma
Et c'est très laborieux de modifier/retaper les lignes entières, évidemment. J'aimerais pouvoir appeler un script qui me demanderait uniquement ces options (et les noms peut-être)…
Par exemple :
$ ./script_encodage
Nom : file.MP4 (avec autocomplétion si possible, mais pas obligatoire) (ENTRÉE)
Nom_sortie : file.mp4
Qualité : 23 (ENTRÉE)
Vitesse : fast (ENTRÉE)
Filtre : (ENTRÉE)
Section : 00:00:05 -t 00:00:16
Me lancerait cette commande :
$ffmpeg -i file.MP4 -c:a libvorbis -c:v libx265 -crf 23 -preset fast -ss 00:00:05 - t 00:00:16 -map_metadata 0 -y file.mp4
C'est faisable/gérable ou bien il vaut mieux que je passe par autre chose que bash (que je connais très peu) ? Merci ! :)
# mes scripts...
Posté par NeoX . Évalué à 3.
généralement je fais des petits scripts très basiques comme ca
on peut surement faire mieux, mais ca donne une idée
ensuite tu donnes les droits +x à ton script
chmod 755 tonscript.sh
et tu l'utilises comme çà
./tonscript.sh masource.MP4 masortie.mp4 23 fast '' 00:00:05 00:00:16
certes ca pose pas de question,
ca ne fait pas l'autocompletion
mais ca fait deja une partie du boulot
[^] # Re: mes scripts...
Posté par ninis666 . Évalué à 1.
Ha pas sûr que ça ne fasse pas l'autocompletion (super la double négation :) ) : ton shell (au moins bash) devrait le permettre.
# Faisabilité
Posté par YetiBarBar . Évalué à 1.
Tu peux faire cela à l'aide de read. Ci dessous un court exemple:
read -p "Qualité : " QUALITY
echo $QUALITY
Pour le choix du langage, tout dépend du niveau de contrôle que tu veux y mettre (ça peut vite être galère en Bash si tu veux contrôler que le fichier existe, que tu n'écrases pas un fichier existant dans la sortie, …).
PS: pas d'auto complétion dans l'exemple.
[^] # Re: Faisabilité
Posté par wismerhill . Évalué à 2.
Mauvais exemple, c'est une des choses les plus faciles à faire avec bash:
(et non, ce n'est pas une erreur qu'il n'y ait pas de guillemets autours de la variable)
Ajouter un message d'erreur est laissé comme exercice au lecteur ;-)
# Utilise la commande history
Posté par MicP . Évalué à 2. Dernière modification le 02 juillet 2021 à 11:31.
Il te faut utiliser les touches flèches vers le haut plusieurs fois (et flèche vers le bas) pour "rappeler" les dernières lignes de commandes entrées,
et avec les touches flèches droite et gauche tu pourras aller positionner le curseur sur ce que tu veux modifier dans la ligne
avant d'appuyer sur la touche Entrée.
Pour visualiser les dernières lignes de commande(s) entrées,
entre simplement la ligne de commande suivante :
Tu pourras lire le manuel de la commande
history
en entrant la ligne de commande suivante :
Dans ta ligne de commande, tu peux aussi utiliser une variable
après l'avoir déclarée :
comme ça tu n'a plus qu'à relancer la même ligne de commande en ayant juste changé la valeur d'une ou plusieurs variables :
[^] # Commentaire supprimé
Posté par MicP . Évalué à 1. Dernière modification le 02 juillet 2021 à 11:31.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Modération
Posté par gUI (Mastodon) . Évalué à 2.
Modification effectuée, merci
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Modération
Posté par MicP . Évalué à 1.
Merci :)
[^] # Re: Utilise la commande history
Posté par Stinouff . Évalué à 1.
Hélas, c'est bien ce système qui m'est laborieux…J'ai littéralement des centaines de vidéos à faire et je fatigue d'utiliser les flèches, d'ajouter des presets, d'en oublier par erreur, etc. :)
[^] # Re: Utilise la commande history
Posté par wismerhill . Évalué à 2.
Alors ce qu'il te faut, c'est faire une boucle, pour appliquer la même commande à plusieurs fichiers.
Supposons que tes vidéos sont (éventuellement via des liens symboliques) dans le répertoire orig, et que tu veux les résultats dans le répertoire dest, ça donnerait:
Ça te donnera les fichiers recodés, avec le même nom, dans le répertoire dest.
[^] # Re: Utilise la commande history
Posté par Stinouff . Évalué à 1.
Hélas, chaque fichier a besoin d'un traitement spécifique pour une optimisation qualitaille (mot-valise gratuit du jour !). :p
J'appliquais ce système mais je me retrouvais quand même à retoucher de nombreuses vidéos…:)
[^] # Re: Utilise la commande history
Posté par wismerhill . Évalué à 2.
Alors tu peux préparer les commandes dans un fichier, une par ligne, ça fait techniquement un script que tu peux lance avec bash, comme ça un fois lancé il va enchainer les fichiers et tu peux le laisser tourner pendant la nuit.
À coup de copier/coller, ça peut aller assez vite.
Je recommande de mettre un "set -e" au début du fichier, pour qu'il s'arrête si une des commandes échoue (sinon ça risque de passer inaperçu).
[^] # Re: Utilise la commande history
Posté par NeoX . Évalué à 3.
sinon y a handbrake
avec une interface graphique dans laquelle tu charges les fichiers, tu définis les réglages,
ca génère une playlist de conversion
tu lances la playlist, ca bosse,
et à la fin tu as tes fichiers modifiés dans le dossier cible
# Raccourcis clavier
Posté par MicP . Évalué à 2. Dernière modification le 02 juillet 2021 à 14:51.
Quelques raccourcis clavier qui fonctionnent par défaut sur mon système debian Xfce
pour éditer la ligne de commande :
Ctrl-Flèches
Droite ou Gauche pour se déplacer mot par motCtrl+u
pour supprimer tout ce qu'il y a avant le curseurCtrl+k
pour supprimer tout ce qu'il y a après le curseurCtrl+w
pour supprimer le mot précédant le curseurÉchap
suivit de$
pour compléter le nom d'une variableÉchap
suivit deu
pour mettre le reste du mot en majuscule (u
pcase)Échap
suivit del
(L minuscule) pour mettre le reste du mot en minuscule (l
owercase)[^] # Re: Raccourcis clavier
Posté par deuzene (site web personnel) . Évalué à 3.
Et
Alt+d pour supprimer le mot à droite
Alt+backspace un peu plus fin que Ctrl+w (supprime doc/ dans /usr/share/doc/)
Esc+. ou Alt+. pour rappeler le dernier argument
Esc+_ pour annuler la dernière frappe (sorte de ctrl+z)
sans oublier Ctrl+r pour rechercher dans l'historique (associé à FZF c'est encore mieux).
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
# Torché à l'arrache
Posté par octane . Évalué à 3.
dans l'ordre, tu lances ./script.sh file1.MP4 fileout.mp4
$1 -> premier argument (comme ça tu as l'autocomplétion du shell)
$2 -> second argument
ensuite, read variable va te demander une variable, si tu fais entrée, la variable n'est pas renseignée (elle n'existe pas)
[ -z $ratio ] --> Ca veut dire, on teste si la variable ratio existe
&& --> si la condition est vraie ($ratio n'existe pas)
ratio="plop" -> on lui met la valeur par défaut
En gros, soit $ratio vaudra "plop" soit la valeur que tu lui met.
et la ligne de commande à la fin ça va être du genre
penses à bien quoter les variables pour éviter les pb d'espace. Y'a 0 gestion d'erreurs, donc si tu entres n'imp, ça fera n'imp.$ ffmpeg -i "$1" -c:a "$libvorbis" -c:v "$libx265" -crf "$crf" -preset "$fast" -ss "$ss" -map_metadata 0 -y "$2"
[^] # Re: Torché à l'arrache
Posté par Stinouff . Évalué à 1.
Merci. :)
Je vais passer mon après-midi à créer un script qui me fera gagner 4 secondes de travail par vidéo. :D
[^] # Re: Torché à l'arrache
Posté par NeoX . Évalué à 2.
mais que tu garderas dans un coin, et tu n'auras pas à refaire ce travail pour les prochaines vidéos à convertir
# Usine à Gaz fait maison ^^
Posté par Julien_J06 . Évalué à 1.
Hello,
J'avais un problème similaire pour recouper les vidéos enregistrée avec la Freebox (j'enregistre toujours un peu avant et un peu après, et aussi pour supprimer les pubs)
J'étais parti d'un truc simple et au final j'ai fait un script un peu usine à gaz mais ça m'a permis d'apprendre un peu le bash comme ça
il est ici : https://prog.ynh.fr/nextcloud/s/7PscKWFJas2QfYj
Je t'invites à le lire avant de l'utiliser, il doit être assez commenté pour être compréhensible. Il nécessite pas mal d'amélioration (et je vais inclure certaine idées trouvée dans ce thread)
Julien_c'est_bien (y'a pas que Seb)
[^] # Re: Usine à Gaz fait maison ^^
Posté par Stinouff . Évalué à 2.
Haha, effectivement, tu voulais un truc très interactif…Je vais finir par faire un programme en Python à ce rythme d'idées ! :p
Merci du partage. :p
[^] # Re: Usine à Gaz fait maison ^^
Posté par Julien_J06 . Évalué à 1.
Yep au final je me suis autant pris au jeux de découvrir le bash que de faire répondre à mon problème. Je suis content ça ma bien servi d'apprendre un peu le bash :-)
Julien_c'est_bien (y'a pas que Seb)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.