動画再生時の総再生時間取得について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
パンダ太郎

動画再生時の総再生時間取得について

#1

投稿記事 by パンダ太郎 » 14年前

使用ソフト:Microsoft Visual C++ 2010 Express
使用ライブラリ:DXライブラリ

DXライブラリを用いて動画再生を行うプログラムを作っています。
TellMovieToGraphを使用し、再生位置を表示することは出来ましたが、
動画ファイルの長さ(総再生時間)の取得する方法はありますでしょうか?
ご教授のほど、よろしくお願いします。

Dixq (管理人)

Re:動画再生時の総再生時間取得について

#2

投稿記事 by Dixq (管理人) » 14年前

> パンダ太郎さん

こんにちは。
DXライブラリの公開関数には無いようなのでヘッダを見てみました。

extern int GetMovieTotalFrameToGraph( int GraphHandle ) ; // ムービーの総フレーム数を得る( Ogg Theora でのみ有効 )
extern LONGLONG GetOneFrameTimeMovieToGraph( int GraphHandle ); // ムービーの1フレームあたりの時間を得る

この2つで計算出来ないでしょうか。
ただ、動画時間に関する情報は大抵の動画のヘッダについていますから、自分で取得する手もあるかと思います。

例えばaviファイルであれば
http://www.elf.info.gifu-u.ac.jp/terada ... 3/avi.html

AVIメインヘッダーの
DWORD dwMicroSecPerFrame; //フレーム間の間隔をマイクロ秒単位で指定する。
・・・
DWORD dwTotalFrames; //ファイル内のデータのフレームの総数を指定する。

で上記と同じ事が解るのではないかと思います。

パンダ太郎

Re:動画再生時の総再生時間取得について

#3

投稿記事 by パンダ太郎 » 14年前

>Dixq (管理人)さん
こんばんは、早速のご回答ありがとうございます。

>extern LONGLONG GetOneFrameTimeMovieToGraph( int GraphHandle ); // ムービーの1フレームあたりの時間を得る
これを利用しまして動作を行うことが出来ました。
ありがとうございます。

>ただ、動画時間に関する情報は大抵の動画のヘッダについていますから、自分で取得する手もあるかと思います。
ヘッダー情報については、まだまだ知らないことが多いので、がんばりたいと思います。
ありがとうございました!

また壁にぶつかったときはよろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る