FixMyVideos

動画の再生が速すぎる、または遅すぎる — フレームレートが正しくありません

ビデオが開きます。オーディオがあります。ただ、何かがおかしいようです。再生が速すぎたり、遅すぎたり、または不安定です。通常、フレームレートの不一致です。

何が起きているのか

ビデオファイルは、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秒間の無料プレビューをご覧いただけます。プレビューが正しいと思える場合にのみお支払いください。

動画をアップロード →