Ideenquelle

Compression de vidéos via ffmpeg

Tout d’abord, les vidéos dans le cadre d’archive familliale, je n’y crois pas. Nous sommes bombardés d’activités en tous genres que nous n’avons pas le temps de regarder des photos (déjà les sauvegarder et les trier sont parfois des missions impossibles).

Dans un soucis de garder quand même quelques archives familliales, je regarde pour faire un backup selon la règle 3-2-1. Cela risque de tourner à 3-3-1 mais c’est une autre discussion. Pour minimiser l’espace de disque dur et suite à un shaarli, j’ai passé la collection de vidéos à la moulinette ffmpeg pour réduire les vidéos et avoir un seul codec (c’est un effet collatéral).

sebsauvage a proposé le code suivant :

ffmpeg -i entree.mkv -map 0:v -c:v libsvtav1 -preset 4 -crf 30 -tune 0 -pix_fmt yuv420p10le -g 120 -map 0:a? -c:a copy -map 0:s? -c:s copy sortie.mkv

A l’arrivé, les fichiers varient entre 27 et 80% de la taille d’origine. Chez moi, c’est assez variable car les vidéos familliales sont parfois petites (quelques secondes). Ils arrivent donc qu’à l’arrivée, le mkv soit plus lourd que l’original. Je fais le choix de quand même garder car cela uniformise l’ensemble. Même s’il y a donc des ratés, dans l’ensemble, les mkv font entre 25 et 50% de la taille d’origine.

via sebsauvage

Pour aller plus loin C’est bien d’avoir une ligne de commande qui permette de réduire la taille des vidéos. Toutefois, comme je suis sur une bibliothèque de plusieurs années, il est important de faire cela sur l’ensemble.

Combien de vidéos ai-je chez moi ? Bonne question ! Je ne sais pas. J’en ai profité pour savoir ce que j’avais comme type de fichier. Après quelques prompts avec l’IA, j’ai une liste des extensions existants dans mon dossier de photos/vidéos familliales. J’ai quelques trucs exotiques. L’IA me confirme, a priori, l’utilisation de certaines extensions. Je conçois un programme bash pour convertir tous les fichiers dont l’extension s’apparente à une vidéo vers un conteneur mkv. Il m’a fallu plusieurs itérations pour trouver la bonne méthodologie (sur un dossier, sur une extension, vérifier les tailles). J’y suis arrivé. petit script

J’ai essayé avec le Raspberry Pi. En un mot : OUBLIEZ ! Puis avec le famille, en sachant que ce dernier est une récupération de PC de bureau (donc pas de carte graphique digne de ce nom et RAM limité), cela avance. C’est consommateur de puissance. Donc le PC a parfois du mal à tout gérer. Madame s’est plainte (en même temps, c’est le pc qu’elle utilise hors boulot).

Finalement, je me suis résolu à lancer cela sur ma machine du boulot, qui, sans être une bête de course, est plus rapide et me permet de gérer l’activité du processus (je dors, tu peux y aller; je travaille, tu t’arrêtes). ffmpeg est installable en version portable. La version full possède le codec en question. J’ai du réconcevoir mon programme bash pour qu’il fonctionne sous/avec PowerShell. J’ai également fait le choix de transférer toutes les vidéos sur un disque dur qui n’est pas celui du serveur de backup avant de compresser les vidéos. Quand le processus est fait, je transfère les nouveaux fichiers et je vérifie qu’il y ait bien des doublons (en ne regardant pas les extensions) puis je supprime le fichier original. petit script

Quand le démarrage sera fini, l’idée est de mettre cela au propre et automatiser la compression/sauvegarde/…

Tags: