[video] encodage video avec Ffmpeg en webm ( VP9 ) RESOLU

Applications multimedia / jeux
Neko62
Daikyu
Messages : 68
Inscription : mar. 22 sept. 2015, 19:27
Localisation : Pas-de-Calais

[video] encodage video avec Ffmpeg en webm ( VP9 ) RESOLU

Message par Neko62 »

Bonjour à tous,

je souhaite convertir mes fichiers vidéo actuellement en codec H264 et conteneur MKV, en codec VP9 et conteneur WEBM
pour cela je pense utiliser la ligne de commande suivante :

Code : Tout sélectionner

ffmpeg -i source.mkv -c:v libvpx-vp9 -crf 10 -b:v 0 -c:a libvorbis -threads 8 -f webm sortie.webm


cependant mes premiers tests me donne :
- un processeur à 4 coeurs qui n'est employé uniquement qu'à 50 % pour cet encodage malgré un "threads" à 8
- un fps à 8 de moyenne pour l'encodage ce qui rend le process très très long....

Donc mes questions sont les suivantes :
- comment puis je optimiser ce code pour accélérer l'encodage tout en conservant une bonne qualité du fichier vidéo de sortie ?
- comment puis je mettre à contribution le proc de ma carte graphique pour cet encodage toujours en conservant une bonne qualité du fichier vidéo de sortie ?

D'avance merci.
Dernière modification par Neko62 le jeu. 12 nov. 2015, 22:48, modifié 1 fois.
Arch Linux x86_64 - Plasma - Cairo-Dock - DoubleCommander
Intel Core i5 2400 @3,3GHz - Asus GeForce GTX 970(4.5.0 NVidia 355.11) - 8Go de DDR3 @1600MHz - SSD 120Go + 2 HDD 500Go
Avatar de l’utilisateur
nemon
Daikyu
Messages : 81
Inscription : lun. 17 nov. 2014, 18:14

Re: [video] encodage video avec Ffmpeg en webm ( VP9 )

Message par nemon »

Le "problème" vient du codec vidéo utilisé. libvpx (VP9) de Google n'est pas encore bien optimisé d'un point de vue encodage/hardware.

Je constate le même phénomène sur mon i5 2500K... j'ai de meilleurs résultats avec le x265 HEVC en terme de temps d'encodage.

Utiliser le codec VP9 est-il indispensable pour toi ?
Neko62
Daikyu
Messages : 68
Inscription : mar. 22 sept. 2015, 19:27
Localisation : Pas-de-Calais

Re: [video] encodage video avec Ffmpeg en webm ( VP9 )

Message par Neko62 »

Le VP9 n'est pas indispensable.
Je veux juste à la fois :
- garantir une qualité de la vidéo encodée équivalente à la vidéo d'origine
- gagner une place significative en taille de fichier après encodage
- optimiser au maximum le processus d'encodage à partir de mon matériel actuel ( i5 2400 et GTX970 ) pour réduire les délais d'encodage.

A partir de là, je suis ouvert à toute proposition de conversion avec ffmpeg.
Arch Linux x86_64 - Plasma - Cairo-Dock - DoubleCommander
Intel Core i5 2400 @3,3GHz - Asus GeForce GTX 970(4.5.0 NVidia 355.11) - 8Go de DDR3 @1600MHz - SSD 120Go + 2 HDD 500Go
Avatar de l’utilisateur
nemon
Daikyu
Messages : 81
Inscription : lun. 17 nov. 2014, 18:14

Re: [video] encodage video avec Ffmpeg en webm ( VP9 )

Message par nemon »

Personnellement, j'utilise x265 pour remplacer des vidéos en x264 quelque soit le conteneur : .mkv ou .mp4 dans mon cas.

le wiki de FFmpeg est très clair avec un exemple d'encodage en x265.

Un petit pense bête bien pratique aussi :D

Concernant le codec VP9, il est très bien mais je deux reproches/inquiétudes par rapport par rapport à HEVC :
- Ouvert mais développé par Google (c'est subjectif);
- Manque encore de compatibilité hardware (trop jeune ?) -> encodage encore plus long que x265;
- Je ne connais pas de GUI avancés pour encoder en VP9, ce qui le pénalise par rapport à son concurrent (perso je préfère FFmpeg aux GUI à la handbrake).

++
Neko62
Daikyu
Messages : 68
Inscription : mar. 22 sept. 2015, 19:27
Localisation : Pas-de-Calais

Re: [video] encodage video avec Ffmpeg en webm ( VP9 )

Message par Neko62 »

J'ai effectué un test avec le paramétrage suivant :

Code : Tout sélectionner

ffmpeg -i video.pas.en.x265.mkv -c:v libx265 -x265-params crf=23 -acodec copy video.x265.temp.mkv
ce qui me donne une vidéo en sortie de bonne qualité visuel et avec un passage de 9,6 Go à l'origine à un fichier de 1,3 Go, ce qui est très appréciable.

Seul petit bémol: un temps d'encodage de 8 fps soit une durée totale de 6 h 40 min pour un film de 2 h.
L'encodage monopolise quasi 100 % de mon CPU à 4 coeurs.
Cependant n'y a t'il pas moyen d'optimiser cela en recourant éventuellement au GPU en complément ?

D'avance merci.
Arch Linux x86_64 - Plasma - Cairo-Dock - DoubleCommander
Intel Core i5 2400 @3,3GHz - Asus GeForce GTX 970(4.5.0 NVidia 355.11) - 8Go de DDR3 @1600MHz - SSD 120Go + 2 HDD 500Go
Neko62
Daikyu
Messages : 68
Inscription : mar. 22 sept. 2015, 19:27
Localisation : Pas-de-Calais

Re: [video] encodage video avec Ffmpeg en webm ( VP9 )

Message par Neko62 »

J'ai trouvé le code suivant :

Code : Tout sélectionner

ffmpeg -i video.pas.en.x265.mkv -vcodec nvenc_hevc -b:v 2000k video.x265.temp.mkv
Qu'en pensez-vous par rapport au précédent avec libx265 ?
Y a t'il un paramètre du codec video "nvenc_hevc" équivalent au "crf" du codec "libx265" qui définit un facteur cible de qualité et permet à l'encodeur de changer en fonction de la quantification par type de trame et de la complexité de séquence ?

De même, je suppose que l'utilisation de ce codec Nvidia nécessite l'installation de cette version de ffmpeg pour en bénéficier ? :
https://aur4.archlinux.org/packages/ffmpeg-full-nvenc/

D'avance merci.
Arch Linux x86_64 - Plasma - Cairo-Dock - DoubleCommander
Intel Core i5 2400 @3,3GHz - Asus GeForce GTX 970(4.5.0 NVidia 355.11) - 8Go de DDR3 @1600MHz - SSD 120Go + 2 HDD 500Go
Neko62
Daikyu
Messages : 68
Inscription : mar. 22 sept. 2015, 19:27
Localisation : Pas-de-Calais

Re: [video] encodage video avec Ffmpeg en webm ( VP9 )

Message par Neko62 »

Je passe le sujet en résolu car la conversion en x265 me convient pour l'instant.
Arch Linux x86_64 - Plasma - Cairo-Dock - DoubleCommander
Intel Core i5 2400 @3,3GHz - Asus GeForce GTX 970(4.5.0 NVidia 355.11) - 8Go de DDR3 @1600MHz - SSD 120Go + 2 HDD 500Go
Avatar de l’utilisateur
waitnsea
Maître du Kyudo
Messages : 2114
Inscription : jeu. 15 mars 2012, 05:08

Re: [video] encodage video avec Ffmpeg en webm ( VP9 )

Message par waitnsea »

Neko62 a écrit :Je passe le sujet en résolu car la conversion en x265 me convient pour l'instant.
Bonjour,
N'ayant aucune connaissance mais encodant assez souvent, j'utilise Handbrake qui permet de créer et choisir des profils.
Répondre