• 締切済み

ffmpegでfpsを適切に変更したい

29.97fpsを60fpsに変換された動画があります。これを元の29.97もしくは30fpsに変換したいのですが、フレームの並びに癖があります。 単純にフレームを間引くだけならdecimateやfpsフィルター、rオプションで簡単にできるのですが、なぜか動画のフレームの内容が以下のように不規則になっています。 例:112233345566678899 mpdecimateフィルターを使えば以下のようにフレーム自体を間引くことには成功しました。 例:1_2_3__45_6__78_9_ しかしこれでは動画ファイル自体は60fpsのままで、しかもvfrです。 これをこの状態で例えば30fpsのcfrに変換すると以下のようになり、フレームの重複とスキップが起こってしまいます。 123356689 また、mpdecimateフィルターを使っても全ての重複フレームが綺麗に取り除けれわけではないので、mpdecimateフィルター適用後の状態でptsを変更すると音声と映像がずれてしまいます。 理想としては上記の例で間の4と7が前のフレームと順番を入れ替え、1から9まで綺麗に並べた状態なのですが、何か良い方法はありませんでしょうか? お知恵をかしてください。よろしくお願いします。

みんなの回答

  • i-q
  • ベストアンサー率28% (982/3449)
回答No.2

フレームレートの変換は難易度高いですよ。。 業務用のPremierProとかも2、3年前まで怪しかった(変換後の滑らかさが)です。 今では普通になりましたが。 60にする時に失敗してるのでは? 元の動画はインターレースとかでしたか?

inshin
質問者

お礼

ご回答いただきまして、ありがとうございます。 通知のメールが迷惑メールに振り分けられて気がつきませんでした… そうですよね。なかなかうまくいきません。 元の動画はインターレースです。デインターレースするのに重複フレームを間引く必要がある状態です。 よろしくお願いします。

  • NuboChan
  • ベストアンサー率47% (785/1650)
回答No.1

可変フレームレートで変換した動画なら 可変なので規則性がなくオリジナルと全く同じ 元の29.97に戻す(変換)するのは難しいと思います。?

inshin
質問者

お礼

ご回答いただきまして、ありがとうございます。 通知のメールが迷惑メールに振り分けられて気がつきませんでした… 元の動画は固定レートです。 mpdecimateフィルターを使うと可変レートになってしまうという意味です。 よろしくお願いします。

関連するQ&A