Profil de qualité constante HW H265

Je vais mettre à jour et voir. J’ai essayé cq dans une version précédente de mon profil. La documentation de ffmpeg n’est pas exactement claire, mais la documentation de NVidia pour leur extension mentionnait crf vs cq pour la qualité constante. Quoi qu’il en soit, pour la plupart des encodages, je peux faire une émission d’une heure en environ 10 minutes :slight_smile:

Vous pouvez interroger ffmpeg pour obtenir la liste des options disponibles pour chaque encodeur, voici ce qui s’affiche pour h264_nvenc

Comme vous pouvez le voir, il y a 2 options : -cq (ce que nous voulons, qualité constante) et -qp (ce que nous ne voulons PAS, car c’est un quantificateur constant, assez inutile).

Vous devrez peut-être également définir -rc vbr, mais vous pouvez essayer avec et sans et me dire comment cela se passe.

-rc E..V… Remplacer le mode de contrôle de débit prédéfini (de -1 à INT_MAX) (défaut -1)
constqp E..V… Mode QP constant
vbr E..V… Mode débit variable
cbr E..V… Mode débit constant
vbr_minqp E..V… Mode débit variable avec MinQP
ll_2pass_quality E..V… Multi-passes optimisé pour la qualité d’image (uniquement pour les préréglages à faible latence)
ll_2pass_size E..V… Multi-passes optimisé pour une taille d’image constante (uniquement pour les préréglages à faible latence)
vbr_2pass E..V… Mode débit variable multi-passes
-rc-lookahead E..V… Nombre d’images à anticiper pour le contrôle de débit (de -1 à INT_MAX) (défaut -1)
-surfaces E..V… Nombre de surfaces simultanées (de 0 à 64) (défaut 32)
-cbr E..V… Utiliser le mode d’encodage cbr (défaut false)
-2pass E..V… Utiliser le mode d’encodage 2 passes (défaut auto)
-gpu E..V… Sélectionne le GPU NVENC à utiliser. Le premier GPU est 0, le second 1, etc. (de -2 à INT_MAX) (défaut any)
any E..V… Choisir le premier appareil disponible
list E..V… Lister les appareils disponibles
-delay E..V… Retarder la sortie image du nombre d’images donné (de 0 à INT_MAX) (défaut INT_MAX)
-no-scenecut E..V… Lorsque l’anticipation est activée, mettre à 1 pour désactiver l’insertion adaptative d’images I aux changements de scène (défaut false)
-forced-idr E..V… Si imposition d’images clés, les forcer en tant qu’images IDR. (défaut false)
-b_adapt E..V… Lorsque l’anticipation est activée, mettre à 0 pour désactiver la décision adaptative d’images B (défaut true)
-spatial-aq E..V… mettre à 1 pour activer l’AQ spatiale (défaut false)
-temporal-aq E..V… mettre à 1 pour activer l’AQ temporelle (défaut false)
-zerolatency E..V… Mettre à 1 pour indiquer un fonctionnement en latence zéro (pas de délai de réordonnancement) (défaut false)
-nonref_p E..V… Mettre à 1 pour permettre l’insertion automatique d’images P non de référence (défaut false)
-strict_gop E..V… Mettre à 1 pour minimiser les fluctuations de débit entre GOP (défaut false)
-aq-strength E..V… Lorsque l’AQ spatiale est activée, ce champ sert à spécifier la force de l’AQ. L’échelle va de 1 (faible) à 15 (agressif) (de 1 à 15) (défaut 8)
-cq E..V… Définir le niveau de qualité cible (0 à 51, 0 signifie automatique) pour le mode qualité constante en contrôle de débit VBR (de 0 à 51) (défaut 0)
-aud E..V… Utiliser des délimiteurs d’unité d’accès (défaut false)
-bluray-compat E..V… Contournements de compatibilité Bluray (défaut false)
-init_qpP E..V… Valeur QP initiale pour image P (de -1 à 51) (défaut -1)
-init_qpB E..V… Valeur QP initiale pour image B (de -1 à 51) (défaut -1)
-init_qpI E..V… Valeur QP initiale pour image I (de -1 à 51) (défaut -1)
-qp E..V… Méthode de contrôle de débit à paramètre de quantification constant (de -1 à 51) (défaut -1)

Merci pour les infos ci-dessus – je récupérais les commandes depuis le site des développeurs NVidia – cela semblait n’exposer qu’un sous-ensemble par rapport à FFMPEG global – j’ai aussi remarqué dans certains journaux que hevc_nvenc est le nouveau nom de l’encodeur et que nvenc_hevc est obsolète.

Je vais donc essayer cette modification du profil d’encodage :

[----------------------]
[MKV HEVC Constant Quality]
Description=ATTENTION : Encodage en qualité constante Handbrake (25) avec HEVC Nvidia.
order=ffmpeg, handbrake
AllowH264CopyRemuxing=true
FixedResolution=true
AutoDeinterlace=true
ffmpeg-UsingHardwareEncoding=True
ffmpeg-general=-threads 0 -hwaccel auto
ffmpeg-video=-ss 9 -c:v hevc_nvenc -cq 25 -rc vbr -map 0:v
ffmpeg-audio=-acodec ac3 -ab 192k -map 0:a
ffmpeg-audioac3=-acodec ac3 -ab 384k -map 0:a
ffmpeg-ext=.mkv
ffmpeg-audiodelay=skip
handbrake-UsingHardwareEncoding=true
handbrake-general=--decomb --denoise="weak" --loose-anamorphic --verbose=2 -T -O
handbrake-video=--start-at duration:3 -e x265 -q 18
handbrake-audio=-E ffac3 -R auto -B 192 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E ffac3 -R auto -B 384 -D 0 -a 1,2,3,4,5
handbrake-ext=.mkv
handbrake-audiodelay=skip
PreConversionCommercialRemover=true

Faites varier les nombres -cq et voyez si la qualité change.

Je l’ai fait. Je l’ai ramené de 25 à 23. Un peu mieux. Je pense que le vbr fait autant de différence que le reste.

via Newton Mail

Essayez des valeurs extrêmes comme 5 ou 40

J’ai essayé 18 et moins - à ce niveau, il y a une économie de compression très marginale (300 Mo sur un fichier de 1,3 Go). 23 semble être le bon point d’équilibre pour HEVC CQ.

Si je comprends bien les concepts ici avec le dernier profil listé.
Si je donne à -cq une valeur entière plus grande, la compression est moins efficace (c’est-à-dire un fichier plus gros).
Cela accélère-t-il l’encodage ou dégrade-t-il la qualité vidéo en soi ?

Oui. C’est exact. C’est aussi une échelle non linéaire. Plus le nombre est grand, plus le fichier est gros. Si vous connaissez un peu HandBrake ou h264, cq20 équivaut à cq23 en hevc. Merci! Will.

Le fichier est moins complexe, donc il est légèrement plus facile à encoder/décoder. Cela dit, vous remarquerez une différence dans la qualité vidéo. Si vous enregistrez beaucoup de sports ou d’autres contenus à mouvements rapides, vous devriez pencher vers le bas. Bonne chance !

Alors tout d’abord, excellent profil H265, il fonctionne très bien avec une carte Quadro comme source d’encodage matériel !

Deuxièmement, j’ai expérimenté avec ce profil et j’ai tenté de créer une version H264 de l’encodeur dédié en utilisant ffmpeg, mais je rencontre des problèmes de syntaxe qui empêchent le traitement. Quelqu’un ici a-t-il déjà joué avec cela ?

La raison de cette volonté est de créer un profil plus rapide mais avec une qualité constante pour des émissions qui ne nécessitent pas un stockage à long terme comme les sports, Jeopardy, etc., qui seront regardées une ou deux fois puis supprimées, afin d’économiser du temps sur le transcodage nocturne par rapport aux fichiers stockés à long terme comme les séries TV ou les films.

Merci - je comprends parfaitement la difficulté de décoder les commandes ffmpeg - la documentation est… laconique.

Vous voulez remplacer HEVC_nvenc par h264_nvenc. Rappelez-vous que la qualité constante est différente entre le 265 et le 264. La « valeur par défaut » pour le 265 est 23, tandis que celle pour le 264 est 20.

J’espère que cela aide ! Will.

Merci mon pote, j’ai essayé ça, mais peu importe comment je tordais la syntaxe, ça retombait toujours sur l’option CLI de handbrake. J’ai lu une tonne de documentation, comme tu dis laconique, c’est vrai au passage !, et j’ai trouvé plein d’infos concernant les options de l’encodeur h264_nvenc qui semblaient différentes de celles de l’encodeur HEVC dans la ou les versions actuelles de ffmpeg.

