RAWのサムネイルはブラウザーでは表示できても、モバイルでは表示できないことがあります。クライアントごとに、要求するプレビュー、派生ファイル、サイズ、デコーダーの経路が異なる場合があるためです。
まず、同じライブラリから正常に動作するRAWファイルを1つ、失敗するRAWファイルを1つ用意します。Webとモバイルが実際に行うサムネイルリクエストを正確に比較し、カメラに埋め込まれたプレビュー、サーバーで生成された派生ファイル、モバイル端末のローカルキャッシュを切り分けます。元のRAWファイルは完全に正常で、表示経路の1つだけが壊れている可能性があります。
モバイルが別のプレビューを要求しているか確認する
ログまたはリクエストパスを記録しながら、Webインターフェースとモバイルアプリで同じRAWアセットを開きます。要求されたサムネイルサイズ、拡張子、レスポンスコード、モバイルクライアントが元ファイルにフォールバックしているかどうかを比較します。
多くのRAWファイルには埋め込みJPEGプレビューが含まれています。Webクライアントはその埋め込み画像を表示できても、別のクライアントはサーバーに別途生成された派生ファイルを要求する場合があります。
2つのクライアントが異なるオブジェクトを要求している場合、その症状を共通のRAWデコード失敗として扱うのはやめましょう。次に確認すべきなのは、モバイルだけが使用する派生ファイルまたはクライアント側の経路です。
埋め込みプレビューとサーバーでのレンダリングを比較する
RAWファイルに埋め込まれたプレビューを抽出または調査し、サーバーで生成されたサムネイルと比較します。埋め込みJPEGが正常で、生成されたサムネイルだけが失敗するなら、異なるコードパスが原因です。
写真管理ツールでは、埋め込みJPEGプレビューとRAWデータのレンダリングについて、異なるRAWレンダリング動作が説明されています。これは、一方のサムネイル経路が成功しても、もう一方が正常だとは限らない理由を示しています。
生成されたサムネイルだけが失敗する場合は、サーバーのデコーダーと派生ファイル生成ジョブを調査します。埋め込みプレビューだけが壊れている場合は、サーバーを変更する前に、同じカメラで撮影した別のファイルをテストします。
拡張子だけでなくRAWの種類を確認する
カメラのモデル、ファームウェア、RAWの圧縮方式、ビット深度、失敗するファイルがネイティブRAW、DNG、またはスマートフォン固有のRAW形式のどれに該当するかを記録します。正常に動作するサンプルと比較してください。
DNGであっても、プレビューや画像の構造が異なる場合があります。そのため、DNGのプレビューの違いは、同じ拡張子のファイルがすべて同じデコード経路でクライアントに届くと決めつけないためのよい注意点になります。
カメラ固有の違いが見つかれば、有力な証拠です。その形式を処理できないデコーダーコンポーネントだけを更新または交換するか、元のRAWファイルを保持したまま互換性のある派生ファイルを生成します。
壊れているモバイルのキャッシュ層だけを消去する
サーバーログでサムネイル生成が成功している場合は、キャッシュを無効にした状態、対象を絞ってアプリのキャッシュを消去した後、または別の端末でモバイルアセットをテストします。最初からサーバーのサムネイルストア全体を削除しないでください。
ProRAWの処理経路のようなスマートフォンのRAWワークフローでは、表示前に別の処理層が追加されます。そのため、同じ元ファイルでも、クライアントのデコーダーやキャッシュされた派生ファイルの動作がデスクトップブラウザーと異なることがあります。
別のモバイル端末で動作するなら、ローカルキャッシュまたはアプリのバージョンに焦点を絞ります。すべてのモバイル端末で同じ派生ファイルURLが失敗するなら、クライアントを何度も再インストールするのではなく、サーバーのレスポンスを再確認します。
1つの派生ファイルを再生成して再テストする
アプリケーションがサポートする手順を使い、対象を限定したRAWアセット1つについて、失敗した派生ファイルだけを削除または無効化し、サーバーに再生成させます。新しいオブジェクトのサイズとレスポンスを記録します。
関連するZimaSpaceのImmichによる家族写真ライブラリガイドでは、隣接する重要な考え方として、元ファイルを保持し、派生ファイルの再生成を使い捨て可能な処理にする方法を説明しています。プレビューの問題を写真の消失につなげないためです。
キャッシュの有効期限切れ、アプリの再起動、新しいサーバーリクエストの後に、同じRAWファイルがWebとモバイルの両方で表示されて初めて、問題が解決したと判断します。再生成した派生ファイルでも失敗する場合は、デコーダーのレベルで比較できるよう、そのファイルを保存しておきます。
よくある質問
なぜブラウザーのサムネイルは表示できるのに、モバイルアプリでは何も表示されないのですか?
2つのクライアントが、異なる派生ファイル、サイズ、形式、またはキャッシュエントリを要求している可能性があります。そのため、ブラウザーのプレビューが有効でも、モバイル用のプレビューオブジェクトが正常だとは限りません。
モバイルで見るためだけにRAWファイルをJPEGへ変換すべきですか?
最初の対策としてはおすすめしません。元のアーカイブを複製または変換する前に、埋め込みプレビューと生成された派生ファイルのどちらの層で失敗しているかを確認してください。
あるカメラモデルでは問題が起きるのに、別のモデルでは起きないことがありますか?
はい。RAW形式や埋め込みプレビューの選択はカメラモデルやファームウェアによって異なります。すべてのRAWファイルを同じものとして扱うのではなく、正常に動作するファイルと失敗するファイルを1つずつ比較してください。
サポートとヒント
もっと読む

Plexは別のDockerコンテナとGPUを共有できますか?
Plexと別のコンテナは同じGPUにアクセスできることが多いですが、ドライバーのサポート、デバイスマッピング、ビデオエンジンの負荷、メモリ、復旧動作をテストする必要があります。

Plexのエラーがクライアント側とサーバー側のどちらに起因するかを見分ける方法
別のクライアントで同じ項目を再現し、セッションパスを比較してから、スコープによって障害の実際の所在が特定された後にのみサーバーの証拠を収集してください。

Plexのキャッシュとトランスコード用一時ストレージを設定する方法
永続的な Plex の状態を保護しつつ、トランスコードの一時ファイルを適切なローカルストレージに配置し、クリーンアップ、空き容量、再起動時の動作を確認します。

