Documentation

Codes de statut du Player

Un Player affiche une puce de statut lorsque quelque chose demande de l’attention et signale la condition à screenRIG. Cette page répertorie chaque puce, ainsi que chaque code de page, de mise à jour, de stockage et de carte, avec sa cause habituelle et sa solution.

Où apparaissent les codes

Une puce est une icône dans le coin inférieur gauche de l’écran, accompagnée d’un message d’une ligne lorsqu’elle apparaît pour la première fois. Le Player affiche la condition active de rang le plus élevé et garde la puce tant que la condition persiste. Le tableau de bord affiche la puce à côté de l’état en ligne de l’écran.

screenrig screen show scr_ID renvoie ce que le Player a signalé :

MembreContient
statuschip, l’id de la puce (null quand aucune n’est affichée), son level et le moment où le Player l’a signalée. Absent jusqu’au premier rapport
last_page_failurepage_id, code et at de la dernière page qui n’a pas pu devenir prête
manifest_upgradeOù en est la dernière mise à jour du contenu : state, code, attempt et retry_at
storage, storage_shortfallLe dernier rapport de stockage du Player, et de combien la liste de lecture le dépasse. Le manque n’est présent que tant que le contenu ne tient pas

Une puce est le dernier rapport du Player : considérez-la comme périmée tant que online est faux. Les rapports tels que player.video_unusable et player.card_failed vont dans le journal du Player de l’écran :

screenrig events list --source log --screen-id scr_ID

Puces de statut

Le tableau suit l’ordre de rang : lorsque plusieurs conditions sont remplies, la première s’affiche. L’étiquette est le nom de la puce dans le tableau de bord.

PuceCauseCorriger
archived (Écran archivé)L’écran est archivé, donc sa vitre est sombre. Le Player garde ses identifiantsscreenrig screen unarchive scr_ID. Le Player reprend sans nouveau jumelage. Un écran archivé comme replaced ne peut pas être désarchivé : screen delete le supprime
repair_needed (Réparation requise)La clé de l’appareil ne lie plus le Player à son écran (credential_revoked, key_retired), ou l’appareil n’a pas pu conserver son identité. Le Player garde son contenu enregistré et sa cléRéinitialisez le Player sur l’appareil : ouvrez son menu opérateur, choisissez Réglages, puis Réinitialiser. Il obtient un nouveau code de jumelage : donnez le code à votre agent
payment_required (Crédits épuisés)Le crédit d’utilisation du projet est épuisé, donc le nouveau contenu ne peut pas atteindre l’écran. À partir du 1er janvier 2027, un crédit restant de zéro ou moins affiche aussi cette pucescreenrig billing balance affiche ce qui reste. Ajoutez du crédit d’utilisation, comme décrit dans Tarification
session_revoked (Connexion terminée)Les identifiants du Player ont été rejetés ou révoqués, ou son écran a été supprimé, alors que le Player conserve du contenu enregistré. Il continue de lire ce contenu et réessaieVérifiez que l’écran existe avec screenrig screen show scr_ID. Si la puce reste, réinitialisez le Player dans son menu opérateur et jumelez-le de nouveau
verify_fail (Vérification impossible)Un fichier téléchargé n’a pas passé la vérification de sa taille, de son empreinte ou de son type : le Player ne l’utilise pas et garde ce qu’il a. Le code de mise à jour est hash_mismatchscreenrig screen clear-cache scr_ID demande au Player de télécharger de nouveau son contenu
storage_full (Stockage plein)L’appareil n’a pas de place pour le contenu qu’il doit télécharger, donc le nouveau contenu ne peut pas être enregistréLibérez du stockage sur l’appareil ou réduisez la liste de lecture. Cache et stockage explique ce qui tient
decode_unplayable (Aucune lecture)Le Player ne peut lire aucun des éléments qu’il doit afficher, et rien d’autre n’est à l’écranVidéo qui ne se lit pas. Un Raspberry Pi 5 exige une vidéo téléversée avec --codec hevc
unavailable (Affichage impossible)Le Player n’a aucun contenu enregistré, son affectation ne s’est pas résolue, et aucune condition plus précise ne s’appliqueLisez manifest_upgrade et last_page_failure dans screen show, corrigez ce qu’ils nomment, puis screenrig screen reload scr_ID
browser_unsupported (Navigateur incompatible)Le navigateur qui exécute le Player Web n’est pas pris en charge. La lecture continueMettez le navigateur à jour
app_unsupported (Application incompatible)La version de l’app screenRIG n’est pas prise en charge. La lecture continuescreenrig screen update-software scr_ID là où le Player déclare update, sinon mettez à jour par sa boutique d’applications ou son gestionnaire d’appareils
browser_warning (Avertissement navigateur)Le navigateur qui exécute le Player Web n’est pas à jour. La lecture continueMettez le navigateur à jour
app_warning (Avertissement application)La version de l’app screenRIG n’est pas à jour. La lecture continuescreenrig screen update-software scr_ID là où le Player déclare update, sinon mettez à jour par sa boutique d’applications ou son gestionnaire d’appareils
assignment_held (En attente)La dernière mise à jour est en train de réessayer ou a échoué, ou le renouvellement de la session du Player prend plus de 10 secondes. Le contenu actuel continue d’être luLisez manifest_upgrade dans screen show. Échecs de page et de mise à jour explique chaque state et chaque code
decode_miss (Élément ignoré)Un élément ne peut pas être lu, donc le Player l’ignore pendant que d’autre contenu est luVidéo qui ne se lit pas
offline_playing (Lecture déconnectée)Du contenu est à l’écran et le Player n’a eu aucune connexion à screenRIG depuis 60 secondes ou plus. Il lit son contenu enregistréRétablissez le réseau de l’appareil. screen show signale last_outage et son likely_cause
schedule_timezone (Fuseau requis)Une page a un horaire de visibilité et l’écran n’a pas de fuseau horaire : le Player ignore l’horaire et affiche toujours la pagescreenrig screen update scr_ID --timezone America/Los_Angeles, avec la zone IANA de l’écran
credits_low (Crédits faibles)Le crédit d’utilisation restant est supérieur à zéro et inférieur à 1 000 crédits. Jusqu’au 1er janvier 2027, le crédit restant n’est pas une instruction d’arrêtscreenrig billing balance affiche ce qui reste
content_partial (Contenu partiel)Seule une partie de la liste de lecture est lue : manifest_upgrade.state est partial et missing_page_count indique combien de pages sont excluesLisez manifest_upgrade.code : Cache et stockage pour capacity, Échecs de page et de mise à jour pour le reste
paused (En pause)Quelqu’un a mis l’écran en pause sur l’appareil. Une pause se termine d’elle-même après 60 minutesAppuyez sur Lecture/Pause sur la télécommande (K sous Windows)
syncing (Actualisation)Le Player télécharge, prépare ou active du nouveau contenu, ou renouvelle sa sessionAucun. La puce disparaît quand le contenu est à l’écran. Si elle reste, lisez manifest_upgrade.state

