テクノロジー · 実用ガイド
Jellyfinの字幕がずれる? 時間を直す前にファイル・クライアント・再生経路を切り分ける
シーク、再開、ダイレクトストリーム、トランスコード後だけ字幕がずれるなら、字幕ファイルそのものが原因とは限りません。原本を保全し、同じ3つの台詞をローカル再生とJellyfinで比較して、どの経路でずれが生じるかを記録します。

最初から字幕のタイミングを変更したり、唯一の字幕ファイルを置き換えたりしないでください。文字が早い/遅いという同じ症状でも、字幕全体の固定ずれ、映像の版と合わず徐々に広がるドリフト、Jellyfinのシーク・再開・ダイレクトストリーム・トランスコード経路で生じる時計のずれという別々の原因があります。
Jellyfinの現行コーデック資料では、字幕形式とクライアント/コンテナの対応状況により、字幕の変換または映像への焼き込みが行われ、再生経路が変わることが説明されています。別々の課題報告には、ダイレクト再生では同期するがトランスコードではずれる例や、再開またはダイレクトストリームで時刻がずれる例もあります。
このガイドは万能な不具合原因を断定しません。元データを変更せず、同じ既知の台詞3点をローカルプレーヤーとJellyfinで確認し、選択中の字幕トラック、再生方式、トランスコード理由を記録して、観測結果に合う最小の次の手順を選びます。
1. 字幕に触る前に証拠を固定する
外部字幕はコピーを作り、元のメディアコンテナは変更しません。埋め込み字幕なら、言語、タイトル、形式、トラック一覧での位置を記録します。似た表示名が複数ある場合は、Jellyfinで実際に選択したトラックを明記します。1本のSRTの試験結果を、別の埋め込みSRT、ASS、PGSなどに流用しないでください。
メディアのファイル名、長さ、分かる範囲でリリース版や編集版を記録します。公称フレームレートが同じでも、ロゴ、あらすじ、場面、上映時間が異なる版があります。同じ数値だけで字幕が一致すると判断しません。
Jellyfinサーバー版、クライアント名と版、端末、そして問題が最初から出るか、シーク後か、再開後か、全編かを記録します。以後の結果はこの基準に結び付けます。
2. 正確に識別できる台詞を3つ選ぶ
冒頭付近、中盤、終盤から短い台詞を1つずつ選びます。台詞、音声が始まる映像時刻、字幕が早い/同期/遅いのどれかを記録します。音楽、場面転換、複数文にまたがる長い字幕は基準にしません。
3点で誤差の形が分かります。すべてがほぼ同じ量だけ早い/遅いなら固定ずれ、冒頭は近いのに終盤ほど差が広がるなら時間軸または編集版のドリフトです。3点とも最初は合い、シークや再開後だけ外れるなら、ファイル不良ではなく再生状態の結果として分けます。
各経路で必ず同じ3点を使います。クライアントごとに別の場面を選ぶと直接比較できません。
3. ローカルファイルの基準を作る
VLCなど信頼できるローカルプレーヤーで、まったく同じメディアと字幕トラック、またはコピーした外部字幕を開きます。字幕を編集せず、冒頭から再生して中盤と終盤も確認し、固定ずれ、増大するずれ、同期のどれかを記録します。
同じ固定ずれまたはドリフトがローカルでも出るなら、まず字幕ファイル側の分岐です。Jellyfinで見え方が変わる可能性はありますが、この時点でクライアントやトランスコード時計を原因と決める根拠はありません。
ローカルの3点がすべて同期するなら、その結果を保全します。Jellyfinのダイレクト再生、ダイレクトストリーム、トランスコードを調べるための対照になります。
4. Jellyfinの再生経路表を作る
最も単純なJellyfinクライアントで同じ項目を再生し、「再生情報」を開きます。ダイレクト再生、ダイレクトストリーム、トランスコードのどれか、表示された理由、選択字幕の形式を記録します。非対応字幕は変換または焼き込みされる場合があるため、拡張子だけで経路を推測しません。
最初から再生した行を完成させ、次に中盤と終盤へシークし、停止後に保存位置から再開します。可能なら元ファイルを変えず、2つ目のクライアントでも同じ試験を行います。各行は1つの経路だけを表します。
記録表: 経路|クライアント/版|再生方式|字幕トラック/形式|冒頭|中盤|終盤|シーク後|再開後|音声もずれるか ローカル|プレーヤー/版|ローカル|正確なトラック|早い/同期/遅い|結果|結果|結果|結果|はい/いいえ Jellyfin基準|クライアント/版|直接/直ストリーム/変換|正確なトラック|結果|結果|結果|結果|結果|はい/いいえ Jellyfin比較|別クライアントまたは変更1点|方式|正確なトラック|結果|結果|結果|結果|結果|はい/いいえ
比較では一度に1変数だけ変えます。クライアント、字幕トラック、コンテナ設定、画質上限を同時に変えると、結果が変わっても理由を特定できません。
5. 修正を選ぶ前にパターンを分類する
全経路で固定ずれ:ローカルとJellyfinのすべてでほぼ同じ量だけ早い/遅い状態です。セッション内の字幕遅延で量を確認できますが、ファイルは変わりません。恒久修正が必要ならコピーだけを調整します。
全経路でドリフト:ローカルとJellyfinの両方で冒頭は近く、終盤ほど差が広がります。正確な編集版または時間尺度が合っていない可能性が高いため、版に合う字幕を探すか、冒頭と終盤の基準を確認してコピーを再同期します。
ローカルでは正常、トランスコード/直ストリームだけ不良:元字幕を保全します。Jellyfinの課題には、ダイレクト再生では合うのに別経路でずれる例があります。合格した字幕を直す代わりに、再生情報、理由、ログを保存します。
最初は正常、シーク/再開後だけ不良:移動先または保存位置と、音声・映像・字幕のどれが不一致かを記録します。報告例では同じ表示時刻のフレームがVLCと異なり、字幕に見える症状が再生時計の問題でした。
1クライアントだけ不良:同じトラックと3点を別クライアントで再試験し、クライアント/サーバー版を残します。1端末だけの結果でライブラリ全体を変換しません。
6. 最小で境界の明確な次の手順だけ行う
固定ずれなら一時的な字幕遅延で量を確認し、必要な場合だけ原本を残してコピーを移動します。ドリフトなら正確な版に合う字幕を取得するか、確認済みの冒頭/終盤を使ってコピーの時間を伸縮します。
Jellyfin経路だけの問題なら、対応された公式経路でサーバーとクライアントを更新し、同じ表を再現します。HLSコンテナ設定を変えるコミュニティ案は、該当設定がある場合に1変数比較として使えますが、万能修正とは言えません。
別クライアントまたは別の対応経路で、未変更の字幕が同期するなら、両方の行を保存します。「トランスコードは常に壊れる」という推測より、サポートに有用です。
経路が決まる前にキャッシュ削除、メディア交換、埋め込み字幕の書き換え、ライブラリ初期化、一括タイミング変更を行わないでください。どれも表の完成には不要です。
7. サポートに渡せる証拠一式を作る
サーバー版、クライアント/端末版、コンテナと長さ、映像・音声・字幕形式、正確な字幕トラック、再生情報、トランスコード理由、完成した3点表を含めます。元の組み合わせがローカルで同期したかも明記します。
最小再現手順を1つ書きます。例:「WebクライアントXで先頭から再生すると3点とも同期。映像コピー/音声トランスコード表示のまま中盤へシークすると字幕だけ遅れる。同じ未変更ファイルとSRTはVLCおよびダイレクト再生のクライアントYで同期する」。
関連する時間帯のサーバー/FFmpegログだけを添付し、共有前に個人パス、ユーザー名、トークン、無関係な履歴を削除します。「この経路で再開後に失敗」は観察ですが、「Jellyfinは常に字幕を壊す」は結論の飛躍です。
すぐ修正できなくても表は成果です。正常な字幕の誤編集を防ぎ、保守担当に版、経路、再現可能な状態遷移を伝えられます。
このガイドが主張しないこと
すべての字幕ずれがJellyfinの不具合、すべてのトランスコードがドリフトを起こす、あるコンテナ設定が全クライアントを直す、とは主張しません。引用したGitHubページは詳細な利用者報告であり、現行版すべての単一確定原因ではありません。
破壊的なライブラリ保守や、唯一の字幕の編集も要求しません。調整、交換、報告、対応修正版の待機を選ぶ前に、最も狭く証拠のある分岐を特定することが目的です。
よくある質問
文字が正しいのに字幕形式が重要なのはなぜですか? クライアントやコンテナが形式を直接扱えないと、Jellyfinが変換または映像へ焼き込み、再生経路が変わります。推測せず再生情報を確認します。
フレームレートが同じなら映像と字幕は一致しますか? 一致とは限りません。ロゴ、あらすじ、場面が異なる編集版でも公称値は同じことがあります。冒頭・中盤・終盤の台詞で確認します。
シーク後だけずれる場合も字幕を直しますか? 対照試験前には直しません。ローカルと先頭からの再生で合い、シーク/再開後だけ失敗するなら、ファイルを保全して再生状態の分岐を記録します。
HLSコンテナを変えるコミュニティの方法は使えますか? 設定が存在する場合、前後を記録した比較試験には使えます。万能修正とは言えません。
音声もずれる場合は? 字幕対音声、音声対映像、または両方のどれがずれたかを記録します。ストリーム時刻の問題が字幕問題に見えるため、表と報告に含めます。
