Test avec Comskip donator build 0.82.012 et GPU

La version actuelle de Comskip (version donateur) dans MCEBuddy est 0.82.003.
Oui, je sais que nous pouvons ajouter notre propre version mise à jour de Comskip donateur.

La plus grande nouveauté du Comskip actuel ? La v0.82.011 est compilée avec les décodeurs FFMPEG 4.3
La suivante ? Détection des publicités pour les décodeurs 4K et 10 bits (HDR).

Pour la personne qui demandait la suppression des bandeaux défilants, cherchez « ticker » dans le fichier INI. Notez que la v0.82.007 a ajouté un paramètre INI pour détecter un ticker/bandeau supérieur. Si c’est ce qu’elle voulait, il faut une version plus récente de Comskip ; toutefois les décodeurs matériels ne sont disponibles que dans la version donateur.

Je serais prêt à faire à nouveau un don/achat de MCEBuddy si c’était le seul blocage pour obtenir une version donateur de Comskip à jour dans MCEBuddy (ou au moins dans la version Donateur de MCEBuddy). Bien sûr, je peux obtenir moi-même la version donateur de Comskip et configurer MCEBuddy pour l’utiliser, mais cela n’aide personne d’autre.

Est-ce prévu sur la roadmap MCEBuddy (pour 2023 ?) maintenant qu’il existe aussi une version plus récente de FFMPEG (v6.0) ? Je suppose que Comskip lie statiquement ses libs FFMPEG, mais je soupçonne qu’un FFMPEG plus récent pour MCEBuddy l’aiderait également (ainsi que HandbrakeCLI ?) pour un meilleur décodage/encodage matériel sur GPU.

J’ai aussi remarqué que la version donateur v0.82.003 fournie avec MCEBuddy n’autorise pas l’option « --cuvid » pour indiquer que le décodage matériel doit utiliser les décodeurs matériels nVidia (CUDA).

Des idées ?

Modifications de 0.82.012
- Ajout du support des décodeurs vidéo 10 bits
**Modifications de 0.82.011**
**- Mise à jour vers les décodeurs ffmpeg 4.3**
- Taille vidéo maximale augmentée pour supporter la vidéo 4K
Modifications de 0.82.010
- Mise à jour vers la dernière version des décodeurs ffmpeg
- Correction : parfois Comskip se bloquait en fin de traitement d’un enregistrement.
Modifications de 0.82.009
- Taille vidéo max portée à 4000x2400 pour permettre le traitement de vidéos 4K
Modifications de 0.82.008
- Build de test pour Windows 7, aucune autre différence avec la build précédente
Modifications de 0.82.007
- Paramètre INI ajouté : définir top_ticker_tape > 0 supprime des pixels du haut de la vidéo
- Mise à jour des décodeurs vers la dernière version disponible, améliorations de robustesse visibles
Modifications de 0.82.005
- Correction : sur certains enregistrements Comskip plantait
- Correction : sur certains enregistrements aucun audio n’était décodé
- Mise à jour des décodeurs vers la dernière version disponible, augmentation générale de la vitesse observable
Modifications de 0.82.004
- Correction : la sortie vdr devait utiliser des numéros de trames avec indication temporelle sub-seconde au lieu d’une fraction de seconde

Voici mes résultats de test des différentes versions de Comskip et des méthodes de décodage utilisées.
J’ai testé sous Win10 x64 22H2 avec un i5-4430 (Haswell) et une RTX2060 avec les derniers pilotes nVidia (531.61 du 13/04/2023).

Je transcribe les enregistrements HDHomeRun DVR (flux TS HDTV OTA en MPEG2/AC3) vers H.265/AC3 dans des conteneurs MKV.

Résumé TL;DR :
La version donateur de Comskip accélère nettement la détection des publicités. La version actuelle Comskip donateur (0.82.12) accélère fortement la détection par rapport à la version Comskip donateur (0.82.003) fournie avec MCEBuddy.

Par « fortement », j’entends plus de 50 % plus rapide. Ce que MCEBuddy met 10 min 00 s à analyser ne prend plus que 6 min 32 s avec la version actuelle de Comskip donateur.

Résumé TIL :
Le gain de vitesse apporté par le GPU pour la détection des publicités est bien moindre que pour le transcodage vers x264 ou x265. La raison est que la détection s’effectue sur le format natif du média enregistré par le DVR. Chez moi, il s’agit d’un signal HDTV, et mon DVR HDHR OTA ne fait aucun transcodage : écriture directe sur disque (idem pour les enregistrements Tivo transférés via KMTTG). Ainsi, le média scanné par Comskip est un flux TS (Transport Stream) avec vidéo MPEG2 et audio AC3. Or, il n’existe pratiquement pas d’accélération GPU pour le décodage MPEG2, car tous les CPU modernes des vingt dernières années intègrent le décodage matériel MPEG2 (rappelez-vous ces instructions multimédia spécifiques désormais standards en x86). Elles y sont obligées pour fonctionner dans des appareils bon marché : téléviseurs, dongles Chromecast & Firestick, puis Roku, FireTV, tuners (Silicon Dust HDHR) et boîtiers/logiciels DVR. Cela dit, il existe bel et bien un gain à utiliser un GPU avec la version Donateur de Comskip.

Ma recommandation (qui n’engage que moi) :
Déboursez les 10 $ (ou plus) pour obtenir la version donateur de Comskip si vous possédez une carte nVidia récente, et ajoutez l’option la plus rapide parmi « --cuvid » ou « --nvpau » dans vos paramètres personnalisés de Comskip. Sinon, Comskip se contente des instructions CPU (extensions MMX) avec l’option « --hwassist », et seule la version donateur actuelle propose des options d’utilisation spécifique du GPU pour le décodage.

Mise en garde :
Si vous transcodez des fichiers déjà transcodés (vidéo x264/x265 téléchargée, et non un enregistrement OTA HDTV TS en MPEG2), le décodage GPU dans Comskip devient encore plus pertinent, car il sera nettement plus rapide sur GPU.

comskip-0.82.003-Donator-hw-test.log          --- Version Donateur MCEBuddy
Generated using donator  Comskip 0.82.003
Parsed 49136 video frames and 55262 audio frames at   336.73 fps

comskip-0.82.012-hw-test.log                  --- Comskip actuel (non donateur)
Generated using public  Comskip 0.82.012
Parsed 49136 video frames and 55262 audio frames at   243.65 fps

comskip-0.82.012-Donator-hw-cuvid-test.log    --- Comskip actuel Donateur, décodeur nVidia CUVID
Generated using donator  Comskip 0.82.012
Parsed 49136 video frames and 55262 audio frames at   490.11 fps

comskip-0.82.012-Donator-hw-nvpau-test.log    --- Comskip actuel Donateur, décodeur nVidia VDPAU
Generated using donator  Comskip 0.82.012
Parsed 49136 video frames and 55262 audio frames at   514.61 fps

Quelle est la dernière version pour Windows 7, puisque WMC est la seule carte TV câblée permettant de regarder les chaînes cryptées, et non Windows 10

Une autre chose que j’ai remarquée, du fait que mes enregistrements OTA sont dans des flux MPEG2, est que le transcodage fait monter mon CPU à 100 % (pour le décodage MPEG2) et que le GPU est utilisé pour l’encodage HEVC/x265. Donc, bien que ce soit définitivement plus rapide avec le GPU qu’avec le CPU seul, et définitivement plus rapide avec la version Donator plus récente de comskip, je suis encore limité par le CPU à cause du média MPEG2 en entrée du transcodage. Il est peut-être temps de passer de la 5e génération (Haswell) à une CPU actuelle de 12e ou 13e génération. Je regarde surtout le modèle 65 W de 13e génération. Cela implique aussi une nouvelle carte mère ITX, ainsi que de la mémoire DDR5. Et autant prendre un boîtier (légèrement) plus grand qui peut accueillir une 3090 ou une carte RTX 40. Le seul point positif de tout ce projet de mise à niveau, c’est que les prix des disques M2 s’effondrent. Les modèles de 4 TB approchent les 200 $.

Cela a été fait maintenant