Je peux poster une copie de quelques profils de test demain quand j’aurai l’occasion si tu es partant pour m’aider à dépanner afin que le profil fonctionne. Pour l’instant, je m’appuie sur des modifications des profils h264 intégrés basés sur l’encodeur libx264 qui peuvent certes utiliser l’accélération matérielle, mais j’aimerais en construire un purement basé sur l’encodeur matériel, à la manière de celui que tu as créé pour HEVC.

Heureux d’essayer d’aider. Pour commencer, ouvrez une ligne de commande et exécutez “FFMpeg.exe -codecs”. Cela montrera quels codecs sont disponibles pour vous dans FFMpeg.

Pour la solution de secours Handbrake, je sais que les versions récentes de Handbrake supportent nvenc, mais je ne suis pas sûr si handbrakecli.exe peut simplement être remplacé. Je vais faire un peu plus de recherches.

Merci! Will.

by asking question before asking

Vous pouvez télécharger la version 1.2 de handbrakecli ici : HandBrake

Il intègre nvenc_h264 et nvenc_h265. Peut-être essayez de faire faire de même à Handbrake…

]), couple couple few quite均 couple均均均 );
few multiple均 couple ), multiple multiple multiple multiple multiple均均 couple multiple multiple均均 couple multiple均均]),均 couple); couple pretty multiple couple few均 couple非常的):): entire couple非常的 couple couple plenty few multiple multiple multiple multiple multiple multiple multiple couple multiple couple非常的)、均 couple]: couple]: couple非常的 couple非常的 couple plenty few few couple非常的 couple非常的 couple)), multiple few couple非常的 couple非常的 multiple few few );
couple非常的 couple非常的 multiple multiple few few couple)),均 multiple few few couple非常的 couple有过 couple]: couple);均 couple)); bit couple)), couple couple )

couple couple Cou couple couple非常的 couple Cou couple ),均 couple]: couple ), couple couple]: couple ), couple substant few couple ), entire couple非常的 couple]: couple)), any any couple couple couple couple couple numerous couple couple numerous couple couple couple couple numerous couple anywhere bit bit couple couple couple few couple anywhere quite couple numerous均 couple numerous few few few couple few few couple few bit())
couple numerous bit bit bit bit bit anywhere bit couple bit bit numerous bit bit )

couple numerous bit substantial couple bit numerous )
couple numerous bit numerous )
bit bit非常的 couple couple couple numerous couple numerous few couple numerous couple numerous couple numerous bit couple numerous bit couple numerous bit couple numerous bit Cou couple numerous few couple somew few few couple few couple )
few couple lots few few few bit few bit bit few few bit bit bit numerous bit numerous bit numerous bit Cou bit couple few couple couple few few few bit bit numerous bit numerous couple couple few couple couple few bit few bit bit couple few bit bit bit bit couple few couple bit bit numerous bit numerous bit numerous few couple Cou couple couple bit bit numerous couple few bit bit非常的 couple numerous bit numerous couple couple couple quite bit bit Cou couple numerous couple couple numerous couple Cou couple非常的 couple numerous couple numerous couple Cou couple numerous couple非常的 couple numerous couple numerous couple Cou couple numerous couple numerous couple Cou couple numerous couple numerous few couple numerous couple Cou couple numerous couple numerous couple Cou couple numerous couple numerous few couple numerous couple Cou couple numerous few couple numerous couple Cou couple anywhere bit bit anywhere bit bits bit bit bit bit bit bit bit bit couple quite very few few any few few any few few few few few few few few plenty few few few); few any few});

very few anywhere any few anywhere few few few]: rather few); few anywhere few ton few anywhere few ton few ton few few few few few ton few]: few anywhere few few few());
few anywhere few anywhere few few few ton few anywhere few ton few用来 bit bit bit anywhere bit用来 bit plenty bit bits few few bit bit ton bit]: bit bits few few bit few few bit bit bit bit few bit bit few bit bit]: few bit ton few bit bit few bit few bit few few few bit few bit few bit few bit few bit few few few few few bit few few few few bits few few few bit few few bits few ton few bits few anywhere few bit few bit few bit few anywhere bit bit few bit bit few few few bit few bits few]: few bits few ton few bits few bit bit few bits few bits bit few]: few bits few了不少 fewsort fewSort fewSort fewsort fewsort few few few few few bit bit bit]: few});

