Mis à jour le 8 avril 2022.
Le 19 mars 2022, je vous expliquais comment convertir une vidéo en Av1 Opus avec FFmpeg et SvtAv1 avec Linux, aujourd’hui, je vais vous expliquer comment convertir une vidéo en 1080p AC-3, DTS ou Dolby Digital en 720p Av1 Opus 5.1 avec FFmpeg et SvtAv1.
Pourquoi convertir une vidéo 1080p en 720p :
Pour gagner de la place sur votre disque dur. Que cela change-t-il visuellement ?
Visuellement, si vous regardez votre vidéo sur votre PC ou une télé avec un écran de 22 pouces ou moins, vous ne verrez pas la différence.
Donc, vous allez rajouter une option à la ligne de commande de conversion de la piste vidéo :
ffmpeg -i video.1080p.5.1.H265.mkv -map 0:v:0 -pix_fmt yuv420p10le -vf scale=1280:-1 -f yuv4mpegpipe -strict -1 - | SvtAv1EncApp -i stdin --preset 6 --keyint 240 --input-depth 10 --crf 30 --rc 0 --passes 1 --film-grain 0 -b Outfile.ivf
Remplacez video.1080p.5.1.H265.mkv
par le nom de votre fichier.
Qui y a-t-il de changé ?
J’ai ajouté -vf scale=1280:-1
à la ligne de commande.
Souvent si on fait une recherche sur internet on tombe sur l’option -vf scale=-1:720
, ceci est une erreur (la plupart du temps). Pourquoi ?
Car la hauteur de la vidéo résultante de la conversion sera de 720 pixels et c’est ce qu’on demande à FFmpeg avec l’option -vf scale=-1:720
, ce n’est pas gênant si la vidéo est en 16/9e, mais si le ratio de la vidéo d’origine n’est pas en 16/9e par exemple en 2,35:1, ou la hauteur de la source est inférieur à 1080 pixels, la largeur de la vidéo résultante ne sera pas de 1280 pixels, car FFmpeg aura respecté le ratio de la vidéo pour la conversion, elle aura une largeur supérieure et une vidéo en 720p considère que la largeur et la hauteur doit être de 1280×720 pixels au maximum, donc elle ne sera pas en 720p. Comme les vidéos en 1080p ont en très grande majorité une hauteur de 1080 pixels ou inférieure, il est donc recommandable d’utiliser l’option -vf scale=1280:-1
.
Et si la résolution de la vidéo d’origine en 1080p a une largeur inférieure à 1920 pixels comme les vieux films ou les émissions de télé avant le passage au 16/9e par exemple une vidéo avec un ratio de 1,33:1 ? Là vous devrez utiliser l’option -vf scale=-1:720
, car la hauteur de la vidéo d’origine en 1080p sera de 1080 pixels donc la vidéo résultante sera forcément en 720p.
Pour terminer la conversion de la vidéo, vous allez réutiliser une des deux commandes suivantes déjà utilisées dans l’article cité plus haut :
ffmpeg -i Outfile.ivf -i videdo.1080p.5.1.H265.mkv -map 0:v -map 1:a:0 -map 1:s? -c:v copy -c:a libopus -af channelmap=channel_layout=5.1 -b:a 250k -vbr on -c:s -max_interleave_delta 0 FinalProduct.mkv
Remplacez videdo.1080p.H265.mkv
par le nom de votre fichier vidéo d’origine.
Remplacez FinalProduct.mkv
par le nom que vous voulez donner à votre fichier final.-map 1:s?
et -c:s
dans les deux dernières commandes vous permettrons de copier les sous-titres de la vidéo source s’il y en a de disponible.
-max_interleave_delta 0
permet d’éviter l’erreur Starting new cluster due to timestamp
.
Voilà, c’est fini. Vous pouvez supprimer le fichier Outfile.ivf
.
Personnellement j’utilise rav1e de cette façon pour mes archives de documentaires.
Une passe pour trouver le pic audio:
ffmpeg -hide_banner -ss 00 -i « Tourisme de masse – Faut-il arrêter de voyager -100296-000-.mp4 » -af earwax,volumedetect -vn -f null -y /dev/null
La conversion audio en Opus et en mono avec un débit très bas:
ffmpeg -nostats -hide_banner -ss 00 -i « Tourisme de masse – Faut-il arrêter de voyager -100296-000-A.mp4 » -vn -f wav -acodec pcm_s16le -af earwax,volume=12.2dB – | opusenc –bitrate 12 –framesize 40 –downmix-mono – audio.opus
La passe de coversion AV1 avec une qualité très faible qui convient pour mon cas (la vidéo est en 360p):
ffmpeg -nostats -hide_banner -ss 00 -i « Tourisme de masse – Faut-il arrêter de voyager -100296-000-A.mp4 » -vf scale,curves=linear_contrast,decimate=cycle=20 -pix_fmt yuv420p -f yuv4mpegpipe – | /usr/local/bin/rav1e –tiles 8 -y –quantizer 140 -s 10 – -o video.ivf
Assemblage des fichiers audio et vidéo:
ffmpeg -nostats -hide_banner -i video.ivf -i audio.opus -c:v copy -c:a copy -f webm « Tourisme de masse – Faut-il arrêter de voyager -100296-000-A.webm »
Bonjour, Cinos.
Merci pour ton retour d’utilisation du codec Rav1. Ça peut peut-être intéresser quelqu’un.
J’aurai plutôt vu ton commentaire sous l’article « Comment convertir une vidéo en Av1 Opus avec FFmpeg et SvtAv1 avec Linux » https://ignace72.eu/convertir-une-video-en-av1-opus-avec-ffmpeg-et-svtav1-avec-linux.html .
Personnellement, mes vidéos sont presque toutes en résolutions supérieures ou égales à 480p et les deux commandes que j’utilise me permettent de garder une qualité équivalente visuellement au fichier d’origine.
Ignace.
J’en conviens, pour ma part comme il s’agit de documentaires que je partage alentour (via une piratebox) je préfère un format léger.
Pour mes archives personnelles (dump de DVD par exemple) j’utilise plutôt VP9+Opus et dès que AV1 sera plus rapide à transcoder (qui sait si les nouvelles CG de Intel me le permetront ?) je passerais alors à ce format pour mes archives.
Il est vrai que mon commentaire aurait plus eu sa place sous l’autre billet. C’est juste que j’ai dû tomber sur l’actuel via une recherche web ou bien depuis mastodon et que je n’ai pas trop navigué sur le reste du site.
Ca fait du bien de voir qu’il y a d’autres personnes qui envisagent sérieusement des formats sans royalties.
Bonsoir, Cinos.
Oui, forcément, il faut que les fichiers soient légers.
Les cartes graphiques Intel Arc supportent l’encodage en Av1 (annoncé 50x plus rapide que l’encodage logiciel). D’abord viendront les modèles pour ordinateurs portables, viendront ensuite ceux pour ordinateur de bureau, c’est prévu pour cet été.
Pour les autres qui liront mon commentaire, les AMD RX 6000 supporteront aussi l’encodage en Av1. Pour Nvidia, c’est en développement.
Pour la position de ton commentaire, ce n’est pas grave comme il y a un lien vers l’article concerné. Je ne sais pas de quelle manière exactement sont arrivés mes visiteurs, je connais juste le site d’origine sans savoir la page exacte ou la recherche effectuée.
Étant défenseur militant des logiciels libres, il est normal que je sois intéressé par les formats libres ou ouverts.