コードが表示される場所
チップは、画面の左下隅に表示されるアイコンで、最初に表示されたときは1行のメッセージが付きます。Playerは、有効な状態のうち最も順位の高いものを表示し、その状態が続く間はチップを保持します。ダッシュボードでは、スクリーンのオンライン状態の横にチップが表示されます。
screenrig screen show scr_ID は、Playerが報告した内容を返します:
| メンバー | 内容 |
|---|---|
status | chip(チップのID。何も表示されていないときは null)、その level、Playerが報告した時刻。最初の報告があるまでは存在しません |
last_page_failure | 準備できなかった最新ページの page_id、code、at |
manifest_upgrade | 最新のコンテンツ更新の進み具合:state、code、attempt、retry_at |
storage, storage_shortfall | Playerの最後のストレージ報告と、プレイリストがそれをどれだけ超えているか。不足分はコンテンツが収まらない間だけ含まれます |
チップはPlayerの最後の報告です。online が false の間は、古い情報として読んでください。player.video_unusable や player.card_failed などの報告は、スクリーンのPlayerログに送られます:
screenrig events list --source log --screen-id scr_ID
ステータスチップ
表は順位順に並んでいます。複数の状態が当てはまる場合は、最初のものが表示されます。ラベルは、ダッシュボードでのチップの名前です。
| チップ | 原因 | 修正 |
|---|---|---|
archived(アーカイブ済み) | スクリーンはアーカイブ済みのため、画面は暗くなっています。Playerは資格情報を保持します | screenrig screen unarchive scr_ID。Playerは再度ペアリングしなくても再開します。replaced としてアーカイブされたスクリーンはアーカイブを解除できません。screen delete で削除します |
repair_needed(要修理) | デバイスキーがPlayerとそのスクリーンを紐付けなくなったか(credential_revoked、key_retired)、デバイスがIDを保持できませんでした。Playerは保存済みのコンテンツとキーを保持します | デバイス上でPlayerをリセットします。オペレーターメニューを開き、設定、リセットの順に選択してください。新しいペアリングコードが発行されるので、そのコードをエージェントに渡してください |
payment_required(残量なし) | プロジェクトの利用クレジットを使い切ったため、新しいコンテンツがスクリーンに届きません。2027年1月1日以降は、残りのクレジットが0以下の場合もこのチップが表示されます | screenrig billing balance は残量を表示します。価格設定の説明に従って、利用クレジットを追加してください |
session_revoked(接続終了) | Playerが保存済みのコンテンツを保持している間に、Playerの資格情報が拒否または取り消されたか、そのスクリーンが削除されました。Playerはそのコンテンツを再生し続け、再試行します | screenrig screen show scr_ID でスクリーンが存在することを確認してください。チップが消えない場合は、オペレーターメニューでPlayerをリセットし、もう一度ペアリングしてください |
verify_fail(検証不可) | ダウンロードしたファイルがサイズ、ハッシュ、タイプの検証に失敗したため、Playerはそのファイルを使用せず、現在のコンテンツを保持します。更新コードは hash_mismatch です | screenrig screen clear-cache scr_ID は、Playerにコンテンツを再ダウンロードさせます |
storage_full(容量不足) | デバイスに、ダウンロードが必要なコンテンツを置く空き容量がないため、新しいコンテンツを保存できません | デバイスのストレージを空けるか、プレイリストを小さくしてください。収まるかどうかはキャッシュとストレージで説明しています |
decode_unplayable(全て再生不可) | Playerは表示すべき項目をどれも再生できず、ほかに画面に表示されているものもありません | 再生できない動画。Raspberry Pi 5 には --codec hevc でアップロードした動画が必要です |
unavailable(表示不可) | Playerに保存済みのコンテンツがなく、割り当てが解決されず、より具体的な状態にも当てはまりません | screen show の manifest_upgrade と last_page_failure を読み、それらが示す問題を修正してから、screenrig screen reload scr_ID を実行してください |
browser_unsupported(未対応のブラウザー) | Web Playerを実行しているブラウザーが未対応です。再生は続行されます | ブラウザーを更新してください |
app_unsupported(未対応のアプリ) | screenRIG アプリのバージョンが未対応です。再生は続行されます | Playerが update を宣言している場合は screenrig screen update-software scr_ID を実行し、そうでない場合はストアまたはデバイス管理ツールから更新します |
browser_warning(ブラウザーの警告) | Web Playerを実行しているブラウザーが古くなっています。再生は続行されます | ブラウザーを更新してください |
app_warning(アプリの警告) | screenRIG アプリのバージョンが古くなっています。再生は続行されます | Playerが update を宣言している場合は screenrig screen update-software scr_ID を実行し、そうでない場合はストアまたはデバイス管理ツールから更新します |
assignment_held(更新待ち) | 最新の更新が再試行中または失敗したか、Playerのセッションの更新に10秒以上かかっています。現在のコンテンツは再生を続けます | screen show の manifest_upgrade を読んでください。state と code の意味はページと更新の失敗で説明しています |
decode_miss(一件スキップ) | 1つの項目を再生できないため、Playerはその項目をスキップし、ほかのコンテンツを再生します | 再生できない動画 |
offline_playing(オフライン再生) | コンテンツが表示されており、Playerが screenRIG に60秒以上接続していません。保存済みのコンテンツを再生します | デバイスのネットワークを復旧してください。screen show は last_outage とその likely_cause を報告します |
schedule_timezone(要タイムゾーン) | ページに表示スケジュールがあり、スクリーンにタイムゾーンがないため、Playerはスケジュールを無視してそのページを常に表示します | screenrig screen update scr_ID --timezone America/Los_Angeles。スクリーンの IANA ゾーンを指定します |
credits_low(残量わずか) | 残りの利用クレジットが0より多く、1,000 クレジット未満です。2027年1月1日までは、残りのクレジットは停止指示ではありません | screenrig billing balance は残量を表示します |
content_partial(一部のみ再生) | プレイリストの一部のみが再生されます。manifest_upgrade.state は partial で、missing_page_count は除外されたページ数を示します | manifest_upgrade.code を読んでください。capacity についてはキャッシュとストレージ、それ以外はページと更新の失敗を参照してください |
paused(一時停止) | 誰かがデバイス上でスクリーンを一時停止しました。一時停止は60分後に自動的に解除されます | リモコンの再生/一時停止を押します(Windows では K) |
syncing(更新中) | Playerが新しいコンテンツをダウンロード、準備、またはアクティブ化しているか、セッションを更新しています | なし。コンテンツが表示されるとチップは消えます。消えない場合は manifest_upgrade.state を確認してください |
プレーヤーの更新が必要は、チップではなく、チップの横に表示される通知です。Playerのバージョンが screenRIG のサポートする最小バージョンを下回ると表示され、Playerは保存済みのコンテンツを再生し続けます。Playerが update を宣言している場合は screenrig screen update-software scr_ID で更新し、そうでない場合はストアまたはデバイス管理ツールから更新します。
再生できない動画
Playerは、ファイルのコーデック、プロファイル、解像度に対応するデバイスのハードウェアデコーダーで動画をデコードします。デバイスが対応できない場合、Playerはその項目をスキップします。チップは decode_miss で、ほかに何も表示されていないときは decode_unplayable です。Playerログの player.video_unusable レコードには、code(video_load_failed、video_play_failed、video_autoplay_blocked、video_stalled、image_load_failed、video_prepare_failed、video_first_frame_timeout、video_decode_failed のいずれか)と、Playerが測定した decoder、codecs、width、height が記録されます。
screenrig media upload ./lobby-loop.mp4 --codec hevc
screenrig media upload ./lobby-loop.mp4 --preset signage-1080p30
動画は、デフォルトで H.264 としてアップロードされます。Raspberry Pi 5 には H.264 デコーダーがありません。この機種で再生する動画は、サイズを問わずすべて --codec hevc でアップロードしてください。Raspberry Pi 4 は 1080p を再生でき、--preset signage-1080p30 でサイズを制限できます。hevc は、そのクリップを再生するすべてのスクリーンがネイティブPlayerの場合にのみ使用してください。プレイリスト内のメディアを差し替えて、もう一度公開してください。
動画がすべて H.264 のプレイリストを、Playerが video.h264_unavailable を宣言しているスクリーンに割り当てると、invalid_request で拒否されます。動画が混在するコンテンツでは、そのPlayerは H.264 の項目をスキップします。
ページと更新の失敗
準備できないページはスキップされ、Playerは他のページの再生を続けます。Playerは失敗を報告し、last_page_failure.code はPlayer独自のコードです。screenrig events list --type playback.page_failed --screen-id scr_ID でそれらを一覧表示できます。
| コード | 原因 | 修正 |
|---|---|---|
gstreamer_playback_error | Linux または Raspberry Pi のPlayerのメディアパイプラインが動画で失敗しました。エラーを報告したか、開始しなかったか、映像が出力されませんでした | 再生できない動画 |
unsupported_content | プレイリストに、Playerが表示できないコンテンツ(未対応のプリミティブまたはメディアタイプ)が含まれています | プラットフォームによるプリミティブサポートを参照してください。コンテンツを差し替えるか、対応しているPlayerにプレイリストを割り当ててください |
manifest_upgrade.state は、コンテンツ更新の進み具合を示します:
| 状態 | 意味 |
|---|---|
pending | screenRIG にスクリーン用の新しいコンテンツがありますが、Playerからそれについての報告がありません |
downloading, preparing, activating | 更新が進行中です。コンテンツが表示されている場合、チップは syncing です |
retrying | ステップが失敗し、Playerは retry_at に再試行します。チップは assignment_held です |
failed | 再試行の予定がないまま更新が停止しました。チップは assignment_held です |
blocked | ストレージに新しいコンテンツを配置できません。チップは storage_full です |
partial | プレイリストの一部のみが再生されます。チップは content_partial です |
current | 最新のコンテンツが再生中です |
manifest_upgrade.code は、retrying、failed、blocked、partial のいずれかの状態の原因を示します:
| コード | 原因 | 修正 |
|---|---|---|
download_failed | コンテンツのダウンロードに失敗しました。コンテンツのオリジンに到達できないか、エラーが返されました | デバイスの接続を確認してください。Playerは再試行の間隔を延ばしながら再試行し、その時刻は retry_at に示されます |
hash_mismatch | ダウンロードしたファイルがサイズ、ハッシュ、タイプの検証に失敗しました | screenrig screen clear-cache scr_ID |
prepare_failed | Playerがページを表示用に準備できなかったか、ページが時間内に準備完了になりませんでした | last_page_failure を読み、そのコードが示すとおりにページを修正してください |
activate_failed | 新しいコンテンツの最初のページを表示できませんでした | last_page_failure を読み、screenrig screen reload scr_ID を実行してください |
manifest_invalid | Playerがリビジョンのマニフェストを無効として拒否し、最後に正常だったコンテンツを保持しています。そのリビジョンは再試行しません | スクリーンIDを添えて連絡先から報告してください |
unsupported_content | Playerが表示できないコンテンツを破棄しました。再生可能なものが残らない場合、更新は失敗し、再試行されません。それ以外の場合は partial です | 上記のページの失敗 unsupported_content と同じです |
internal | 上記のコードに当てはまらないPlayerのエラー | screenrig screen reload scr_ID。コードが引き続き表示される場合は、スクリーンIDを添えて報告してください |
capacity, staged, storage_full, none_fit, transition_blocked, anchor_unavailable | デバイスのストレージ計画 | キャッシュとストレージ |
キャッシュとストレージ
Playerはリビジョンをダウンロードする前に、ストレージを計画します。つまり、使用できる容量にどのページのファイルが収まるかを判断します。ネイティブPlayerは、ボリュームの 128 MiB を空けたままにし、設定されたクォータの範囲内に収まります。起動時に空き容量が 512 MiB 未満のPlayerは、空き容量を示すメッセージを表示します。このメッセージはチップではありません。
screen show の storage.plan.fit は、プレイリストがどのように収まるかを示します:
fit | 意味 | 修正 |
|---|---|---|
fits | プレイリスト全体が収まります | なし |
fits_after_eviction, retention_reduced | プレイリストは、Playerが不要になったキャッシュ済みファイルを破棄した後(retention_reduced の場合は保存済みのフォールバックコンテンツも破棄した後)に収まります | なし。除外されるページはありません |
partial | 収まらないページは除外されます(excluded_pages)。残りは再生されます | ストレージを空けるか、プレイリストを小さくしてください |
transition_blocked | 新しいプレイリストの常時表示ページ(表示スケジュールのない最初のページ)を、表示中のコンテンツと並べて保存できません。更新は待機し、現在のコンテンツは再生を続け、必要な追加の空き容量は headroom_needed_bytes に示されます | その分のストレージを空けるか、新しいプレイリストを小さくしてください |
none_fit | 何も読み込まれません。収まるページがないか、収まる常時表示ページがプレイリストにありません | ストレージを空けるか、より小さいプレイリストを割り当ててください |
manifest_upgrade.code はストレージ計画をそのまま示します。blocked の更新では none_fit または transition_blocked、収まらなかったページがある partial の更新では capacity、まだ取り込み中の partial の更新では staged、書き込みに失敗したときは storage_full です。storage_shortfall は、fit が partial、transition_blocked、none_fit のいずれかの間だけ存在します。
excluded_pages の各エントリには reason があります:
| 理由 | 原因 | 修正 |
|---|---|---|
object_exceeds_capacity | 1つのファイルだけでも、Playerが使用できる容量に収まりません | より小さくしてアップロードし直すか(media upload --max-edge または --preset signage-1080p30)、ストレージに余裕のあるデバイスを使用してください |
page_exceeds_capacity | 各ファイルは単独では収まりますが、ページのファイル全体では収まりません | ページに置くファイルの数を減らすか、ファイルを小さくしてください |
capacity_excluded | 残りが収まるように、このページは除外されました | ストレージを空けるか、プレイリストを小さくしてください |
descriptor_conflict | プレイリストが1つのファイルを、異なるサイズまたはコンテンツタイプで2回掲載しています | スクリーンIDを添えて連絡先から報告してください |
not_local | Playerは起動時に保存済みのコンテンツを復元しましたが、保存されたストレージ計画がなく、このページのファイルがデバイスにありませんでした | Playerをオンラインにしてください。Playerがページをダウンロードします |
anchor_unavailable | デバイスに空きがあるのに、常時表示ページのダウンロードに失敗しました。これは容量不足ではなく、ダウンロードの失敗です | デバイスの接続を確認してください。Playerは再試行します |
大きなプレイリストを割り当てる前に、事前に確認してください:
screenrig screen storage-forecast scr_ID --playlist-id pl_ID
回答は fits、partial、none_fit、unknown のいずれかで、プレイリストに必要なバイト数とPlayerの容量が添えられます。unknown は、スクリーンがストレージを一度も報告していないことを意味します。24時間より古い報告は古い情報とみなされます。このコマンドは何も書き込みません。ストレージの失敗が表示されている場合、回答には storage_full 警告が含まれます。Playerを実行しているデバイスのストレージを空けてから、プレイリストをもう一度試してください。
カード
描画できないカードは、その矩形を空のままにし、ページは再生を続けます。Playerは card.failed をログに記録し、Web、Android、Windows のPlayerは、ページ上のカードとコードの組み合わせごとに1回、page_id、primitive_id、manifest_revision と code を添えて player.card_failed を報告します。データの有効期限が切れたカードも空白になります。screenrig card data put --ttl 30m で更新できます。
| コード | 原因 | 修正 |
|---|---|---|
unknown-card | カードIDがPlayerのカードライブラリにありません | カード参照にあるカードを使用してください |
card-unavailable | カードはライブラリにありますが、このPlayerビルドに含まれていないか、ページが指定するものとは別のメジャーバージョンが含まれています | Playerを更新するか、ページにPlayerが持つメジャーバージョンを指定してください |
card-error | カードが描画中に例外を発生させました(Web Player)。詳細はブラウザーコンソールにあります | カードのプロパティをリファレンスページと照らし合わせて確認してください |
data-unavailable | カードの最初のデータドキュメントが届きませんでした。カードは非表示のままです | screenrig card data put でデータを書き込むか、screenrig source show でデータソースを確認します |
data-source-missing | カードがカードデータを指定していますが、Playerにそのデータソースがありません | スクリーンIDとカードIDを添えて連絡先から報告してください |
cardml-invalid | CardML カードのファイルが検証に失敗しました | カードIDを添えて連絡先から報告してください |
cardml-model-error, cardml-model-timeout | CardML カードのモデルが失敗したか、時間の上限を超えました | カードのデータとプロパティを確認してください |
cardml-duplicate-key | CardML カードのリストに同じキーが2回現れました。リストは以前の行を保持します | 各行に固有のキーを付けてください |
qr-too-long, wifi-too-long | QR のペイロードまたは Wi-Fi の詳細が QR コードに収まりません | URL またはテキストを短くしてください |
invalid-target | カウントダウンの目標を解析できません | target に有効な日時を設定してください |