logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 27-09-2024 19:52:30

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Quelques scripts FFmpeg

J’utilise pas mal FFmpeg pour améliorer mes fichiers multimédia, dans ce message je partage les trois scripts que j’utilise le plus (ça finira peut-être sur le wiki à un moment).

Celui-ci sert à ré-encoder une série de vidéos de manière à limiter leur largeur à 1280 pixels tout en réduisant drastiquement leur poids, sans trop dégrader le rendu visuel :

#!/bin/sh
set -o errexit

for media_source in "$@"; do
  media_destination="1280/${media_source%.*}.mkv"
  mkdir --parents "$(dirname "$media_destination")"
  ffmpeg -i "$media_source" \
    -map 0:v -map 0:a? -map 0:s? \
    -c:a copy -c:s copy \
    -c:v libx264 -vf scale=1280:-2 -preset slower -tune film \
    "$media_destination"
done

exit 0



Vient ensuite celui-ci, qui normalise le volume audio d’un fichier incluant une (ou des) piste audio et réduit au besoin de nombre de canaux audio à 2 :

#!/bin/sh
set -o errexit

mkdir --parents 'normalized'
for input_file in "$@"; do
  ffmpeg-normalize \
    --verbose --progress \
    --audio-codec libopus --extra-output-options='-ac 2' \
    --keep-loudness-range-target \
    "$input_file"
done

exit 0



Et pour finir celui-ci est assez similaire au précédent, mais avec cette fois-ci une limitation à un seul canal (j’utilise ça surtout pour les podcasts et émissions de radio) :

#!/bin/sh
set -o errexit

mkdir --parents 'normalized'
for input_file in "$@"; do
  ffmpeg-normalize \
    --verbose --progress \
    --audio-codec libopus --extra-output-options='-ac 1' --sample-rate 48000 --dual-mono \
    "$input_file"
done

exit 0



---

Ce script n’est pas basé sur ffmpeg mais sur ffprobe. Il permet de récupérer le bitrate d’un fichier multimédia donné :

#!/bin/sh

FILE="$1"
BITRATE=$(ffprobe -hide_banner "$FILE" 2>&1 | sed --silent 's;.*bitrate: \([0-9]\+ kb/s\);\1;p')
printf '%s - %s\n' "$BITRATE" "$FILE"

exit 0


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

En ligne

#2 27-09-2024 19:54:31

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Quelques scripts FFmpeg

Pour avoir accès à la commande ffmpeg-normalize utilisée par deux des scripts partagés, il faut installer des paquets Python qui ne sont pour l’instant pas proposés dans les dépôts Debian.

On peut tout de même générer localement des paquets .deb à installer ensuite, via ces deux commandes :

py2dsp --build ffmpeg-progress-yield
py2dsp --build ffmpeg-normalize


La commande py2dsp est fournie par le paquet pypi2deb.


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

En ligne

#3 27-09-2024 20:16:13

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Quelques scripts FFmpeg

Ah ! Super partage. Merci smile

Hors ligne

#4 27-09-2024 20:32:12

Jean-Pierre Pinson
Adhérent(e)
Lieu : Orléans
Distrib. : Debian 64bits Ordi.: Thinkpad T440p
Noyau : de cerise
(G)UI : gnome
Inscription : 04-03-2017
Site Web

Re : Quelques scripts FFmpeg

oui Super partage. Merci smile

Debian
Bureau : gnome
Ordinateur : Thinkpad T440P libreboot

En ligne

#5 28-09-2024 12:07:19

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Quelques scripts FFmpeg

J’ai mis à jour le script de réduction de taille des vidéos, il ne devrait plus retirer de pistes audio ou de sous-titres comparé au fichier original.

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

En ligne

#6 06-10-2024 19:17:12

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Quelques scripts FFmpeg

J’ai ajouté un nouveau script au premier message, celui-ci se base sur ffprobe pour afficher le bitrate d’un fichier multimédia.

Je l’utilise avec la commande suivante pour repérer les fichiers de mon disque qui bénéficieraient le plus d’un réencodage :

find ~/media/ -type f -print0 | xargs --null -n1 -P$(nproc) ffprobe-bitrate |
    sort -h | tail | cut -d\  -f4- | xargs du -hs | sort -h


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

En ligne

Pied de page des forums