Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
avidemux [Le 07/08/2023, 17:07] geole [Traitement par lot] |
avidemux [Le 06/03/2024, 14:30] (Version actuelle) krodelabestiole [Avec Flatpak] réécriture / +recommandé |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| {{tag>Bionic montage_vidéo vidéo encodage}} | {{tag>Bionic montage_vidéo vidéo encodage}} | ||
| - | |||
| - | ---- | ||
| {{ :application:avidemux:avidemux.png?80|}} | {{ :application:avidemux:avidemux.png?80|}} | ||
| Ligne 17: | Ligne 15: | ||
| =====Installation===== | =====Installation===== | ||
| Avidemux n'est pas dans les dépôts Ubuntu. | Avidemux n'est pas dans les dépôts Ubuntu. | ||
| - | ==== Avec Flatpak ==== | + | ==== Avec Flatpak (recommandé) ==== |
| - | + | ||
| - | **Articles dédiés** : [[:flatpak]], [[:tutoriel/installer_application_flatpak|tutoriel pour l'utiliser]]. | + | |
| - | + | ||
| - | Depuis [[https://flathub.org/apps/details/org.avidemux.Avidemux|Flathub]], suivez les instructions qui vous concernent pour installer //Avidemux// selon le [[:tutoriel/installer_application_flatpak#niveaux_de_privileges|niveau de privilèges]] qui vous convient. | + | |
| + | **Avidemux** est disponible en [[:flatpak]] sur le dépôt [[https://flathub.org/apps/org.avidemux.Avidemux|Flathub]] et peut donc s'installer en suivant [[:tutoriel:installer_application_flatpak|cette procédure]] puis en installant le paquet ''org.avidemux.Avidemux''. | ||
| ==== Au format appimage ==== | ==== Au format appimage ==== | ||
| Ligne 33: | Ligne 27: | ||
| ==== Depuis un PPA ==== | ==== Depuis un PPA ==== | ||
| + | |||
| + | <note warning> | ||
| + | Ces PPAs ne sont pas maintenus par des organismes officiels. | ||
| + | |||
| + | Cette méthode est donc [[ppa#presentation_des_depots_logiciels|déconseillée]]. | ||
| + | </note> | ||
| + | |||
| Vous pouvez installer **avidemux** via un [[:PPA]] (18.04 LTS uniquement) : | Vous pouvez installer **avidemux** via un [[:PPA]] (18.04 LTS uniquement) : | ||
| * [[:ppa|Ajouter le PPA]] **ppa:ubuntuhandbook1/avidemux**((https://launchpad.net/~ubuntuhandbook1/+archive/ubuntu/avidemux)) dans vos sources de logiciels; | * [[:ppa|Ajouter le PPA]] **ppa:ubuntuhandbook1/avidemux**((https://launchpad.net/~ubuntuhandbook1/+archive/ubuntu/avidemux)) dans vos sources de logiciels; | ||
| Ligne 161: | Ligne 162: | ||
| Le fichier contenant le script doit être placé dans le répertoire contenant les vidéos et peut être exécuter dans un [[:terminal]] via la [[:commande_shell|commande]]: <code>bash <nom_du_script></code> | Le fichier contenant le script doit être placé dans le répertoire contenant les vidéos et peut être exécuter dans un [[:terminal]] via la [[:commande_shell|commande]]: <code>bash <nom_du_script></code> | ||
| - | === Script avec l'application image et changement de partition === | + | === Script avec l'application image pour changement de partition et de type de fichier === |
| <code bash> | <code bash> | ||
| + | ENTREE=DoubleFBpourTV #Nom du répertoire de premier niveau contenant les fichiers à traiter. | ||
| + | SORTIE=freebox #Nom du répertoire de premier niveau contenant les fichiers traités. | ||
| + | RESULTAT=avidemux # Début du nom de fichiers contenant les résultats | ||
| + | ## Transcoder tous les fichiers d'une partition dans une autre partition. | ||
| ## Obtenir la liste des fichiers | ## Obtenir la liste des fichiers | ||
| - | find /media/DoubleFBpourTV -type f -name *.avi >avi.txt; find /media/DoubleFBpourTV -type f -name *.mpg >>avi.txt | + | LIST=$RESULTAT-FIC-$(date +"%m-%d-%H-%M").txt |
| - | head -1 avi.txt ; tail -1 avi.txt ; wc -l avi.txt | + | find /media/$ENTREE -type f -name *.AVI >$LIST |
| + | find /media/$ENTREE -type f -name *.avi >>$LIST | ||
| + | find /media/$ENTREE -type f -name *.mpg >>$LIST | ||
| + | find /media/$ENTREE -type f -name "*.m2ts" >>$LIST | ||
| + | head -1 $LIST; tail -1 $LIST ; wc -l $LIST | ||
| ===================================================================== | ===================================================================== | ||
| + | ERR0=$RESULTAT-ERR-$(date +"%m-%d-%H-%M").txt | ||
| + | SUIVI=$RESULTAT-SUIVI-$(date +"%m-%d-%H-%M").txt | ||
| ##Lancer ou relancer le transcodage. | ##Lancer ou relancer le transcodage. | ||
| shopt -s globstar | shopt -s globstar | ||
| - | while read i ; do echo traitememt de "'$i'"; | + | while read i ; do echo $(date +"%y-%m-%d %H:%M") Traitememt de "'$i'"; |
| ## Modifier le répertoire de destination et l'extension fichier | ## Modifier le répertoire de destination et l'extension fichier | ||
| - | j=${i/DoubleFBpourTV/freebox};j=${j/.avi/.mkv};j=${j/.AVI/.mkv};j=${j/.mpg/.mkv} | + | j=${i/$ENTREE/$SORTIE};j=${j/.avi/.mkv};j=${j/.AVI/.mkv};j=${j/.mpg/.mkv};j=${j/.m2ts/.mkv} |
| - | ## Si le dossier sortie n'existe pas, il faut le créer | + | ## Si le dossier sortie n'existe pas, il faut le créer. Attention des répertoires peuvent avoir des espaces. |
| - | if [ ! -d $(dirname "$j") ]; then mkdir -pv $(dirname "$j"); fi | + | DIR="$(dirname "$j")"; if [ ! -d "$DIR" ]; then mkdir -pv "$DIR"; fi |
| - | ##Regardons quand même si par hasard le fichier sortie est déjà présent | + | ##Regardons quand même si par hasard le fichier sortie est déjà présent. |
| - | if [ -e "$j" ]; then echo $j existe déjà. On ne fait rien.; else | + | if [ -e "$j" ]; then echo $(date +"%y-%m-%d %H:%M") Traitement déjà fait pour le fichier "$i">>$SUIVI |
| + | else | ||
| + | sleep 10 # Au cas où on souhaiterait interrompre facilement le script. | ||
| + | ######set video codec (Copy|x264|x265|xvid4|ffMpeg2|ffNvEnc|...) | ||
| ######set audio codec (MP2/MP3/AC3/NONE (WAV PCM)/TWOLAME/COPY) | ######set audio codec (MP2/MP3/AC3/NONE (WAV PCM)/TWOLAME/COPY) | ||
| - | ###### La qualité de la sortie n'est choisie. Il existe trois choix avec un troisième compliqué | + | ERR1=$RESULTAT-ERR-$(date +"%m-%d-%H-%M").txt;ERR2=$RESULTAT-ERR-$(date +"%m-%d-%H-%M").txt |
| - | #### video-conf cq=q | cbr=br | 2pass=xx Select the encoding mode : Constant Quality (cq=quality), constant bitrate (br=bitrate) or 2 pass mode, in that case , give the final size in megabyte. | + | $HOME/Téléchargements/avidemux_2.8.1.appImage --load "$i" --video-codec x264 --audio-codec AC3 --output-format MKV --save "$j" --quit 1>$ERR1 2>$ERR2 |
| - | + | ||
| - | echo "time $HOME/Téléchargements/avidemux_2.8.1.appImage --load $i --video-codec x264 --audio-codec AC3 --output-format MKV --save $j --quit" | + | |
| - | time $HOME/Téléchargements/avidemux_2.8.1.appImage --load "$i" --video-codec x264 --audio-codec AC3 --output-format MKV --save "$j" --quit 1>/tmp/avidemux.txt | + | |
| ### Il reste à trouver une solution pour les noms ayant certains accents => Le processus est bloqué jusqu'à la validation de l'erreur. | ### Il reste à trouver une solution pour les noms ayant certains accents => Le processus est bloqué jusqu'à la validation de l'erreur. | ||
| - | ## Je considère que le traitement est bien fait et je supprime le fichier de la liste pour pouvoir relancer sans difficulté. | + | ##Il faut supprimer le fichier de manoeuvre s'il a été créé, sinon on va manquer de place. |
| - | sed -i '1d' mpg.txt | + | rm "${j/.*/.idx2}" 2>/dev/null |
| - | ##Il aussi supprimer le fichier de manoeuvre s'il a été créé, sinon, on va manquer de place | + | A=$(cat $ERR1) |
| - | rm -v ${j/.mkv/.idx2} | + | if [[ $A =~ "End of video stream reached" ]]; then echo $(date +"%y-%m-%d %H:%M") Bon traitement du fichier "$i" >>$SUIVI |
| + | else | ||
| + | if [[ $A =~ "100% done frames" ]]; then echo $(date +"%y-%m-%d %H:%M") Mauvaise fin du fichier "$i" >>$SUIVI | ||
| + | else | ||
| + | echo $(date +"%y-%m-%d %H:%M") Erreur de traitement du fichier "$i">>$SUIVI; echo "$i" >> $ERR0 ; rm "$j" 2>/dev/null | ||
| fi | fi | ||
| - | done<avi.txt | + | rm $ERR1 $ERR2 |
| + | fi;fi | ||
| + | ## Je considère que le traitement est fait et je supprime le fichier de la liste pour pouvoir relancer sans difficulté. | ||
| + | sed -i '1d' $LIST | ||
| + | done<$LIST | ||
| + | date;wc -l $LIST;wc -l $SUIVI;wc -l $ERR0 | ||
| </code> | </code> | ||