Forum Linux.debian/ubuntu [Résolu] Créer un alias à l'intérieur d'un logiciel

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
9
juin
2021

Bonjour,
Utilisant très régulièrement le logiciel ffmpeg pour compresser mes fichiers vidéos, je me demandais s'il était possible de créer un alias qui me permettrait de lancer une commande spécifique de ffmpeg. Je m'explique, la ligne que j'utilise pour la compression est la suivante :

ffmpeg -i cible.mkv -vcodec libx265 -crf 20 resultat.mkv

Mon but serait de de créer un alias que je nommerais par exemple "compress" et qui me permettrait d'avoir uniquement à entrer les noms du fichier cible et du fichier converti afin d'arriver à ceci :

compress cible.mkv resultat.mkv

En vous remerciant par avance !

  • # Envisager de passer sur un script

    Posté par  . Évalué à 9. Dernière modification le 09/06/21 à 12:06.

    alias ne gère pas les paramètres, il se contente juste de les passer à l'appel cible tels quels, sans les réorganiser ou quoi que ce soit.
    Pour cacher un (des) appel(s) complexe(s) derrière une commande toute simple, le mieux est de passer sur un script shell.

    Là comme ça, je pense que ce script ferait l'affaire :

    !#/bin/sh
    ffmpeg -i $1 -vcodec libx265 -crf 20 $2

    Dans un fichier compress.sh que tu invoquerais par exemple avec ./compress.sh entree.mkv sortie.mkv. C'est moins minimaliste et ça paraît moins efficace, mais c'est la solution la plus adaptée je pense.

  • # fonction bash

    Posté par  . Évalué à 7.

    Une simple fonction bash:
    compress() { ffmpeg -i $1 -vcodec libx265 -crf 20 $2; }

    • [^] # Re: fonction bash

      Posté par  (site Web personnel) . Évalué à 10.

      Mieux vaut éviter les problèmes de noms de fichiers barbares en quotant les variables :

      compress() { ffmpeg -i "$1" -vcodec libx265 -crf 20 "$2"; }

      « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

  • # Résolu

    Posté par  . Évalué à 5.

    Un grand merci pour vos réponses et la rapidité de celles-ci ! Tout fonctionne bien.

    • [^] # Re: Résolu

      Posté par  . Évalué à 10.

      et au passage, compress est une commande système :)
      donc peut-être utiliser un autre nom

      • [^] # Re: Résolu

        Posté par  (site Web personnel) . Évalué à 2. Dernière modification le 10/06/21 à 14:11.

        compress est très certainement le nom d'une commande existante et tu as tout à fait raison de pointer ce souci. Mais ce n'est pas une commande système, en tout cas sur Fedora 33.

        « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

    • [^] # Re: Résolu

      Posté par  . Évalué à 3.

      Pour te faciliter l'invocation de ton script dans ton terminal (faire directement un compress cible.mkv resultat.mkv au lieu de ./compress cible.mkv resultat.mkv), tu peux mettre sans souci ton script dans le dossier /usr/loca/bin/ qui est dédié aux programmes "non-officiels". Si tu veux vérifier que ce dossier est fait pour les programmes, tu as cette commande qui va te l'afficher si c'est le cas:

      echo $PATH | grep -o /usr/local/bin

      $PATH est la variable d'environnement qui te donne les chemins que ton ordinateur considère comme les dossiers contenant les programmes que tu peux invoquer directement dans le terminal.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.