[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/11/06(Sat) 01:03
投稿者名:よしたろう
Eメール:
URL :
タイトル:
動画の指定する時間の映像を切り出す
MPG等の動画の中から、指定する時間(例えばスタート後10.0秒)の画面の静止画を
pictureウィンドウ内に表示あるいはgif画像として取得したいと考えております。
動画画面は表示されていてもいなくてもかまいません。

以前似た質問投稿があったようですが、そこで使うように指定されていたBitBltをやってみましたが、
静止画のコピーはうまくいきましたが、mediaplayerに関しては
hDcプロパティが見当たらなかったり、黒い画面を取得したりとうまくいきません。

WindowsXPSP2、VB6.0を利用しています。
お願いします。

投稿時間:2004/11/06(Sat) 10:11
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: 動画の指定する時間の映像を切り出す
qedit.dll (DexterLib)を参照設定できる環境ならば、
MediaDetオブジェクトを使うのが1番簡単かと。
# でも、このままだと、サイズの取得が面倒ですが。

投稿時間:2004/11/06(Sat) 13:00
投稿者名:よしたろう
Eメール:
URL :
タイトル:
Re^2: 動画の指定する時間の映像を切り出す
> qedit.dll (DexterLib)を参照設定できる環境ならば、
> MediaDetオブジェクトを使うのが1番簡単かと。
> # でも、このままだと、サイズの取得が面倒ですが。

>K.J.Kさん
早速のレス、ありがとうございます。
試してみます。
その結果は後ほどカキコいたします。

投稿時間:2004/11/10(Wed) 00:27
投稿者名:よしたろう
Eメール:
URL :
タイトル:
Re^3: 動画の指定する時間の映像を切り出す
自己レスです。
結論から言いますと、
qedit.dllを参照した後
------------------------------
Dim Det As New MediaDet
Det.FileName = "C:\movie.mpg"
TempFile = "C:\Temp.bmp"
Picture1.ScaleMode = vbPixels  ' twip をピクセルに変換する。
Det.WriteBitmapBits 150, preview.ScaleWidth, preview.ScaleHeight, TempFile
Picture1.Picture = LoadPicture(TempFile)
------------------------------
で、150秒後の画面を取得できました。
hhttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_c/directx/htm/enterbitmapgrabmodemethodmediadetobject.asp
↑ここのサンプルを使いました。

途中の紆余曲折で、K.J.Kさんの作ったDirectXのサンプルなども参考になりましたし、
K.J.Kさんのアドバイスのおかげで完成させることができました。
ここに厚く御礼申し上げます。

投稿時間:2004/11/10(Wed) 00:29
投稿者名:よしたろう
Eメール:
URL :
タイトル:
Re^4: 動画の指定する時間の映像を切り出す
アドレス訂正です。

hhttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/DirectX9_c/directx/htm/mediadetobject.asp