Mise à jour du lecteur requise est un avis à côté de la puce, et non une puce. Il s’affiche lorsque la version du Player est inférieure au minimum que screenRIG prend en charge, et le Player continue de lire son contenu enregistré. Mettez le Player à jour avec screenrig screen update-software scr_ID là où il déclare update, sinon par sa boutique d’applications ou son gestionnaire d’appareils.

Vidéo qui ne se lit pas

Un Player décode la vidéo avec le décodeur matériel de l’appareil pour le codec, le profil et la résolution du fichier. Lorsque l’appareil en est incapable, le Player ignore l’élément : la puce est decode_miss, ou decode_unplayable lorsque rien d’autre n’est à l’écran. L’enregistrement player.video_unusable du journal du Player nomme le code (video_load_failed, video_play_failed, video_autoplay_blocked, video_stalled, image_load_failed, video_prepare_failed, video_first_frame_timeout ou video_decode_failed) avec les valeurs decoder, codecs, width et height mesurées par le Player.

screenrig media upload ./lobby-loop.mp4 --codec hevc
screenrig media upload ./lobby-loop.mp4 --preset signage-1080p30

Une vidéo est téléversée en H.264 par défaut. Un Raspberry Pi 5 n’a pas de décodeur H.264 : téléversez chaque vidéo qui lui est destinée avec --codec hevc, quelle que soit sa taille. Un Raspberry Pi 4 lit le 1080p, et --preset signage-1080p30 limite la taille. N’utilisez hevc que si chaque écran qui lit le clip est un Player natif. Remplacez le média dans la liste de lecture et publiez-la de nouveau.

Affecter une liste de lecture dont toutes les vidéos sont en H.264 à un écran dont le Player déclare video.h264_unavailable est refusé avec invalid_request. Dans un contenu mixte, ce Player ignore les éléments H.264.

