Gérer intelligement ses scripts personnels

L’amusement avec Linux c’est de créer des scripts simples pour se faciliter l’utilisation des commandes.

Mais c’est mieux de les centraliser dans son /home dans le dossier prévu pour cela ~/.local/bin

~/.local/bin$ ls
aptsecurity.sh  converth264.sh  converth265.sh  reduitpdf.sh

Par exemple je converti des fichiers vidéos avec FFMPEG mais les options que j’utilise sont assez difficile à écrire.

Le cas simple d’utilisation de x265

Un livre sur FFMPEG

Un autre livre sur FFMPEG

Le HEVC avec FFMPEG et les options détaillées.

Il existe une interface graphique, winff, qui permets de convertir selon des profiles pré-définis.

apt policy winff
winff:
  Installé : 1.5.5-8
  Candidat : 1.5.5-8
 Table de version :
 *** 1.5.5-8 990
        990 https://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
        990 https://cdn-aws.deb.debian.org/debian bullseye/main i386 Packages
        500 https://cdn-aws.deb.debian.org/debian sid/main amd64 Packages
        500 https://cdn-aws.deb.debian.org/debian sid/main i386 Packages
        100 /var/lib/dpkg/status

Le cas simple d’utilisation du h264

Donc j’ai créé un script ~/.local/bin/converth264.sh avec le contenu suivant:

#!/bin/bash
#set -x
#
#
file=$1
echo "traitement du fichier" $file
# 640x360 pour smartphone avec profil baseline à la place de main
# 1280x720 -filter:v scale=w=1280:h=720 -profile:v main -pix_fmt yuv420p
time ffmpeg -hide_banner -i "$file" -map_metadata -1 -filter:v scale=w=1280:h=720 -profile:v baseline -pix_fmt yuv420p -c:a aac "H264_$file".mp4
#
notify-send --icon=/usr/share/pixmaps/debian-logo.png ' conversion h264 terminée'
rm "$file"
ffprobe -hide_banner "H264_$file".mp4

Ensuite on utilise le systeme des alternatives Debian

sudo update-alternatives --install /usr/bin/converth264 converth264 /home/guy/.local/bin/converth264.sh 100

Utilisation

~/Vidéos/Traviata$ converth264 'Anna Netrebko- Libiamo- Salzbourg 2005.mp4'

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x55bd6f0320c0] using cpu capabilities: MMX2 SSE2Fast LZCNT
[libx264 @ 0x55bd6f0320c0] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x55bd6f0320c0] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'H264_Anna Netrebko- Libiamo- Salzbourg 2005.mp4.mp4':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default)
    Metadata:
      encoder         : Lavc58.91.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc58.91.100 aac

Fin du traitement: durée et compte-rendu de ffprobe:

real	15m20,601s
user	12m22,444s
sys	0m3,969s

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'H264_Anna Netrebko- Libiamo- Salzbourg 2005.mp4.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:03:15.23, start: 0.000000, bitrate: 2248 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1280x720, 2115 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 123 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

La petite notification qui va bien lorsque la conversion est terminée, reçue en haut du bureau Gnome

Par Bidouille De Bian

Bidouilleur sur Linux Debian 10 (Buster). Débutant dans le blog sur Wordpress.