0

以下を使用して、ビデオの正確なサイズを取得しようとしています。

(バイト単位のサイズ*8)/(合計ビット レート (オーディオ + ビデオ ビットレート) * 1024)

元:

1.24617705 秒になる (1,136,992*8)/(7128*1024)

しかし、windows movie maker liveでは、実際の長さは秒で約1.87秒とのことでした。何か間違ったことをしていますか、それとも Windows Live ムービー メーカーがオフになっていますか? 多分前者だと思います。

Easycap で録画したビデオを使用し、Windows ライブ ムービー メーカーに入れてトリミングし、最終的に ogv 形式に変換しました。したがって、完全に台無しになることは理にかなっています。ogv ビデオ ファイルのメタデータ ヘッダーにアクセスする方法がわかりません。いろいろ調べましたが、答えが見つかりません。

4

3 に答える 3

1

ファイルサイズをビットレートで割っていますか?その場合、計算にヘッダーやその他のオーバーヘッドを含めています。

しかし、この計算が機能しない主な理由は、ビットレートがそれほど正確ではないということです。考えてみてください。ビットレートが正確である場合、すべてのビデオフレーム(およびそれに付随するオーディオ)をまったく同じバイト数に圧縮する必要があります。ほとんどのコンプレッサーはそのようには機能しません。(1つの例外はDVコーデックです。DVはテープ形式であるため、一定の速度でデータを生成する必要があります。)

ビットレートは、1秒あたりに使用される平均ビット数のように考えてください。

ビデオファイルの長さを取得するには、ファイルのメタデータを読み取る必要があります。これを行う方法は、フォーマットごとに異なります。ogvファイルの場合、oggLengthプログラムが必要なようです(oggvideotoolsに含まれています)。

于 2011-12-22T21:19:15.387 に答える
0

その特定の計算は、すべてのフレームが同じサイズである場合にのみ機能します。これが発生する唯一の方法は、圧縮されていないビデオとオーディオのストリームを使用している場合です。これらのタイプのファイルはすぐに巨大になり実用的でなくなるため、圧縮を使用している可能性があります。圧縮されたビデオ ファイルでは、ビットレートは保証ではなく、単なる平均値です。また、フレームの種類が異なるため、各フレームのサイズも異なります。

ほとんどのビデオ コンテナー形式 (avi、ogm、mkv など) はすべて、ファイルの長さをメタデータに (ヘッダーの一部として) 埋め込みます。この値を単純に読み取る方がはるかに正確です。

于 2011-12-22T21:06:39.363 に答える
0

多くの場合、ビデオ ファイルにはメタデータとヘッダーが含まれているため、ファイルの合計サイズが大きくなります。信頼できる測定値を取得するには、非ビデオ/非オーディオ データのサイズを計算し、計算を行う前にそれを差し引く必要があります。それだけでなく、オーディオ データとビデオ データの可変ビット レートも考慮する必要があります。これは、固定ビット レートの非常に単純なファイル タイプを調べている場合、またはビデオ フォーマットに関する深い知識が既にある場合 (または、フォーマットを理解して解析するライブラリを既に持っている場合) を除き、一般的に簡単ではありません。

于 2011-12-22T20:55:16.427 に答える