Échecs de page et de mise à jour

Une page qui ne peut pas devenir prête est ignorée et le Player continue de lire ses autres pages. Il signale l’échec, et last_page_failure.code est le code propre du Player. screenrig events list --type playback.page_failed --screen-id scr_ID les répertorie.

CodeCauseCorriger
gstreamer_playback_errorLe pipeline multimédia du Player Linux ou Raspberry Pi a échoué sur une vidéo : il a signalé une erreur, n’a pas démarré ou n’a produit aucune imageVidéo qui ne se lit pas
unsupported_contentLa liste de lecture contient du contenu que le Player ne peut pas présenter, une primitive ou un type de média qu’il ne prend pas en chargeConsultez Support primitif par plateforme. Remplacez le contenu, ou affectez la liste de lecture à un Player qui le prend en charge

manifest_upgrade.state indique comment se déroule une mise à jour du contenu :

ÉtatSens
pendingscreenRIG a du nouveau contenu pour l’écran et le Player ne l’a pas signalé
downloading, preparing, activatingLa mise à jour est en cours. Lorsque du contenu est à l’écran, la puce est syncing
retryingUne étape a échoué et le Player réessaie à retry_at. La puce est assignment_held
failedLa mise à jour s’est arrêtée sans nouvelle tentative planifiée. La puce est assignment_held
blockedLe stockage ne peut pas recevoir le nouveau contenu. La puce est storage_full
partialSeule une partie de la liste de lecture est lue. La puce est content_partial
currentLe contenu le plus récent est en cours de lecture

manifest_upgrade.code nomme la cause d’un état retrying, failed, blocked ou partial :

CodeCauseCorriger
download_failedUn téléchargement de contenu a échoué : l’origine du contenu était inaccessible ou a répondu par une erreurVérifiez la connexion de l’appareil. Le Player réessaie avec temporisation, et retry_at indique quand
hash_mismatchUn fichier téléchargé n’a pas passé la vérification de sa taille, de son empreinte ou de son typescreenrig screen clear-cache scr_ID
prepare_failedLe Player n’a pas pu préparer une page pour l’affichage, ou la page n’était pas prête à tempsLisez last_page_failure et corrigez la page comme l’indique son code
activate_failedLa première page du nouveau contenu n’a pas pu être affichéeLisez last_page_failure, puis screenrig screen reload scr_ID
manifest_invalidLe Player a rejeté le manifeste de la révision comme invalide et garde son dernier contenu valide. Il ne retente pas cette révisionSignalez-le avec l’id de l’écran sur Contact
unsupported_contentLe Player a retiré du contenu qu’il ne peut pas présenter. S’il ne reste rien de lisible, la mise à jour échoue et n’est pas retentée ; sinon, elle est partialComme l’échec de page unsupported_content ci-dessus
internalUne erreur du Player en dehors des codes ci-dessusscreenrig screen reload scr_ID. Si le code reste affiché, signalez-le avec l’id de l’écran
capacity, staged, storage_full, none_fit, transition_blocked, anchor_unavailableLe plan de stockage de l’appareilCache et stockage

Cache et stockage

Avant de télécharger une révision, un Player planifie son stockage : quels fichiers des pages tiennent dans l’espace qu’il peut utiliser. Un Player natif laisse libres 128 Mio de son volume et reste dans la limite de tout quota fixé pour lui. Au démarrage, un Player ayant moins de 512 Mio libres affiche un message indiquant l’espace libre ; ce message n’est pas une puce.

storage.plan.fit dans screen show indique dans quelle mesure la liste de lecture tient :

fitSensCorriger
fitsToute la liste de lecture tientAucun
fits_after_eviction, retention_reducedLa liste de lecture tient une fois que le Player a supprimé les fichiers en cache dont il n’a plus besoin et, pour retention_reduced, son contenu de repli enregistréAucun. Aucune page n’est exclue
partialCertaines pages ne tiennent pas et sont exclues (excluded_pages). Le reste est luLibérez du stockage ou réduisez la liste de lecture
transition_blockedLa page toujours visible de la nouvelle liste de lecture, la première page sans horaire de visibilité, ne peut pas être stockée à côté du contenu à l’écran. La mise à jour attend, le contenu actuel continue d’être lu et headroom_needed_bytes indique combien de place supplémentaire est nécessaireLibérez cette quantité de stockage ou réduisez la nouvelle liste de lecture
none_fitRien ne se charge : aucune page ne tient, ou la liste de lecture n’a aucune page toujours visible qui tienneLibérez du stockage ou affectez une liste de lecture plus petite

