「標準」フレームレートはいくつかありますが、非常に多くなっているため、任意のフレームレートをサポートする方が、特定のフレームレートを具体的にサポートするよりも簡単です。これは、VLCなどのソフトウェアプレーヤーに特に当てはまります。
VARIABLE fpsに対するサポートがますます増えています。(VFR、可変フレームレート)。これは、同じビデオ内のフレーム間の間隔が一定ではない場所です。多くのビデオコンテナーファイル形式(Matroska(.mkv
)やMPEG-4(.mp4
、Appleに密接に関連.mov
)など)は、FPS番号を保存するのではなく、タイムベース(1/30秒など)を保存し、その後各フレームを保存します。そのタイムベースの倍数としてタイムスタンプがあります。たまたま、各フレーム間の間隔は、CFR(一定フレームレート)ビデオのタイムベースの1または小さな整数の単位です。
ほぼ複製されたフレームがドロップされたセキュリティカメラの映像は、VFRの明らかなユースケースです。さらに、時間的冗長性(インター(pおよびb)フレーム)を十分に活用していない単純化したビデオコーデックで圧縮されている場合も同様です。(ffmpeg -vf mpdecimate
ニアデュプフレームをドロップするために遊んでみてください。mp4に-vsync 2
出力する場合に使用してください。何らかの理由で、それはそのマルチプレクサのデフォルトではありませんが、mkvのためです。)
別のケースは、現代のスマートフォンです。たとえば、兄のMoto G(第2世代)はVFRビデオを録画します。センサーがより多くの光を必要とするとき、それはフレームレートを下げます。屋内で録音された、電話のソフトウェアによって作成されたmp4でmediainfoを実行した場合の出力の一部:
Bit rate : 9 999 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Rotation : 90°
Frame rate mode : Variable
Frame rate : 16.587 fps
Minimum frame rate : 14.985 fps
Maximum frame rate : 30.030 fps
単一のVFRビデオストリームの再生は難しくありません。ソフトウェアは、次のフレームを表示する準備を整え、表示されるまでスリープ状態にした後、ウェイクアップして表示します。
人間がビデオフレームを見ることができるのは、モニターがビデオフレームを表示するときのみであるという事実を考慮すると、状況は少し複雑になります。VFRモニターは存在しますが、まだまれです。(g-sync freesyncのグーグル)。
スキャンされてモニターに表示されている間に表示された画像を変更すると、ビデオが見苦しくなります(vsyncをオフにしてゲームをプレイするとよく見られます)。これにより、プレーヤーは表示された画像を50または60Hzで変更できます。(CRTは範囲内の任意のvrefreshレートをサポートしますが、すべてのタイミングが正しい状態でモードをクックアップすることは複雑であるため、ほとんどの人はいくつかの固定リフレッシュレートを使用しました。そして今、固定リフレッシュレートのみをサポートするLCDがあります。とにかくfreesyncモニターはもっと広く普及しています。本当に楽しみにしています:)
したがって、ビデオのフレームレートがモニターのリフレッシュレートの倍数または係数ではない場合、たとえば、ビデオが一定の25FPSであることを意図している場合でも、3つのモニターのリフレッシュで表示されるフレームと2つのフレームで表示されるフレームがあります。 (60Hzモニター上)。
複数のクリップを操作してそれらの間でフェードインしたり、ピクチャーインピクチャーやその他のさまざまなエフェクトを使用したりする場合、状況はさらに複雑になります。すべてのクリップが同時に新しいフレームを持っていると想定できる場合は、ビデオ編集ソフトウェアを書く方がはるかに簡単です。(クリップの配置を強制してフレーム全体にスナップします)。
これが、NLE(kdenliveやpitiviのように、ランダムなフリーソフトウェアの例を選択する)が強制的に固定FPSを強制し、クリップからフレームをドロップ/複製して、それらをそのフレームレートに一致させる理由です。選択するCFRは任意にすることができますが、通常は「プロジェクト」全体で一定でなければなりません。
(NFRはVFRクリップで完全に機能し、その場合VFR出力を生成しますか?)
要約すると、可変同期モニターとOSが用意できたら、私たちを後退させている唯一のことはビデオ編集だと思います。そして放送、CFRもそのための大きな問題なので、どうですか?
ご参考までに、29.970(実際には30000/1001)と23.976(実際にはテレシネによる24000/1001)の不快な非整数フレームレートは、カラーNTSCの欠点です。 1.001を検索します。オーディオサブキャリア用の追加の0.1%周波数を処理できないいくつかのB&Wセットを危険にさらすことをいとわないのなら、世界はこのナンセンスを免れていたでしょう。(私はどこかで多くのセットがより良いように聞こえる別の記事を見たと思いますが、完璧な互換性については確信がありませんでした。事実。)
ただし、迷惑なフレームレートは、ブロードキャストの少ない罪の1つです。現代の(すべてのピクセルが同時に点灯する)画面では、ビデオ品質の悩みの種であるインターレースであり、変更されていなかったでしょう。HDTVでインターレースが維持された理由はまだわかりません。720p60を使用してスポーツなどの時間解像度を同じにする代わりに、1080i60が定義されたのはなぜですか?これは1920x540p60に似ていますが、奇数フィールドと偶数フィールドの間に愚かな垂直オフセットがあり、ひどく見えないようにするには受信側で多くの計算が必要です。
編集:
ユースケースについては、ネイティブFPSでアーカイブすることをお勧めします。フレームを落として情報を捨てないでください。フレームを複製してファイルを大きくしないでください(または、h.264エンコーダーが重複に気づき、フレーム全体で20バイトしかかからないスキップマクロブロックでいっぱいのフレームを出力するのにより多くの時間を費やします)。
将来的には、すべてのフレームレートを再生できるfreesyncディスプレイがすべてできれば、24fpsへのプルアップを元に戻し、ビデオがよりスムーズに再生されるようにする必要があります。あるいは、何らかの理由でfreesyncがうまくいかなかったり、LCDの後に表示されるディスプレイがCFRである場合は、とにかく再生時にレート変換を行うのがおそらく最善です。24 fpsが60 Hzのモニターで完全に再生されるようなものでもありません。(一部のフレームが3 * 1/60で表示されるのに対し、一部のフレームは2 * 1/60で表示されるという事実に視覚的に気づきませんが、それは本当です)。
Quicktimeに問題がある場合は、IDKを使用してください。おそらく、Handbrakeがh.264ビットストリームとコンテナで適切なフレームレートを設定してファイルを作成していることを確認してください。(はい、h.264ヘッダーは、コンテナの内容とは別に、フレームレートを格納できるようです。のドキュメントを参照してくださいmkvmerge --fix-bitstream-timing-information
。それをで使用して--default-duration 16fps
mkvファイルを作成してみてください。次に、それをmp4に戻し、クイックタイムが修正されるかどうかを確認しますか? )または、そもそもmp4ツールでそれを行う方法があるかもしれません。例を参照してください:https : //askubuntu.com/questions/370692/how-to-change-the-framerate-of-a-video-without-reencoding
任意のフレームレートmp4が有効であり、可変フレームレートmp4も有効であることを保証できます。Quicktimeが正しく再生しない場合は、Quicktimeの障害である可能性があります。あるいは、ファイルを間違ったものにするハンドブレーキのせいかもしれません。私はコマンドライン忍者なので、通常は直接ffmpegを使用します。