Windows2000上で動画ファイルのサイズを取得する

解決


とうま  2007-12-19 23:19:00  No: 28998  IP: 192.*.*.*

AVIファイルを合成するソフトを作成しています。
その途中でソースとなるAVIファイルのサイズを知る必要性が出てきました。
WindowsXPでは、
http://www.geocities.jp/fjtkt/problems/2006_0019.html(個人様のサイトです)
こちらを参考にプロパティを取得することができたのですが、
同様の方法をWindows2000上で試した場合にうまくいきません。

とりあえずWindows2000のFMTIDなども探してみているのですが、
なかなか該当する情報を発見することができず・・・

どうやらWindows2000とXPではプロパティの管理方法が違うらしいのですが、
サイズプロパティの取得方法、もしくは情報を持っていらっしゃる方はいませんか?
Explorer  >ファイルのプロパティ  >概要  でサイズは表示されるので、
何らかの方法があると思うのですが。

編集 削除
KHE00221  2007-12-20 01:08:51  No: 28999  IP: 192.*.*.*

サイズって何のサイズだろう?

FindFirst で取れるファイルサイズの事じゃないのかな?

演奏時間の事かな?メディアプレイヤーで取れたと思ったけど

Explorer  >ファイルのプロパティ  >概要  でサイズは表示されるので、

で表示されないんだよね・・・うちだと

編集 削除
さどやま  URL  2007-12-20 09:59:11  No: 29000  IP: 192.*.*.*

> サイズって何のサイズだろう?
同感。

> Explorer  >ファイルのプロパティ  >概要  でサイズは表示されるので
これで表示される「サイズ」らしきものは個々の画像の幅と高さだけですよね。

取得する画像は1つでよいのかな?
それともすべてのビットマップのサイズチェックが必要なのかな?
後者だとコードが少し増えるだけですが。

画像のファイル名は事前にわかっているのかいないのか?
これも後者だとコードが少し増えるだけですが。

編集 削除
さどやま  2007-12-20 10:19:11  No: 29001  IP: 192.*.*.*

少し質問内容を誤解していました。
AVI の結合のために「AVIのサイズ」取得が必要なんですね。
でも、「画像の縦横サイズ」が「AVIのフレームサイズ」に変わるだけなのでしょうね。
Explorer  >ファイルのプロパティ  >概要  で表示されるサイズらしきものはやはり「イメージサイズ」しかないようですので。

もしそうであれば、私なら仕様が良くわからないShellオブジェクトなど使わず、AVIファイルから直接取得してしまいますが。
そのほうがオーバーヘッドも減り処理速度も速まりますし。

http://www.usagi-goten.com/jp/AVI_structure.html などを参考にすれば、取得メソッドの自作はそう難しくありません。

> Explorer  >ファイルのプロパティ  >概要  でサイズは表示されるので、
> で表示されないんだよね・・・うちだと
なぜでしょうね?

編集 削除
とうま  2007-12-20 21:11:04  No: 29002  IP: 192.*.*.*

すいません、情報不足でした。

皆様ご指摘のとおり、プロパティで表示される『イメージ』カテゴリの『サイズ』です。
読み込むAVIファイルはすべてのフレームが同一サイズ(縦横)であることがわかっています。
さらにAVIファイルのファイル名も判明しています。

さどやまさんのアドバイスに従って、直接読み込むようにしてみます。

編集 削除
とうま  2007-12-21 10:31:09  No: 29003  IP: 192.*.*.*

バイナリから読み込む方法で無事に解決しました。
ありがとうございました。

編集 削除
とうま  2007-12-27 15:15:08  No: 29004  IP: 192.*.*.*

解決済みとさせていただきます

編集 削除