Échec de la conversion lorsque l'utilisateur n'est pas connecté

J’ai un problème quand je me connecte à distance à mon serveur puis que je ferme la connexion, ce qui me déconnecte. Cela fait échouer mes conversions, ce qui n’arrivait pas avant. Pouvez-vous m’aider ? Le journal avec un exemple est joint.

married.at.first.sight.s09e02.720p.web.h264-tbs.mkv-Move-TV-2019-06-20T22-20-14.5933286-05-00.log (354.9 KB)

Vous utilisez l’encodage matériel et votre pilote graphique pose problème, il génère une erreur :

2019-06-20T22:21:59 MCEBuddy.AppWrapper.FFmpeg → [AVHWDeviceContext @ 000001d98ef0a6c0] Failed to create Direct3D device
2019-06-20T22:21:59 MCEBuddy.AppWrapper.FFmpeg → Device creation failed: -1313558101.

Si cela fonctionnait jusqu’à récemment, il semble que votre pilote graphique ait été mis à jour et qu’il exige désormais que vous soyez connecté au système pour fonctionner.

2019-06-20T22:21:58 MCEBuddy.AppWrapper.FFmpeg → Starting process as a UISession process with Admin privileges. This requires atleast 1 user to be logged into the system (remote desktop or locally)
ERROR> 2019-06-20T22:21:58 → StartAppWithAdminPrivilegesFromNonUISession WTSQueryUserToken failed (No logged on users) with error 1008. An attempt was made to reference a token that does not exist.
WARNING> 2019-06-20T22:21:58 MCEBuddy.AppWrapper.FFmpeg → Unable to create UI Session process with Admin Privileges from NonUI Session. Is any user logged on?
WARNING> 2019-06-20T22:21:58 MCEBuddy.AppWrapper.FFmpeg → Retrying process creation as a NonUI Session process with Admin privileges
WARNING> 2019-06-20T22:21:58 MCEBuddy.AppWrapper.FFmpeg → Some functions like hardware encoding may not work in this mode

Cela n’est pas lié à MCEBuddy mais à une erreur de Windows concernant votre pilote graphique.

Puisque vous utilisez un profil personnalisé et que vous avez explicitement désactivé le retour à l’encodeur logiciel dans votre profil, il n’essaiera pas d’utiliser l’encodeur logiciel lorsque votre encodeur matériel échoue :

ffmpeg-UsingHardwareEncoding=True

La version intégrée de FFMpeg a-t-elle été mise à jour ? Je me souviens avoir eu des erreurs comme celle-ci quand j’expérimentais le remplacement de la version incluse par les dernières versions. Pour info, j’ai la même erreur après la mise à jour vers 2.4.11. Mes pilotes vidéo n’ont pas été mis à jour depuis un moment…

Journal : Microsoft OneDrive

Je vois exactement la même erreur dans vos journaux. Y a-t-il un utilisateur connecté à l’ordinateur ?
Je soupçonne que l’API matérielle de ffmpeg est différente de celle de Handbrake et nécessite qu’un utilisateur soit connecté au système pour fonctionner.
L’API matérielle de Handbrake semble fonctionner sans aucun utilisateur connecté à partir de Windows 8.1, je soupçonne que ce n’est pas le cas avec ffmpeg.

Pouvez-vous essayer avec un utilisateur connecté et voir si cela fonctionne ?

Cela fonctionne correctement avec l’utilisateur connecté

Un utilisateur est connecté, mais je me connecte à distance à cette machine, et quand je me déconnecte, cela donne l’impression que je suis déconnecté.

Cela fonctionne parfaitement quand je suis connecté.

Je pense avoir déjà effectué la configuration de Handbrake, cependant :

[MKV HEVC Beta Profile Constant Quality]
Description=WARNING: Handbrake Constant Quality encoding (26) with Nvidia HEVC.
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 26 -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:0 --encoder nvenc_h265 --encoder-preset slow --quality 26 --vfr
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

Handbrake n’est-il pas déjà configuré pour NVENC HEVC ?

