Tuto : Encoder avec FFmpeg
FFmpeg, MkvtoolsNix, Mediainfo
Logiciels / Graphisme photo et vidéo

ren Membre non connecté
-
- Voir le profil du membre ren
- Inscrit le : 15/05/2021
J'ai essayé différent logiciel ( sous Windows ) puis je suis passée sur un système d'exploitation Linux et pour l'encodage il y a pas grand chose de pro .
Le plus connu est Handbrake , facile , puissant et multitâche . Mais si on à un serveur Linux , et pas d'interface visuelle , utilisé Handbrake en ligne de commande c'est pas intuitif , manque de souplesse .
Alors qu'ffmpeg est bien plus abordable et çà fait grave le taff .
Pour encoder avec ffmpeg un remux en mkv de moins de 8 gigabit , il faut déjà installer ffmpeg sur le serveur s'il n'est pas déjà présent
Installer ffmpeg sous Mageia :Disponible dans les depots Mageia .
Vérifier les containers et les codecs installés
1/ ffmpeg -formats
2/ ffmpeg -codecs
Encodage : Pour un fichier d'environ 5/8 giga
Pour encoder un remux (bluray rippé ) , vous devez connaître les ID des Streams ( Streams c'est les pistes constituant le film , piste vidéo , pistes audio ( vff , Vo ) , pistes sous-titres .
Les Streams sont appelés " map " chez ffmpeg .
Pour connaître les streams disponible et leur ID , vous pouvez utilisé mediainfo ( attention quelques fois sur Linux mediainfo ( également disponible dans les dépôts mageia ) décale la valeur des ID ( pour un ID 1 sur mediainfo , chez ffmpeg il sera de 0 , il faudra donc descendre d'une valeur pour que le stream correspondant pour ffmpeg )
FFREPORT=file="/chemin/du/fichier_de_log.log":level=40 ffmpeg -i "/input.mkv" -c:v libx264 -preset veryslow -crf 18 -map 0:0 -map 0:1 -map 0:2 -map 0:3 -codec:s copy -map 0:4 -codec:s copy -map 0:5 -codec:s copy -map 0:6 -codec:s copy -acodec aac -strict -2 -b:a:1 384k -b:a:2 384k -ac:a:1 6 -ac:a:2 6 "/output.mkv"
Voici une premier ligne de commande classique .
FFREPORT=file="/chemin/du/fichier_de_log.log":level=40 : Correspond au fichier de log , optionnel si vous ne voulez pas garder une trace de votre encodage .
ffmpeg -i : Indispensable pour utiliser ffmpeg ( on fait appel au programme pour encoder )
"/input.mkv" : Fichier source que vous voulez encoder ( çà peut être un mkv ou avi ou mp4 ..)
-c:v : Indispensable pour définir ce que l'on veut encoder , ici un fichier vidéo ( -c= codec/conversion , v = video )
libx264 : Indispensable , ici on choisi d'utiliser le codec libx264 ( sur le site ffmpeg vous avec les listes de codec utilisable )
Premier paramètre d'encodage
-preset veryslow -crf 18 : Ici c'est les spécification d'encodage ( un peu comme Handbrake ) On choisi le preset , et le bitrate d'encodage ( mode crf ) meilleur rendu que les bitrates fix ( en 1 ou 2 passes ) .
-map : c'est ce qui indique le stream à encoder, qui est rattaché à un ID ( vidéo, audio , sous-titres
-map 0:3 -codec:s copy = correspond au sous titre , on copie directement le sous titres ( le "s" après codec est le "s" de sous titre )
-codec:s = sous titres
-codec:a = audio
-codec:v = video
-acodec ( appel du codec audio ) aac ( encodage en aac ) -strict -2 ( utiliser le mode Normal ( pas trop compris à quoi cela sert ) -b:a:1 384k ( bitrate audio stream (ou map 0:1) à 384k etc..
output.mkv ( fichier de sorti en mkv , vous pouvez choisir mp4 )
Paramètre d'encodage x264 ( Voir info)
Pour améliorer l'encodage on peu forcer ffmpeg à utiliser des paramètre d'encodage spécifique , ici j’utilise le x264
-x264-params "level=4.1:ref=6:deblock=-3,-3:analyse=all:me=umh:subq=10:merange=64:trellis=2:fast-pskip=0:dct-decimate=0:bframes=9:b-adapt=2:weightp=1:keyint=240:keyint-min=24:rc-lookahead=64:mbtree=0:qcomp=0.8:qpmin=0:qpmax=69:vbv-maxrate=60000:vbv-bufsize=60000:aq-mode=3:b-pyramid=strict"
Je ne détaillerais pas les paramètre, sur le site de FFMPEG vous pouvez trouver toutes les explications .
Voici mon code final pour un encodage en x264 + audio Ac3
( à adapter en fonction des streams de votre fichier source et de vos choix d'encodage )
Code:
FFREPORT=file="/media/Encodage/log.log":level=40 ffmpeg -i "/media/Torrents/monfilms.mkv" -c:v libx264 -preset veryslow -tune film -profile:v high -crf 22 -threads 4 -x264-params "level=4.1:ref=6:deblock=-3,-3:analyse=all:me=umh:subq=10:merange=64:trellis=2:fast-pskip=0:dct-decimate=0:bframes=9:b-adapt=2:weightp=1:keyint=240:keyint-min=24:rc-lookahead=64:mbtree=0:qcomp=0.8:qpmin=0:qpmax=69:vbv-maxrate=60000:vbv-bufsize=60000:aq-mode=3:b-pyramid=strict" -map 0:0 -map 0:1 -acodec ac3 -strict -2 -b:a:1 448k -ac:a:1 6 "/media/Encodage/monfilm-encodé.mkv"
Ensuite je finalise le fichier avec mkvtoolsnix également disponible dans les dépôts magéia ) pour renommer les streams et faire un fichier tout bien rangé .
Édité par ren Le 19/06/2021 à 13h51
Processeur : I5 760 | Carte Mère : P7P55-M | Ram : 8G | Disques Dur : 1 SSD 240G + 8 TO HDD Sata | Carte Vidéo : Nvidia GT 1030

teutates Membre non connecté
-
- Voir le profil du membre teutates
- Inscrit le : 24/09/2011
- Site internet
- Groupes :
Tuto très intéressant ! Peut-être en faire une FAQ / WIKI

Toco y se gausos !
Asus P8Z68-V/GEN3 + Intel Core i2700k + RAM G-Skill 4x4Go PC 12800 + Gainward Geforce GTX 560 - 2 Go + Western Digital Velociraptor 300 Go (Mageia Cauldron / Fedora / Debian / Manjaro / Windows 10) + Seagate Barracuda 7200t/mn - 2 To - Sata 3 (data) + SSD Samsung 64 Go - Sata 3 (Mageia stable)
Asus P8Z68-V/GEN3 + Intel Core i2700k + RAM G-Skill 4x4Go PC 12800 + Gainward Geforce GTX 560 - 2 Go + Western Digital Velociraptor 300 Go (Mageia Cauldron / Fedora / Debian / Manjaro / Windows 10) + Seagate Barracuda 7200t/mn - 2 To - Sata 3 (data) + SSD Samsung 64 Go - Sata 3 (Mageia stable)

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Peut être faut il mentionner qu' il faut peut être les dépots tainted ( par exemple pour ffmpeg) ?
Je viens de tomber un générateur de commande ffmpeg :
https://lehollandaisvolant.net/tout/tools/ffmpeg/
Basique, mais ça peut être utile...
joel

ren Membre non connecté
-
- Voir le profil du membre ren
- Inscrit le : 15/05/2021
Processeur : I5 760 | Carte Mère : P7P55-M | Ram : 8G | Disques Dur : 1 SSD 240G + 8 TO HDD Sata | Carte Vidéo : Nvidia GT 1030
joel

ren Membre non connecté
-
- Voir le profil du membre ren
- Inscrit le : 15/05/2021
Processeur : I5 760 | Carte Mère : P7P55-M | Ram : 8G | Disques Dur : 1 SSD 240G + 8 TO HDD Sata | Carte Vidéo : Nvidia GT 1030
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie