Archiver ses vidĂ©os : retour dâexpĂ©rience.
PrĂ©ambule : ma vie (et peut-ĂȘtre aussi la vĂŽtre)
Comme probablement beaucoup dâentre vous, jâai des milliers de photos et vidĂ©os accumulĂ©es au cours des 20 derniĂšres annĂ©es. Câest trĂšs pratique de pouvoir stocker cela sur un seul disque dur. Mais cela pose trois problĂšmes majeurs :
- la pérennité du support ;
- le classement des fichiers pour pouvoir en retrouver un en particulier dans⊠trÚs longtemps.
- la possibilitĂ© de lire des fichiers dans plusieurs annĂ©es (je pense Ă des fichiers Publisher 2.0 que je ne suis plus parvenu Ă lire par la suite â et non : les versions ultĂ©rieures Ă Publisher 2.0 ne lisent pas ces fichiers.
Ce texte sâadresse Ă toute personne qui se pose trois questions :
- Pourrai-je visionner mes fichiers vidéos dans 30 ans pour les montrer à mes petits-enfants ?
- Comment organiser/classer mes fichiers vidéos pour les retrouver rapidement ?
- Comment réencoder mes fichiers vidéos pour limiter la place occupée (ou, dit autrement : quel format utiliser) ?
AprĂšs avoir lu cette dĂ©pĂȘche, je vous recommande trĂšs fortement de vous reporter aux commentaires qui suivent car vous y trouverez probablement des prĂ©cisions, liens, corrections ou suggestions qui lâenrichissent.
- Pour le point 1., aucun support nâĂ©tant inaltĂ©rable/incassable, la rĂšgle tient en une phrase : « sauvegarder sur plusieurs supports (pour parer une Ă©ventuelle dĂ©faillance), dans diffĂ©rents endroits (en cas dâincendie, de vol, dâinondationâŠ) et si possible en chiffrant ses disques (pour protĂ©ger votre vie privĂ©e en cas de vol : câest incroyablement simple sous linux)
- Pour le point 2., jâavais rĂ©digĂ© un document il y a fort fort longtemps oĂč jâexpliquais que le seul classement pĂ©renne Ă©tait le classement chronologique (je vous laisse vous reporter au document pour comprendre pourquoi lâutilisation de logiciels propriĂ©taires est Ă proscrire). Pour rĂ©sumer, je crĂ©e un dossier par annĂ©e (2023) dans lequel il y a douze sous-dossiers (2023_01, 2023_02 etc.) et dans chacun dâeux, je crĂ©e un dossier par jour avec la date et le lieu (par exemple, 2023_06_25_saint_denis_la_reunion indique immĂ©diatement oĂč et quand ont Ă©tĂ© prises les photos et les vidĂ©os Ă lâintĂ©rieur de ce dossier). Les photos sont renommĂ©es (et retournĂ©es si nĂ©cessaire) automatiquement avec lâinstruction
jhead -autorot -nf%Y_%m_%d__%H_%M_%S_ *.jpg
. Les vidĂ©os sont renommĂ©es manuellement sous la forme 2023_06_25__video_02_christophe_et_philippe_en_velo.mov 1 - Pour le point 3., le format JPG Ă©tant ouvert, la lisibilitĂ© des photos est garantie dans le temps. Pour les vidĂ©os, câest un peu plus compliquĂ© puisquâen gĂ©nĂ©ral, trois formats interviennent :
- le codec vidĂ©o pour lâimage (comme h264, h265, av1, mjpegâŠ) ;
- le codec audio pour le son (comme mp3)
- le format de conteneur (comme avi, mp4, mtsâŠ)
Câest lĂ oĂč on en revient Ă lâhistoire de ma vie.
-
note : je nâai jamais trouvĂ© comment rĂ©cupĂ©rer les mĂ©tadonnĂ©es des vidĂ©os pour les utiliser dans le nom du fichier, comme je le fais avec jhead. â©
Sommaire
- I Il Ă©tait une fois MA vie !
- II Mon environnement
- III Les choix techniques
- IV Les problÚmes rencontrés et les contraintes (spoiler : il faut du temps !)
-
V Les scripts utilisés
- convertion_par_lot_videos_en_265
- convertion_par_lot_videos_en_265_une_passe_crf
- convertion_par_lot_videos_en_xvid
- convertion_vers_mkv_par_lot
- convertion_videos_en_son_par_lot
- convertir_son_en_mp3_garder_video
- extraire_image_precise_d_une_video
- recuperer_bitrate_video_par_lot
- recuperer_toutes_infos_video_par_lot
- stabiliser_video_par_lot_version
- creer_video_cote_a_cote_par_lot
- supprimer_bande_son_video
- stabiliser_video_par_lot_en_testant_les_10_qualites
- En conclusion
I Il Ă©tait une fois MA vie !
AprĂšs plus de 20 ans de stockage, mon disque dur de 1 To frisait les 90 % de remplissage. Alors, oui, 1 To, câest trĂšs commun aujourdâhui : il me suffisait dâacheter un disque de 4 To et le problĂšme Ă©tait rĂ©glĂ©.
Oui⊠mais non. Je nâaime pas occuper de la place. Je pense que câest une mauvaise habitude que dâavoir des tĂ©raoctets disponibles ou des gigaoctets sur une carte SD pour son smartphone que lâon utilise sans se poser de questions en ayant lâimpression dâun stockage illimitĂ©. Car un jour, cela nous revient dans les dents (carte SD/disque dur qui plante sans sauvegarde, rĂ©installation de tout le systĂšme, sauvegarde de ses milliers de photos que lâon se dĂ©cide - un jour - de ranger dans un dossier A_RANGER1 puis A_RANGER2 puis A_RANGER3, etc. puis on abandonne).
En ayant un espace de stockage limité, on doit apprendre à le gérer.
Les plus anciens se souviennent peut-ĂȘtre des magnĂ©toscopes : on achĂšte des cassettes, on enregistre des films en se disant « je le regarderai un jour » et on se retrouve avec des centaines de cassettes qui prennent la poussiĂšre. Ben câest pareil avec les disques durs : on a des tĂ©raoctets en pagaille et on se dit : « je garde, on ne sait jamais. Et un jour (qui nâarrivera jamais), je ferai le tri ! »
Jâen reviens donc Ă mon disque dur quasi plein. Je fais une recherche sur mes fichiers vidĂ©os et regarde le dĂ©bit binaire (bitrate par la suite) : 40âŻ000 kb/s soit environ 5 Mo/s pour des vidĂ©os FullHD et jusquâĂ 100 Mb/s (12 Mo/s) pour des vidĂ©os 4k (Ă©videmment, cela dĂ©pend de lâappareil Ă lâorigine de la vidĂ©o). Voici les diffĂ©rents bitrate que jâai pu rencontrer :
âą fichier mp4 4K drone : 100 Mb/s ;
âą fichier mp4 4K go pro : 60 Mb/s
âą fichier mov FullHD : environ 16Mb/s
âą ficher avi 640*480 : environ 15 MB/ (mjpeg et format son araw)
âą fichier avi 320*240 : entre 1 et 2,5 Mb/s
Loin dâĂȘtre un expert dans la compression vidĂ©o, le poids des fichiers mâinterpelle quand mĂȘme. En effet, un site de tĂ©lĂ©chargement de films - que je nâai jamais frĂ©quentĂ© car câest illĂ©gal - a pour objectif dâoptimiser le ratio qualitĂ©/poids et donc dâoffrir une bonne qualitĂ© visuelle pour un poids rĂ©duit. Ainsi, un film en FullHD de 90 min a un poids de 1400 Mo soit un bitrate dâenviron 2 Mb/s (250 ko/s avec le codec H264). Un film en 4K de 90 min a un poids de 4 Go soit un bitrate dâenviron 4Mb (500 ko/s avec le codec H265). Et il paraĂźt â je ne le sais pas directement car je nâai jamais frĂ©quentĂ© ce site dont je ne connais mĂȘme pas lâexistence â que la qualitĂ© des films sur le site en question est bonne, visuellement parlant sâentend.
Il était donc temps de se mettre au travail et de réencoder mes vidéos personnelles.
Lâobjectif de ce document est donc triple (et permettra de rĂ©pondre aux questions 1. et 3. que sâest posĂ© le lecteur ou la lectrice dans le prĂ©ambule :
- ré encoder ses vidéos automatiquement via un script bash (en utilisant le logiciel libre ffmpeg ) sans perte de qualité visible ;
- rĂ©duire le poids des fichiers de façon notable (par notable, jâentends ici une rĂ©duction dâau moins 20 %, ce qui est totalement subjectif, mais jâassume) ;
- sâassurer de la pĂ©rennitĂ© de ses vidĂ©os (i.e. ĂȘtre capable de les visionner dans 20 ans) ;
II Mon environnement
- Le matériel : Lenovo V45 (payé 300 ⏠environ avec un AMD A4-9125 radeon R3, 8Go de mémoire vive et un SSD Samsung de 1To, le tout sous kubuntu 22,04).
- Les logiciels : ffmpeg version 4.4.2, vlc, krename (pour renommer ses fichiers par lot), kfind pour retrouver des fichiers avec des extensions prĂ©cises (je ne maĂźtrise pas du tout lâoutil en ligne de commande find), avidemux pour faire du montage vidĂ©o basique (couper quelques minutes dâune vidĂ©o par exemple), dolphin pour naviguer dans les fichiers et, surtout, indicator-cpufreq (qui permet de rĂ©duire la frĂ©quence du processeur et Ă©viter que le ventilateur ne tourne en permanence).
III Les choix techniques
Je ne devais utiliser que des logiciels libres et des formats ouverts. Pour les logiciels : mon choix sâest portĂ© sur ffmpeg pour lâencodage car câest LA rĂ©fĂ©rence pour la conversion de vidĂ©os, mĂȘme si lâusage de la ligne de commande peut rebuter cetains (mais vous verrez par la suite que les scripts simplifient grandement la vie). Pour les formats :
- MP3 pour lâaudio : il nâest plus protĂ©gĂ© par un brevet depuis 2017 et me convenait parfaitement, en choisissant un dĂ©bit de 250kb/s (ce qui est sĂ»rement excessif mais la place occupĂ©e par le son dans une vidĂ©o est faible par rapport Ă la vidĂ©o). Je sais quâil y a vorbis mais le mp3 me semble plus « universel », notamment si lâon regarde la vidĂ©o sur un tĂ©lĂ©viseur
- MKV pour le conteneur : câest un format ouvert et qui est lu sur tous les tĂ©lĂ©viseurs sur lesquels jâai pu le tester.
- H265 pour le format vidĂ©o : câest un format sorti en 2013 soumis Ă brevet mais il est possible dâutiliser une bibliothĂšque libre (x265) pour effectuer lâencodage (câest cette bibliothĂšque quâutilise ffmpeg). LĂ encore, lorsque jâai testĂ© des vidĂ©os encodĂ©es en h265 sur diffĂ©rents tĂ©lĂ©viseurs pas trop vieux, je nâai jamais eu de problĂšme.
Sachez quâil existe le format AV1, plus rĂ©cent, plus efficace en termes de compression, libre et qui rĂ©pond Ă mes besoins. Mais deux Ă©lĂ©ments mâont fait renoncer Ă lâutiliser :
- lâencodage (avec ma machine) est extrĂȘmement lent (jâai abandonnĂ© lâencodage de 30 secondes de vidĂ©o quand, aprĂšs une heure, il en Ă©tait toujours Ă la premiĂšre seconde !) ;
- il nâest pas encore gĂ©nĂ©ralisĂ© : peu de tĂ©lĂ©viseurs peuvent lire ce format (si vous en connaissez, je suis preneur). Il est fort probable que dans une dizaine dâannĂ©es, je rĂ©encoderai mes vidĂ©os en AV1, mais laissons cela pour plus tard.
Jâai Ă©galement choisi dâencoder mes vidĂ©os en deux passes car cela me permet de dĂ©cider du dĂ©bit binaire (et donc de la taille du fichier finale) tout en ayant une meilleure qualitĂ© quâen une passe.
Jâai utilisĂ© le programme indicator-cpufreq qui me permet de rĂ©duire au minimum la frĂ©quence de mon processeur (ici 1,2 Gh) afin dâĂ©viter que le ventilateur ne tourne sans arrĂȘt (Ă noter quâune mise en veille repasse la frĂ©quence au maximum et il nâest plus possible de la rĂ©duire, sauf Ă redĂ©marrer lâordinateur). Avec une frĂ©quence rĂ©duite au minimum, le ventilateur ne se dĂ©clenche que quelques secondes toutes les minutes et le processeur ne dĂ©passe pas les 50°C (câest hardinfo qui me le dit).
IV Les problÚmes rencontrés et les contraintes (spoiler : il faut du temps !)
- Lâencodage en deux passes permet dâobtenir une meilleure qualitĂ© visuelle (de ce que jâai compris) mais au prix dâun temps de calcul doublĂ©. Ainsi, une vidĂ©o dâune minute (en FullHD) a nĂ©cessitĂ© environ 100 minutes dâencodage pour obtenir le fichier final. Autant vous dire que mon ordinateur a tournĂ© pendant environ 5 mois prĂšs de 20 heures par jour en moyenne. En revanche, jâai dĂ©couvert comment arrĂȘter un processus (
kill - STOP numero_pid_util
) lorsque jâavais besoin de retrouver toute la puissance du processeur et comment le reprendre plus tard (kill - CONT numero_pid_util
). Par ailleurs, je nâai pas trouvĂ© comment utiliser la carte graphique pour le rĂ©encodage, car il paraĂźt que câest plus rapide⊠- Je ne connais pas lâinstruction ou lâoption (si elle existe) de ffmpeg qui permet de conserver les mĂ©tadonnĂ©es des vidĂ©os. Ainsi, la conversion effectuĂ©e avec les scripts ci-dessous supprime toutes les mĂ©tadonnĂ©es (pourtant, cela semble possible)
- Je nâai pas trouvĂ©, malgrĂ© mes recherches, comment reprendre la premiĂšre passe dâun encodage aprĂšs une coupure ou un bug (ffmpeg gĂ©nĂšre un fichier log durant la premiĂšre passe, fichier quâil devrait ĂȘtre possible de rĂ©utiliser afin de reprendre lĂ oĂč il sâest arrĂȘtĂ©). Il mâa donc fallu, parfois, reprendre lâencodage dâune vidĂ©o Ă zĂ©ro.
- La procĂ©dure avant encodage demande de lâorganisation :
- Rechercher toutes ses vidĂ©os est relativement aisĂ© et rapide : kfind permet dâeffectuer une recherche sur de multiples formats. Ensuite, un copier-coller sur un autre disque dur permet de les isoler.
- Il est nĂ©cessaire de connaĂźtre le bitrate de chacune dâelle. Une recherche Internet et hop, le script qui va bien (voir la partie sur les scripts) gĂ©nĂšre un fichier CSV pour nous faciliter le travail.
- Il faut ensuite regrouper les vidĂ©os par dĂ©bit et dĂ©finition : ainsi, une vidĂ©o 640*480 de 10 Mb/s ne pouvait pas ĂȘtre dans le mĂȘme rĂ©pertoire quâune vidĂ©o en 320*240 de 5 Mb/s Ă©galement puisque le bitrate final nâĂ©tait pas le mĂȘme. LĂ , pas de secret, il faut le faire manuellement. Mais rassurez-vous, bien souvent, les vidĂ©os dâune mĂȘme pĂ©riode ont toute le mĂȘme bitrate.
- LâĂ©tape suivante a consistĂ© Ă choisir le dĂ©bit final des vidĂ©os suivant leur dĂ©finition de façon Ă ce que la vidĂ©o finale subisse une compression pas ou peu visible Ă lâĆil par rapport Ă lâoriginal (ce qui est trĂšs subjectif). Jâai donc choisi (en partant des dĂ©bits de YiFY et un peu au doigt mouillĂ©) :
- 10 Mb/s pour de la 4K (porté trÚs rarement à 12 Mb/s si la vidéo comportait beaucoup de mouvements) ;
- 4 Mb/s pour de la FullHD ;
- environ 2 Mb/s pour de la 640*480
- 1 Mb/s pour de la 320*240
- Un bug est apparu lors de la conversion des fichiers MJPEG directement en H265 : les couleurs finales Ă©taient complĂštement diffĂ©rentes des originales. Je ne suis pas le seul Ă avoir subi ce qui semble ĂȘtre un bug. Au final, jâai contournĂ© ce dĂ©sagrĂ©ment en convertissant dâabord ces fichiers en xvid avec un gros bitrate pour limiter la perte de qualitĂ© (opĂ©ration trĂšs rapide) puis les xvid en H265, ce qui a rĂ©glĂ© le problĂšme.
- Jâimagine que, comme beaucoup dâentre nous, je souhaite limiter mon impact environnemental. Nâayant pas de panneaux photovoltaĂŻques, mon empreinte carbone est probablement Ă©levĂ©e car jâai Ă©tĂ© contraint de laisser tourner mon ordinateur jour et nuit en consommant de lâĂ©lectricitĂ© pas toujours verte. En contrepartie, jâĂ©conomise lâachat dâun nouveau disque dur. Cela me permet de me donner bonne conscience.
V Les scripts utilisés
Ces scripts (qui fonctionnent sous Linux. Pour Windows, il faudra adapterâŠ) ont Ă©tĂ© Ă©crits Ă partir de ce que jâai trouvĂ© sur Internet car ma maĂźtrise de ce genre dâoutils est trĂšs fragile voire inexistante (jâai donc pas mal bidouillĂ© et ils peuvent sĂ»rement ĂȘtre optimisĂ©s). Je vous dirais volontiers quâils sont sous licence libre ou dans le domaine public mais nâayant pas notĂ© mes sources, je les livre ci-dessous sans aucune garantie de quoi que ce soit (la seule chose que je peux garantir, câest que jâai fait pas mal de modifications par rapport aux scripts originaux).
Je vous rappelle que pour utiliser ces scripts, vous devez faire un copier-coller du script dans un fichier texte (en utilisant kate par exemple), lâenregistrer puis le rendre exĂ©cutable. Ensuite, vous placez ce script dans le rĂ©pertoire de vos vidĂ©os, et, dans une console, vous tapez ./nom_du_script
Je pense avoir mis suffisamment de commentaires pour comprendre ce que fait chaque script. Si cela nâĂ©tait pas le cas, signalez les erreurs ou les suggestions dans les commentaires.
Voici un rĂ©sumĂ© pour chacun dâeux :
-
convertion_par_lot_videos_en_265
: câest le script que jâai le plus utilisĂ© pour convertir des vidĂ©os en H265 en choisissant une ou deux passes et le bitrate. -
convertion_par_lot_videos_en_265_une_passe_crf
: convertir en une seule passe en choisissant la qualité voulue -
convertion_par_lot_videos_en_xvid
: convertir des vidéos au format XVID, lorsque la conversion des MJPEG vers H265 pose problÚme -
convertion_vers_mkv_par_lot
: convertir tous les formats de conteneur en MKV (jâai eu parfois des problĂšmes avec certaines extensions, le passage en MKV rĂ©glait le problĂšme) ; -
convertion_videos_en_son_par_lot
: ne garder que le son (pour des vidĂ©os youtube que lâon souhaite uniquement Ă©couter par exemple) ; -
convertir_son_en_mp3_garder_video
: réeconde uniquement le son en MP3, ne touche pas la vidéo -
extraire_image_precise_d_une_video
: permet dâextraire une image prĂ©cise (par exemple la 123) dâune ou plusieurs vidĂ©os. Ce script mâa permis de comparer lâimage dâorigine et lâimage rĂ©encodĂ©e. Jâutilisais ensuite Gimp pour visualiser les diffĂ©rences entre les deux images. -
recuperer_bitrate_video_par_lot
: rĂ©cupĂšre tous les bitrates des vidĂ©os dâun mĂȘme rĂ©pertoire et lâexporte dans un fichier CSV (donnĂ©es sĂ©parĂ©es par une espace) ; -
recuperer_toutes_infos_video_par_lot
: exporte dans un fichier csv les dimensions de lâimage, le fps etc. mais pas le bitrate (je nâai pas trouvĂ© comment fusionner ce script avec le prĂ©cĂ©dent) -
stabiliser_video_par_lot_en_testant_les_10_qualites
: script pour stabiliser une vidĂ©o avec une image « secouĂ©e » en testant les 10 qualitĂ©s possibles automatiquement. Vous pouvez faire des tests, chez moi, ce nâĂ©tait pas probant. Le script est Ă revoir probablement. -
stabiliser_video_par_lot_version
: idem que ci-dessus mais vous choisissez le paramĂštre de la stabilisation. -
creer_video_cote_a_cote_par_lot
: pour comparer deux vidĂ©os en en crĂ©ant une nouvelle avec les deux cĂŽte Ă cĂŽte (je lâutilise pour comparer la vidĂ©o dâorigine et la vidĂ©o stabilisĂ©e). -
supprimer_bande_son_video
: ne conserve que la vidĂ©o, supprime le son (pour des vidĂ©os oĂč le son ne prĂ©sente aucun intĂ©rĂȘt). Et câest parti !
convertion_par_lot_videos_en_265
#/bin/bash
# conversion par lot de fichier video au format H265 avec audio en mp3 qualité 256k
# nice -19 signifie que le programme aura la priorité la plus faible, ce qui ne devrait pas beaucoup ralentir l'exécution des autres programmes (en théorie tout au moins...)
# si vous souhaitez interrompre le programme pour avoir accÚs à tout le processeur, tapez l'instruction top puis identifiez le PID UTIL des processeurs ffmpeg concernés puis tapez kill - STOP numero_pid_util. Pour relancer le processus, tapez kill - CONT numero_pid_util
echo "Ce script va rĂ©encoder vos vidĂ©os (MKV MP4 MTS AVI MOV WEBM FLV MPG MPEG WMV 3GP RM ASX VOB F4V MKS M4V OGV M2V MPV TS M2TS AVC HEVC M1V M2V MPV) en H265, le son en MP3 256k et au format de conteneur MKV en 1 ou 2 passes. Vous allez pouvoir choisir le bitrate d'encodage pour la vidĂ©o, le codec et le nombre de passe. Les extensions des vidĂ©os peuvent ĂȘtre en minuscules ou majuscules mais pas un mĂ©lange des deux. Les fichiers originaux seront dĂ©placĂ©s dans le dossier originaux et les fichiers convertis dans le dossier convertis_x265"
echo -n "Entrez le bitrate -sans espace - que vous souhaitez utiliser : (4000 recommandé pour de la video FullHD, 10000 pour de la 4K) "
read bitrate
# les lignes (rm x265_2pass.log / rm x265_2pass.log.cutree / rm x265_2pass.log.cutree.temp / rm x265_2pass.log.temp) suppriment les fichiers générés lors des deux passes
# pour conserver l'audio, remplacer -c:a libmp3lame -b:a 256k par -c:a copy
# pour réduire la qualité audio, remplacer le 256k dans "-c:a libmp3lame -b:a 256k" par un nombre plus petit (par exemple 128k ou 92k)
echo -n "Souhaitez-vous une passe ou deux passes ? Taper 1 pour une passe (plus rapide mais de moins bonne qualité) ou 2 pour deux passes (plus lent mais la vidéo finale est de meilleure qualité) : "
read passe
if [ "$passe" = "1" ] ; then
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir convertis_x265
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
nice -19 ffmpeg -i "$i" -c:v "libx265" -b:v "${bitrate}k" -"x265"-params pass=1 -c:a libmp3lame -b:a 256k "$i.mkv"
mv "$i.mkv" ./convertis_x265
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
elif [ "$passe" = "2" ]; then
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir convertis_x265
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
nice -19 ffmpeg -y -i "$i" -c:v "libx265" -b:v "${bitrate}k" -"x265"-params pass=1 -an -f null /dev/null && \
#premiĂšre passe
nice -19 ffmpeg -i "$i" -c:v "libx265" -b:v "${bitrate}k" -"x265"-params pass=2 -c:a libmp3lame -b:a 256k "$i.mkv"
mv "$i.mkv" ./convertis_x265
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
#les lignes suivantes suivantes suppriment les fichiers temporaires de la premiĂšre passe en cas d'interruption.
rm x265_2pass.log
rm x265_2pass.log.cutree
rm x265_2pass.log.cutree.temp
rm x265_2pass.log.temp
rm x264_2pass.log
rm x264_2pass.log.cutree
rm x264_2pass.log.cutree.temp
rm x264_2pass.log.temp
done
else
echo "Il faut taper 1 ou 2, rien d'autre. Relancez le script !"
fi
rm x265_2pass.log
rm x265_2pass.log.cutree
rm x265_2pass.log.cutree.temp
rm x265_2pass.log.temp
rm x264_2pass.log
rm x264_2pass.log.cutree
rm x264_2pass.log.cutree.temp
rm x264_2pass.log.temp
convertion_par_lot_videos_en_265_une_passe_crf
#!/bin/bash
# conversion par lot de fichier video au format H265 avec audio en mp3 qualité 320k
# nice -19 signifie que le programme aura la priorité la plus faible, ce qui ne devrait pas beaucoup ralentir l'exécution des autres programmes.
# si vous souhaitez interrompre le programme pour avoir accÚs à tout le processeur, tapez l'instruction top puis identifiez le PID UTIL des processeurs ffmpeg concernés puis tapez kill - STOP numero_pid_util. Pour relancer le processus, tapez kill - CONT numero_pid_util
echo "Ce script va rĂ©encoder vos vidĂ©os (MKV, MP4, MTS, AVI, MOV, WEBM FLV) en H265, le son en MP3 256k et au format de conteneur MKV en 1 passe. Vous allez pouvoir choisir CRF (constant rate factor) pour la vidĂ©o. Les extensions des vidĂ©os peuvent ĂȘtre en minuscules ou majuscules mais pas un mĂ©lange des deux."
echo -n "Entrez le CRF que vous souhaitez utiliser : (entre 1 et 51 - 1 pour la meilleure qualité, 51 pour la plus mauvaise) - 28 est recommandé : "
read crf
echo -n "Entrez la vitesse que vous souhaitez utiliser : (ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow) - votre choix joue sur la vitesse de traitement et la qualité. Superfast sera trÚs rapide mais de moins bonne qualité. medium est le choix recommandé. Votre choix : "
read speed
# on peut modifier le fichier de sortie en ajoutant un répertoire : "$i.mkv" devient "/home/perso/mon_repertoire/$i.mkv"
# les lignes (rm x265_2pass.log / rm x265_2pass.log.cutree / rm x265_2pass.log.cutree.temp / rm x265_2pass.log.temp) suppriment les fichiers générés lors des deux passes
# pour conserver l'audio, remplacer -c:a libmp3lame -b:a 256k par -c:a copy
# pour réduire la qualité audio, remplacer le 256k dans "-c:a libmp3lame -b:a 256k" par un nombre plus petit (par exemple 128k ou 92k)
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir convertis_x265
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ;
do
nice -19 ffmpeg -i "$i" -c:v libx265 -crf "$crf" -preset "$speed" -c:a libmp3lame -b:a 256k "$i.mkv"
mv "$i.mkv" ./convertis_x265
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
#les lignes suivantes suivantes suppriment les fichiers temporaires de la premiĂšre passe en cas d'interruption.
rm x265_2pass.log
rm x265_2pass.log.cutree
rm x265_2pass.log.cutree.temp
rm x265_2pass.log.temp
rm x264_2pass.log
rm x264_2pass.log.cutree
rm x264_2pass.log.cutree.temp
rm x264_2pass.log.temp
convertion_par_lot_videos_en_xvid
#!/bin/bash
# ce script balaie tous les fichiers d'un mĂȘme rĂ©pertoire et va convertir les AVI en XVID et conserver le son d'origine
# nice -19 signifie que le programme aura la priorité la plus faible, ce qui ne devrait pas beaucoup ralentir l'exécution des autres programmes.
# si vous souhaitez interrompre le programme pour avoir accÚs à tout le processeur, tapez l'instruction top puis identifiez le PID UTIL des processeurs ffmpeg concernés puis tapez kill - STOP numero_pid_util. Pour relancer le processus, tapez kill - CONT numero_pid_util
echo "Ce script va rĂ©encoder vos vidĂ©os AVI en XVID, conserver le son d'origine et au format de conteneur MKV en 2 passes. Les extensions des vidĂ©os (AVI ou avi) peuvent ĂȘtre en minuscules ou majuscules mais pas un mĂ©lange des deux. La convertion directe de MJPEG vers 265 pose des problĂšmes de couleurs. Il faut donc passer par XVID d'abord (voir https://stackoverflow.com/questions/71397605/ffmpeg-mjpeg-h-265-smeared-color-on-output-video-file )"
# on peut modifier le fichier de sortie en ajoutant un répertoire : "$i.mkv" devient "/home/perso/mon_repertoire/$i.mkv"
# pour conserver l'audio, remplacer -c:a libmp3lame -b:a 256k par -c:a copy
# pour réduire la qualité audio, remplacer le 256k dans "-c:a libmp3lame -b:a 256k" par un nombre plus petit (par exemple 128k ou 92k)
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir convertis_xvid
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.avi *.AVI ; do
nice -19 ffmpeg -y -i "$i" -c:v mpeg4 -vtag xvid -b:v 16000k -pass 1 -an -f avi /dev/null
ffmpeg -i "$i" -c:v mpeg4 -vtag xvid -b:v 16000k -pass 2 -c:a copy "$i.mkv"
mv "$i.mkv" ./convertis_xvid
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
convertion_vers_mkv_par_lot
#!/bin/bash
# conversion par lot de fichiers vers mkv - mofifier l'extension si nécessaire - supprimer les extensions d'origine avec krename ensuite. Attention, s'il y a déjà des fichiers MKV, ils seront reconvertis en MKV
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir convertis_mkv
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
# autre chose trouvé sur internet avec bug : ffmpeg -flags +genpts -i "$i" -c copy -sn "$i.mkv"
nice -19 ffmpeg -y -i "$i" -c:v copy -c:a copy "$i.mkv"
mv "$i.mkv" ./convertis_mkv
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
convertion_videos_en_son_par_lot
#!/bin/bash
# conversion par lot de fichiers vers mkv - mofifier l'extension si nécessaire - supprimer les extensions d'origine avec krename ensuite. Attention, s'il y a déjà des fichiers MKV, ils seront reconvertis en MKV
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir convertis_mkv
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
# autre chose trouvé sur internet avec bug : ffmpeg -flags +genpts -i "$i" -c copy -sn "$i.mkv"
nice -19 ffmpeg -y -i "$i" -c:v copy -c:a copy "$i.mkv"
mv "$i.mkv" ./convertis_mkv
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
convertir_son_en_mp3_garder_video
#!/bin/bash
echo -n "Ce script va convertir le son des videos en mp3 sans toucher la video et ajouter l'extension .MKV à la fin du fichier. Choisissez la qualité mp3 (256 recommandé) : "
read bitratemp3
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir convertis_mp3
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
nice -19 ffmpeg -i "$i" -c:v copy -c:a libmp3lame -b:a "${bitratemp3}k" "$i.mkv"
mv "$i.mkv" ./convertis_mp3
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
extraire_image_precise_d_une_video
#!/bin/bash
echo -n "Entrez le numéro de l'image que vous souhaitez extraire (attention, la numérotation commence à 0 donc si vous souhaitez la frame 536, il faut saisir 535) "
read num_frame
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
nice -19 ffmpeg -i "$i" -vf "select=eq(n\,$num_frame)" -vframes 1 screenshot_frame_"$num_frame"_"$i".png
done
recuperer_bitrate_video_par_lot
#!/bin/bash
#recherche le bitrate des videos de façon récursive
find . \( -iname "*.mkv" -or -iname "*.mov" -or -iname "*.mts" -or -iname "*.mp4" -or -iname "*.mpg" -or -iname "*.mpeg" -or -iname "*.flv" -or -iname "*.avi" -or -iname "*.webm" -or -iname "*.wmv" -or -iname "*.3gp" -or -iname "*.rm" -or -iname "*.asx" -or -iname "*.vob" -or -iname "*.f4v" -or -iname "*.mks" -or -iname "*.m4v" -or -iname "*.ogv" -or -iname "*.m2v" -or -iname "*.mpv" -or -iname "*.ts" -or -iname "*.m2ts" -or -iname "*.avc" -or -iname "*.hevc" -or -iname "*.m1v" -or -iname "*.m2v" -or -iname "*.mpv" \) -print0 | xargs -0 -i{} sh -c " echo -n '{} ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*bitrate: //p' " > result_bitrate.csv
#ecrit le bitrate de toutes les videos d'un dossier dans le fichier result_mts.csv.
# Ouvrir avec tableur et choisir séparateur ESPACE pour mieux visualiser les bitrate
recuperer_toutes_infos_video_par_lot
#!/bin/bash
#recherche les informations des videos
find . \( -iname "*.mkv" -or -iname "*.mov" -or -iname "*.mts" -or -iname "*.mp4" -or -iname "*.mpg" -or -iname "*.mpeg" -or -iname "*.flv" -or -iname "*.avi" -or -iname "*.webm" -or -iname "*.wmv" -or -iname "*.3gp" -or -iname "*.rm" -or -iname "*.asx" -or -iname "*.vob" -or -iname "*.f4v" -or -iname "*.mks" -or -iname "*.m4v" -or -iname "*.ogv" -or -iname "*.m2v" -or -iname "*.mpv" -or -iname "*.ts" -or -iname "*.m2ts" -or -iname "*.avc" -or -iname "*.hevc" -or -iname "*.m1v" -or -iname "*.m2v" -or -iname "*.mpv" \) -print0 | xargs -0 -i{} sh -c " echo -n '{} ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*Video: //p' " > result_toutes_les_infos.csv
#ecrit les informations toutes les videos d'un dossier dans le fichier result_toutes_les_infos.csv.
#Ouvrir avec tableur et choisir séparateur ESPACE pour mieux visualiser les bitrate
stabiliser_video_par_lot_version
#!/bin/bash
# stabiliser des videos par lot
echo -n "Sélectionnez la stabilité de la vidéo que vous souhaitez : 1 (trÚs stable) jusqu'à 10 (trÚs instable) "
read stabilite
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir stabilisee
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$stabilite:accuracy=15 -f null - && \
#shakiness=10 peut etre modifié en mettant shakiness = nombre_entre_1_et_10 : 1 video stable, 10 video trÚs instable
nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$stabilite:accuracy=15 -f null -&& nice -19 ffmpeg -i "$i" -vf vidstabtransform=smoothing=30:input="transforms.trf" "stabilisee_$i"
rm transforms.trf
mv "stabilisee_$i" ./stabilisee
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
creer_video_cote_a_cote_par_lot
#!/bin/bash
#ce script va créer une vidéo à partir de deux vidéos, l'une que l'on peut nommer ma_video.mkv et l'autre qui doit alors se nommer stabilisee_ma_video.mkv
#les deux vidéos seront cÎte à cÎte, ce qui permet de les comparer
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB ; do
# la video d'origine correspond Ă $i et l'autre video doit commencer par "stabilisee" mais il suffit de changer le prefixe si necessaire
ffmpeg -i "$i" -i "stabilisee_$i" -filter_complex "[0:v]setpts=PTS-STARTPTS, pad=iw*2:ih[bg]; [1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w" "cote_a_cote_$i"
done
supprimer_bande_son_video
#!/bin/bash
#supprimer la bande son de toutes les videos (au format voir ci-dessous) d'un mĂȘme rĂ©pertoire et crĂ©e un fichier MKV sans bande son. Ne rĂ©encode pas la vidĂ©o.
mkdir originaux
# crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers originaux aprĂšs conversion
mkdir sans_son
#crĂ©e un rĂ©pertoire oĂč seront dĂ©placĂ©s les fichiers convertis
for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
nice -19 ffmpeg -i "$i" -c copy -an "$i.mkv"
mv "$i.mkv" ./sans_son
#déplace les fichiers convertis
mv "$i" ./originaux
#déplace les fichiers originaux
done
stabiliser_video_par_lot_en_testant_les_10_qualites
#!/bin/bash
# test toutes les qualitĂ©s de stabilisation pour un mĂȘme fichier
# test les 10 qualités de stabilité
for qualite in 1 2 3 4 5 6 7 8 9 10 ; do
for i in *.mkv ; do
# nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$qualite:accuracy=15 -f null - && \
#shakiness=10 peut etre modifié en mettant shakiness = nombre_entre_1_et_10 : 1 video stable, 10 video trÚs instable
nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$qualite:accuracy=15 -f null -&& nice -19 ffmpeg -i "$i" -vf vidstabtransform=smoothing=30:input="transforms.trf" "stabilisee_$i_$qualite.mp4"
rm transforms.trf
done
done
En conclusion
Il faut du temps et de lâenvie pour se lancer dans cette aventure, mĂȘme si le CPU fait 80 % du travail. Mais les 20 % restant ne sont pas Ă nĂ©gliger. Entre les copier-coller quâil ne faut pas rater, le classement des vidĂ©os par bitrate ou dimension, les vidĂ©os rĂ©encondĂ©es quâil faut visionner (en accĂ©lĂ©rĂ©) pour sâassurer quâelles sont correctes, etc. il faut vraiment rester concentrĂ© pour Ă©viter dâoublier une vidĂ©o ou, pire, de lâeffacer alors quâelle nâa pas Ă©tĂ© rĂ©encondĂ©e.
Les avantages
Mais je ne regrette pas tout ce temps, surtout pour avoir revisionné quasiment toutes mes vidéos, celle de mes enfants bébé (le coup de vieux en pleine figure), les moments en famille, les grands-parents disparus⊠Cela a été des moments vraiment agréables.
Cela mâa Ă©galement permis de ranger des vidĂ©os qui nâĂ©taient pas dans le bon rĂ©pertoire ou de renommer celles qui comportaient une erreur dans leur nom.
Jâai maintenant toutes mes vidĂ©os avec le mĂȘme format de conteneur (MKV), et les mĂȘmes codec vidĂ©o et audio, ce qui facilitera grandement un rĂ©encodage ultĂ©rieur.
Et puis â câĂ©tait lâun des objectifs â le gain de place est trĂšs important puisque mon disque dur est passĂ© de 90 % Ă 48 % dâoccupation (jâai fait aussi un peu de mĂ©nage donc ce gain ne provient pas que du rĂ©encodage des vidĂ©os).
Les inconvénients
Est-ce une bonne idĂ©e de mettre tous ses Ćufs dans le mĂȘme panier (un seul format de conteneur, un seul codec video, un seul codec audio) , mĂȘme si ces formats sont libres et, pour H265, lisible avec des logiciels libres, ce qui est tout de mĂȘme une bonne assurance pour lâavenir ?
Du temps, du temps, et encore du temps : il faut en avoir pour ce projet (mais jâespĂšre que les scripts vous permettront dâen gagner)
Cela consomme de lâĂ©nergie et, si beaucoup de gens veulent rĂ©encoder leurs vidĂ©os, lâimpact environnemental ne sera pas nĂ©gligeable.
LâopĂ©ration monopolise un ordinateur (nice -19 ne mâa pas paru trĂšs efficace quand je lançais trois encodages simultanĂ©ment!). Mais cela peut ĂȘtre lâoccasion dâen utiliser un qui dort dans un placard et qui pourrait ainsi resservir.
Si câĂ©tait Ă refaireâŠ
- Je le referai, sans aucun doute !
- Jâessaierai de conserver les mĂ©tadonnĂ©es (date, heure, coordonnĂ©es GPS) de mes vidĂ©os (mĂȘme si les informations les plus importantes sont dans leur nom) ;
- Je tenterai dâutiliser le GPU pour le rĂ©encodage, ce qui rĂ©duirait le temps de calcul.
Note pour le prochain confinement :
- convertir les vidéos en AV1 ;
- convertir les photos en AVIF ;
- créer des fichiers PAR2 pour sécuriser mes sauvegardes
[1] : je n'ai pas réussi à trouver l'équivalent de la commande jhead -autorot -nf%Y_%m_%d_%H%M_%S_ *.jpg
pour les videos
Commentaires : voir le flux Atom ouvrir dans le navigateur