Merci ! Will.

Quel système d’exploitation utilisez-vous ? Pour Handbrake, nous savons que Windows XP-7 nécessite un terminal actif, tandis que sous Windows 8-10, cela fonctionne même sans terminal actif.

FFMPEG est une autre paire de manches ; il utilise un ensemble différent d’API qui, malheureusement, exigent qu’un utilisateur soit connecté à Windows avec un terminal actif.

Je ne vais pas entrer dans les détails techniques, mais c’est essentiellement un problème de conception de Windows, car le noyau n’était pas initialement conçu pour accéder aux API matérielles. Microsoft a apporté des améliorations, permettant ainsi à Handbrake de fonctionner en mode noyau (MCEBuddy s’exécute par défaut en tant que service en mode noyau), mais les API de FFMPEG exigent toujours qu’un utilisateur connecté dispose d’un terminal actif. Ainsi, si vous utilisez MCEBuddy et ffmpeg, assurez-vous qu’un terminal est actif et qu’il ne se déconnecte pas. Je crois que RDP propose une option pour se déconnecter sans se déconnecter – je pense que cela fonctionnera.

Oui, mais il n’est pas aussi stable que ffmpeg, donc MCEBuddy ne l’utilise pas, mais vous pouvez l’utiliser. Résultats variables. Faites-nous savoir comment cela se passe pour vous.

J’utilise la version actuelle de Windows 10 (1903). Je suis actuellement connecté à la machine via Bureau à distance et elle semble fonctionner correctement. J’utilise un fichier batch de post-traitement pour invoquer MCEBuddy depuis Plex.

Merci! Will.

[HEVC MP4]
Description=AVERTISSEMENT : Encodage Qualité Constante Handbrake (26) avec Nvidia HEVC.
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 26 -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=.mp4
ffmpeg-audiodelay=skip
handbrake-UsingHardwareEncoding=true
handbrake-general=–decomb --denoise=“weak” --loose-anamorphic --verbose=2 -T -O
handbrake-video=–start-at duration:0 --encoder nvenc_h265 --encoder-preset slow --quality 26 --vfr
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=.mp4
handbrake-audiodelay=skip

Cela ne fonctionne toujours pas quand je ne suis pas connecté. Des suggestions sur le profil ci-dessus pour le faire fonctionner ?

Je continue d’avoir des échecs, bien que je sois connecté. Je vais essayer de remplacer FFMpeg par la dernière version du site.

Voici les journaux du dernier échec : Microsoft OneDrive

Selon Windows, il n’y a aucun utilisateur connecté, il ne trouve pas de référence à un utilisateur connecté :

StartAppWithAdminPrivilegesFromNonUISession WTSQueryUserToken failed (No logged on users) with error 1008. An attempt was made to reference a token that does not exist.

Vous pouvez essayer ceci pour vous assurer qu’un utilisateur est connecté. Démarrez MCEBuddy en tant que moteur en ligne de commande depuis le menu Démarrer. Cela arrêtera le moteur fonctionnant en tant que service et le lancera à la place en tant que service en ligne de commande dans l’utilisateur. Si l’utilisateur se déconnecte, le service s’arrêtera.
Maintenant, en tant qu’utilisateur connecté, ffmpeg devrait avoir accès à toutes les API matérielles. Cela confirmera ce qui se passe.

Notez qu’il existe des rapports indiquant que si vous vous connectez via RDP à Windows, cela ne donne pas accès à toutes les API matérielles. Il est préférable de se connecter localement, puis de se connecter à distance au même utilisateur connecté.

Vraiment merci pour l’aide - je vais essayer ça. Savez-vous s’il existe un moyen de lancer le démarrage en ligne de commande à partir de shell:startup sans désactiver le contrôle de compte d’utilisateur (UAC) ?

Merci encore ! Will.

Vous pouvez configurer le Planificateur de tâches pour démarrer le moteur de ligne de commande à la connexion de l’utilisateur avec les privilèges les plus élevés.

Bien sûr ! J’oublie toujours ça. Merci !