manifest_upgrade.code reprend le plan : none_fit ou transition_blocked pour une mise à jour blocked, capacity pour une mise à jour partial dont les pages n’ont pas tenu, staged pour une mise à jour partial encore en cours de remplissage, et storage_full lorsqu’une écriture échoue. storage_shortfall est présent tant que fit est partial, transition_blocked ou none_fit.

Chaque entrée de excluded_pages a un champ reason :

RaisonCauseCorriger
object_exceeds_capacityUn seul fichier ne tient pas dans l’espace que le Player peut utiliserTéléversez une version plus petite (media upload --max-edge ou --preset signage-1080p30), ou utilisez un appareil doté de plus de stockage
page_exceeds_capacityChaque fichier tient seul, mais les fichiers de la page réunis ne tiennent pasMettez moins de fichiers, ou des fichiers plus petits, sur la page
capacity_excludedLa page a été exclue pour que le reste tienneLibérez du stockage ou réduisez la liste de lecture
descriptor_conflictLa liste de lecture répertorie un même fichier deux fois avec des tailles ou des types de contenu différentsSignalez-le avec l’id de l’écran sur Contact
not_localLe Player a restauré le contenu enregistré au démarrage sans plan stocké, et les fichiers de cette page n’étaient pas sur l’appareilRemettez le Player en ligne : il télécharge la page
anchor_unavailableLa page toujours visible n’a pas pu être téléchargée alors que l’appareil a de la place. C’est un échec de téléchargement, pas un manque d’espaceVérifiez la connexion de l’appareil. Le Player réessaie

Demandez avant d’affecter une grande liste de lecture :

screenrig screen storage-forecast scr_ID --playlist-id pl_ID

La commande répond fits, partial, none_fit ou unknown, avec les octets dont la liste de lecture a besoin et la capacité du Player. unknown signifie que l’écran n’a jamais signalé son stockage. Un rapport de plus de 24 heures est marqué comme périmé. La commande n’écrit rien. Lorsqu’un échec de stockage s’affiche, la réponse porte un avertissement storage_full : libérez du stockage sur l’appareil qui exécute le Player, puis réessayez avec la liste de lecture.

Cartes

Une carte qui ne peut pas être dessinée laisse son rectangle vide et la lecture de la page se poursuit. Le Player consigne card.failed, et les Players Web, Android et Windows signalent player.card_failed une fois par carte, par page et par code, avec page_id, primitive_id, manifest_revision et le code. Une carte dont les données ont expiré est aussi vide : screenrig card data put --ttl 30m la renouvelle.

CodeCauseCorriger
unknown-cardL’id de la carte ne figure pas dans la bibliothèque de cartes du PlayerUtilisez une carte de la référence de carte
card-unavailableLa carte est dans la bibliothèque, mais cette compilation du Player ne l’inclut pas, ou inclut une autre version majeure que celle que nomme la pageMettez le Player à jour, ou placez la version majeure qu’il inclut
card-errorLa carte a levé une exception pendant le dessin (Player Web). Les détails sont dans la console du navigateurComparez les propriétés de la carte à sa page de référence
data-unavailableLe premier document de données de la carte n’est pas arrivé. La carte reste masquéescreenrig card data put pour écrire les données, ou screenrig source show pour vérifier sa source de données
data-source-missingUne carte nomme des données de carte, mais le Player n’a aucune source de données pour celles-ciSignalez-le avec les id de l’écran et de la carte sur Contact
cardml-invalidLe fichier d’une carte CardML n’a pas passé ses vérificationsSignalez-le avec l’id de la carte sur Contact
cardml-model-error, cardml-model-timeoutLe modèle d’une carte CardML a échoué ou a dépassé son temps impartiVérifiez les données et les propriétés de la carte
cardml-duplicate-keyUne liste d’une carte CardML a rencontré une même clé deux fois. Elle garde ses lignes précédentesDonnez à chaque ligne sa propre clé
qr-too-long, wifi-too-longLes données du QR ou les détails Wi-Fi ne tiennent pas dans un code QRRaccourcissez l’URL ou le texte
invalid-targetLa cible d’un compte à rebours ne peut pas être analyséeDéfinissez target sur une date et une heure valides