動画の再生が速すぎる、または遅すぎる — フレームレートが正しくありません
ビデオが開きます。オーディオがあります。ただ、何かがおかしいようです。再生が速すぎたり、遅すぎたり、または不安定です。通常、フレームレートの不一致です。
何が起きているのか
ビデオファイルは、2か所でフレームレートを宣言します。「mvhd」と「mdhd」(タイムスケールと期間)のトラックごと、および「stts」テーブルのフレーム期間を通じて暗黙的に。それらが一致しない場合、または復元で間違った値が書き込まれた場合、プレーヤーは時間を間違って分割し、ビデオは間違った速度で表示されます。
一般的なパターン:
パターン1:ハーフスピードまたはダブルスピード
録画されたファイルは60 fpsですが、30 fpsで再生されます(スローモーションのように見えます)。またはその逆です。ほとんどの場合、復元時にフレームレートが誤って読み取られています。フレームは正しいですが、タイミングのメタデータのみが間違っています。
パターン2:ジャーキーな動き/ドロップフレームの外観
ビデオは1フレームおきに再生されているように見えます。多くの場合、プレイヤーが30 fpsに設定されているものの、ファイルが可変または60 fpsであるため、フレームレートが一致しないため、表示中にフレームが効果的にドロップされます。
パターン3:動画は正しく再生されるが、エクスポートの速度が正しくない
Premiere / Resolveにインポートすると、タイムラインは正常に再生されますが、エクスポートは速くまたは遅くなります。プロジェクト設定(タイムラインのフレームレート)がクリップのフレームレートと一致せず、コンフォームが正しくありません。
パターン4:可変フレームレート(VFR)の問題
iPhoneや多くのスマートフォンはVFRで録画します。実際のフレーム間隔はわずかに異なります。NLEはインポート時に一定フレームレート(CFR)に変換しますが、時には正しく変換されないことがあります。結果:録画中のタイミングのずれ。
どれかを判断する方法
ffprobe -v error -show_streams broken.mov | grep -E "r_frame_rate|avg_frame_rate|time_base|nb_frames|duration"
次のようなものが得られます。
r_frame_rate=60/1
avg_frame_rate=60/1
time_base=1/60000
duration=120.500000
nb_frames=7230
数学チェック:'nb_frames / duration ≈ avg_frame_rate'。それがほぼ一致しない場合、タイミングメタデータに一貫性がありません。
'r_frame_rate'と'avg_frame_rate'が大幅に異なる場合→VFR(パターン4)。
'nb_frames * (1/r_frame_rate) ≠ duration'の場合 → 間違った期間または間違ったフレームレートのメタデータ。
対処方法
パターン1 — フレームレートが正しくありません
正しいフレームレートを強制的に設定して再マルチプレクシングします。
ffmpeg -i broken.mov -c copy -video_track_timescale 60000 -r 60 fixed.mov
「60」を実際のフレームレートに置き換えます。カメラが何を録画していたかわからない場合:カメラのメニューを確認するか、ファイル内の可視の動きをカウントしてください(明らかに60fpsのパンショットがスローモーションのように見える場合、30で再生されています。60を強制してください)。
パターン2 — 再生がぎくしゃくする
多くの場合、ファイルの問題ではなく、プレーヤーの問題です。VLCまたはResolveを試してみてください。それらがスムーズに再生される場合、ファイルは問題なく、元のプレーヤーに問題があります。
VLCでもスタッターが発生する場合:ファイルのフレームタイミングにギャップがあります。タイムスタンプの再生による再マルチプレクシング:
ffmpeg -i broken.mov -fflags +genpts -c copy fixed.mov
パターン3 — プロジェクトのフレームレートの不一致
タイムラインのフレームレートをクリップに合わせて設定します。Premiereの場合:[新しいシーケンス] → [設定] → [タイムベース]。Resolveの場合:[プロジェクト設定] → [マスター設定] → [タイムラインのフレームレート]。
別のタイムラインレートを使用する必要がある場合、NLEの「映像の解釈」ツールを使用すると、他のクリップに影響を与えることなく、クリップの報告レートを上書きできます。
パターン4 — VFRドリフト
FFmpegでCFRに変換する:
ffmpeg -i variable_frame_rate.mov -vsync cfr -r 30 -c:a copy constant_frame_rate.mp4
'-r 30'はターゲットCFRです。ソースの主要レートに一致するように選択してください。
当社のリカバリがフレームレート検出を処理する方法
リカバリーパイプラインは、2つの方法でフレームレートを検出します。
- コーデックパラメータから。 H.264 SPS、H.265 SPS、ProResフレームヘッダーはすべてフレームレート情報を伝達します。最初の有効なフレームのパラメータセットから抽出します。
- タイムスタンプの分布から。 コーデックパラメータが欠落しているか破損している場合は、「mdat」で検出されたフレーム間の間隔からフレームレートを導出します。中央値のフレーム間隔がfpsの推定値になります。
エッジケース:
- VFRソース(携帯電話の映像):回復されたファイルは、デフォルトで中央値のフレームレートのCFRであり、フレームごとのタイムスタンプがパススルーされているため、再生タイミングは元のものと一致します。エディターが必要とする場合は、VFR出力をリクエストできます。
- スローモーションモード (例:iPhone 240 fps):回復されたファイルは、ソースの意図された再生レート(30 fps)で再生され、240 fpsのソースは想定どおり8倍のスローモーションで再生されます。
- 混合レート (まれで、連結された録画でのみ見られます):主要なレートを抽出し、手動レビューのためにケースにフラグを立てます。
対応方法
他の場所から回復したファイルが間違った速度で再生される場合:再回復する前に、上記のFFmpeg修正を試してください。それでも問題が解決しない場合は、元の破損したファイルをアップロードしてください。正しいフレームレート検出で再度処理を行います。
ファイルが当社からのもので、速度が間違っている場合は、ジョブページからケースをエスカレーションしてください。修正されたfpsで再生成します。無料です。
FAQ
iPhoneのスローモーション録画は、復元後、間違った速度で再生されます。 スローモーションモードは高FPS(120、240)で録画し、「30で再生」という再生速度のメタデータを埋め込みます。復元では、そのメタデータが失われることがあります。解決策:Photos / FCPで、再生速度を手動で設定するか、希望の再生速度にするために「-r 30」で再エクスポートしてください。
ゲーム/画面の録画がPremiereで速すぎます。 ほとんどの場合、プロジェクトのフレームレートの不一致(パターン3)です。タイムラインをソースレートに合わせて設定してください。
アップロード後、YouTubeでのみビデオが間違った速度で再生されます。 YouTubeは、アップロードを固定フレームレート(通常29.97/59.94)にトランスコードします。ファイルが正確に30/60で、仕様外のメタデータがある場合、YouTubeの解釈は異なる場合があります。YouTubeの期待に合わせて事前にトランスコードしてください。
ffmpeg -i input.mov -r 30000/1001 -c:v libx264 -c:a copy youtube_friendly.mp4
私の映像は安全ですか? フランスのサーバー、48時間後に自動削除、トレーニングや共有には一切使用されません。プライバシーポリシー。
関連
無料プレビュー · 義務はありません
動画を復元する準備はできましたか?
ファイルをアップロードしてください。約1分で5秒間の無料プレビューをご覧いただけます。プレビューが正しいと思える場合にのみお支払いください。
動画をアップロード →