IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Experimentations linux

[Kde Neon] Reduire la taille des videos pour economiser de l'espace disque

Noter ce billet
par , 29/10/2020 à 13h54 (53 Affichages)
*
j'ai plein de videos hd (documentaires, scientifiques, santes, bricolages, agricultures...) qui occupent beaucoup de place disque. apres visionnage s'est toujours pose le probleme de les garder ou non, j'ai toujours choisi la premiere solution sauf qu'au bout de quelques temps le disque dur de stockage a ete sature, j'ai donc cherche un moyen de reduire la taille des videos sans trop les alterer, voici les etapes pour ceux qui seraient interesses :

- la plupart des videos etaient au format 1280x720 (pas du vrai hd mais d'excellente qualite). changer le bitrate est une mauvaise idee car ca altere beaucoup la qualite (quoique certaines videos sont encodes avec de trop haut bitrate)...

- reduire la resolution a 960x540 est la meilleure solution. le rendement sur un ecran lcd reste assez bon et la taille des videos est fortement reduite.

- reste a choisir le codec video. x264 est incontournable, produit des videos d'excellentes qualites parfaitement optimisees. a l'avantage d'etre desormais gere par la majorite des lecteurs videos et meme directement integre aux tv lcd recentes.. plus recent x265 est plus performant mais apres quelques tests beaucoup plus lent en encodage. par exemple, l'encodage d'une video test de quelques minutes a necessite 3 minutes avec x264 et 12 minutes avec x265. la video produite avec x265 est plus petite (grace a un bitrate plus faible) mais reste de meme qualite qu'en x264...

- j'ai cree deux scripts pour automatiser le processus. il suffit de deplacer les videos a reoncoder dans un repertoire et de le lancer...

x264
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#!/bin/bash
shopt -s nullglob
RepC=$PWD
for f in *.m4v *.avi *.mkv
do
	echo Traitement en cours de : "$f"
	firejail --net=none --disable-mnt --private=$RepC nice -n 19 ffmpeg -i "$f" -c:v libx264 -crf 26 -tune film -vf yadif=0:-1:0,"scale=iw*min(1\,if(gt(iw\,ih)\,960/iw\,(960*sar)/ih)):-2" -preset slow -c:a aac -b:a 128k "${f%.*}_x264_".mp4	
done
x265
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#!/bin/bash
shopt -s nullglob
RepC=$PWD
for f in *.m4v *.avi *.mkv
do
	echo Traitement en cours de : "$f"
	firejail --net=none --disable-mnt --private=$RepC nice -n 19 ffmpeg -i "$f" -c:v libx265 -crf 28 -vf yadif=0:-1:0,"scale=iw*min(1\,if(gt(iw\,ih)\,960/iw\,(960*sar)/ih)):-2" -preset slow -c:a aac -b:a 128k "${f%%.*}_x265_".mp4
done
nommez les scripts et placez les dans un repertoire accessible dans le path pour pouvoir les lancer...

Mode de fonctionnement du script :

les scripts utilisent ffmpeg pour l'encodage. le programme est confine dans un repertoire prive avec Firejail. l'acces reseau est desactive.

- lancer un terminal et se placer dans le repertoire qui contient les videos.
- lancer le script qui va examiner le repertoire le transmettre a Firejail et traiter un par un tous les fichiers videos dont l'extension est specifie. a noter que pour les fichiers mp4 vous devrez les renommer en m4v...
- l'option nice -n 19 diminue la prioritee du programme et permet de continuer a utiliser le systeme pendant l'encodage...
- utilisation de l'option crf qui ordonne au codec d'adapter le bitrate necessaire selon sa valeur. la valeur de crf peut aller de 0 a 51. plus le crf est eleve plus la qualite de la video est reduite. pour une excellente qualite 22 est une bonne valeur sauf que dans ce cas le bitrate sera eleve et la taille de la video aussi. le meilleur compromis apres quelques test c'est 26 (pour x265 28 donne des resultas etonnant avec une bonne qualite et une reduction impressionnante de la taille de la video mais le temps d'encodage reste assez eleve).
- l'option scale permet de reduire la resolution a 960 tout en calculant l'aspect ratio, la formule integre ne s'appliquera que si la video a une resolution superieur a 960. dans le cas contraire, la video sera reoncode a sa resolution d'origine...
- l'option preset permet de definir une certaine qualite associe a la vitesse de compression, medium aurait pu faire l'affaire mais j'ai opte pour slow pour une meilleure optimisation.
- l'option tune permet d'ameliorer visuellement la qualite. j'ai opte pour film
- pour l'audio, j'ai opte pour 128k largement suffisant.

Certaines options ne sont pas valables pour le codec x265 mais il semblerait d'apres mes tests que ce codec analyse les videos avant encodage et choisi automatiquement les meilleures options...

bon, il est possible d'encoder en deux passes pour optimiser la qualite mais ca rallonge le temps d'encodage. j'ai evite.

a noter que certaines videos hds sont encodees avec de tres haut bitrate et depasse parfois 3-4 go alors que le codec x264 est tres performant et permet de garder une certaine qualite avec une taille de video raisonnable. pour ces videos, vous pouvez enlever l'option scale pour reoncoder avec la resolution d'origine et voir ce que ca donne avec un crf 26...

Note : le codec x265 est impressionnant, j'ai encode un clip video a sa resolution originale (1280x720). le fichier cible a une taille d'environ 64,1 mo. le resultas apres encodage est d'environ 26 mo. seul le temps d'encodage me dissuade d'utiliser ce codec parce qu'il permettrait dans les faits d'economiser beaucoup de place disque. il serait peut etre plus judicieux avec ce codec de reoncoder les videos a leurs resolutions d'origines. d'apres mes tests, le gain obtenu est de moins 50 % pour la plupart des videos...

Conseil : lancer l'encodage la nuit parce que le traitement occupe beaucoup de ressources. ajouter un bloc ventilateur sous l'ordinateur si vous utilisez un portable sinon la chauffe des composants peut l'endommager a long terme...
il est possible d'utiliser ces scripts pour encoder des films hd mais pour avoir une bonne qualite de visionnage, il faudra les modifier optimiser...

Ajout : pour augmenter la compressibilitee des videos, il est possible d'utiliser le filtre hqdn3d. faite une recherche sur google pour plus d’informations…

Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog Viadeo Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog Twitter Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog Google Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog Facebook Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog Digg Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog Delicious Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog MySpace Envoyer le billet « [Kde Neon] Reduire la taille des videos pour economiser de l'espace disque » dans le blog Yahoo

Catégories
Sans catégorie