• [^] # Re: Expérience depuis 8 ans.

    Posté par . En réponse à la dépêche Archiver ses vidéos : retour d’expérience. Évalué à 2. Dernière modification le 06 février 2024 à 22:43.

    Salut,

    Voilà le premier (pardon pour la mise en forme, je galère sur linuxfr avec ça).

     #!/bin/bash
     # Fichier d'entrée
     read -e -p "Fichier d'entrée : " input_file
     # Résolution
     read -e -p "Résolution (vide pour origine) : " resolution
     if [[ ! -z "$resolution" ]]; then
     resolution="-s $resolution"
     fi
     # Codec audio
     read -e -p "Codec audio (par défaut: libopus) : " audio_codec
     if [[ -z "$audio_codec" ]]; then
     audio_codec="libopus"
     fi
     # Codec vidéo
     read -e -p "Codec vidéo (par défaut: libx265) : " video_codec
     if [[ -z "$video_codec" ]]; then
     video_codec="libx265"
     fi
     # Qualité vidéo
     read -e -p "Qualité vidéo (par défaut: 28) : " video_quality
     if [[ -z "$video_quality" ]]; then
     video_quality="28"
     fi
     crf="-crf $video_quality"
     # Rapidité d'encodage
     read -e -p "Rapidité d'encodage (par défaut: medium) : " encoding_speed
     if [[ -z "$encoding_speed" ]]; then
     encoding_speed="medium"
     fi
     preset="-preset $encoding_speed"
     # Début de la vidéo
     read -e -p "Début de la vidéo (format: HH:MM:SS) (vide pour commencer au début) : " start_time
     if [[ ! -z "$start_time" ]]; then
     start_time="-ss $start_time"
     fi
     # Durée de la vidéo
     read -e -p "Durée de la vidéo (vide pour conserver la durée d'origine) : " duration
     if [[ ! -z "$duration" ]]; then
     duration="-t $duration"
     fi
     # Nom du fichier de sortie
     read -e -p "Fichier de sortie : " output_file
     # Génération de la commande ffmpeg
     ffmpeg_cmd="ffmpeg -i \"$input_file\" $resolution -c:a $audio_codec -c:v $video_codec$crf$preset$start_time$duration -map_metadata 0 \"$output_file\""
     # Affichage de la commande ffmpeg
     echo "Voici la commande ffmpeg générée : "
     echo "$ffmpeg_cmd"
     # Demande de confirmation
     read -p "Voulez-vous exécuter cette commande ? (o/n) : " confirm
     if [[ "$confirm" == "o" ]]; then
     eval "$ffmpeg_cmd"
     fi
     echo "Rappel de la commande générée :"
     echo "$ffmpeg_cmd"

    Le second est une simple for avec renommage via mediainfo (c'est 3 lignes).