few anywhere few plenty few bits few anywhere few anywhere few}}
few anywhere few ton few ton few anywhere few anywhere fewMany bit bit few few few few Many few few Many fewMany few few用来 few ton few Many bit few fewager few plenty few ton few Cou few Many few few few few ton fewager few ton few ton few ton few示范 bit few示范 quite fewMany few Many few ton few Many few ton few substantial few ton few substantial few ton few substantial few ton bit few ton few substantial few ton few substantial few用来 few Many few ton few substantial few ton few Many fewMany few ton fewamount many few substantial quite few ton few substantial few substantial few ton few substantial few Many few substantial fewMany few ton few substantial few substantial few ton few Many few substantial few substantial few Many few ton few ton few substantial few ton few substantial few Many few ton few ton few ton few substantial few substantial few substantial few ton few ton few ton few substantial few ton few substantial few substantial few ton few ton few ton few substantial many few ton few substantial few substantial few ton few ton few substantial few); few ton few ton few这也是 few ton few多数 few学生的 few ||
few ton fewager few ton few); quite few ton few ton few学生的 few ton few ton few ton few ton few ton few

to

Hé mec, la documentation pour HandBrakeCli est tellement meilleure et plus facile à utiliser que celle de ffmpeg

J’ai joué avec les options et j’ai obtenu des résultats assez corrects avec H265.

Devant gérer beaucoup de sources vidéo entrelacées de nos chaînes câblées, j’ai dû le configurer pour faire du decomb et trouver le bon équilibre pour les moteurs NVENC sur mes différentes cartes et CPU.

Ce profil me donne environ 90% de performance du moteur sur un I7-8700K avec une nVidia 1060 GPU où le CPU fait le decoming et le moteur NVENC fait tout l’encodage vidéo entre 240 et 300 fps avec charge CPU complète pour les filtres, filtres retirés il peut pousser le framerate jusqu’à 400+

Même profil sur un I5-8400 nVidia Quadro P400 encode autour de 190-250, pas de filtres pousse dans les 300+

[Handbrake Cli 1.2.0 H265 - Quality 28]
Description=nVidia NVENC HW (H265) Quality Setting 28 + Decomb
order=handbrake
FixedResolution=true
PreConversionCommercialRemover=false
UniversalCommercialRemover=false
handbrake-general=--loose-anamorphic --comb-detect=fast --decomb=mode=7 --verbose=2 --format av_mkv --subtitle 1,2,3
handbrake-video=--start-at duration:0 --encoder nvenc_h265 --encoder-preset slow --encoder-level 4.1 --quality 28 --vfr
handbrake-audio=--aencoder copy:aac --audio 1,2,3
handbrake-audioac3=--aencoder copy:ac3 --audio 1,2,3
handbrake-ext=.mkv
handbrake-audiodelay=skip

Si tu pousses le preset NVENC à medium tu gagnes peu de vitesse avec les filtres activés car la charge CPU est le goulot d’étranglement, tu pourrais théoriquement faire un encodage séparé sans decomb pour utiliser la capacité d’encodeur restante, filtres retirés la 1060 pousse le framerate dans les 550+, la P400 dans les 400+

Envisage d’équiper le I5-8400 (le serveur Plex destiné à faire tout le travail éventuellement) avec une carte P2000 pour les flux encodeur illimités pour le transcodage en direct de la TV en direct tout en faisant aussi l’encodage backend MCEBuddy,

Salut Anders,

J’obtiens des performances comparables avec ma config, bien que ton processeur soit un peu plus récent. Je vais tester le profil Handbrake que tu as partagé – merci !

J’exécute MCEBuddy et le serveur Plex sur la même machine – un i7 7700 avec 16 Go de RAM, une GTX 1060 et un SSD. La seule ressource distante est le NAS où je stocke tous mes enregistrements et médias Plex. Cette configuration fonctionne plutôt bien pour moi – en HD, une émission d’une heure prend environ 10 minutes à encoder avec le profil que j’ai partagé. L’économie d’espace avec le H265 est excellente.

J’utilisais auparavant un Core i5 – mais j’ai constaté que l’hyperthreading avait un impact important sur les performances globales. Cela dit, c’était avant que PMS n’intègre l’accélération matérielle – il est peut-être possible maintenant d’utiliser un CPU moins puissant, sauf pour le désentrelacement / décombing.

Merci pour le partage ! Will.

Mail](Outlook) pour Windows 10