MMControlを使って、
AVIファイルで保存した画像の解析する為に、
それぞれのフレームの情報を取得しようとしてます。
しかし、解析しようとするAVIファイルのプロパティーでは、
フレームの数が24なので、
MMControl1.Command = "PLEV"
MMControl1.Command = "STEP"
を、24回繰り返して、データを取得したのですが、
フレーム数が30以上あるようです。
MMControl1.Command = "PLEV"
MMControl1.Command = "STEP"
では、フレームを進める事が出来ないのでしょうか?
また、
MMControl1.Command = "PLEV"
MMControl1.Command = "STEP"
を、繰り返して情報を取得しても、
全フレームの情報取得した事にはならないのでしょうか?
一様、プログラムを載せておきます。
Private Sub Form_Load()
Form2.Show
MMControl1.hWndDisplay = Form2.hWnd
MMControl1.DeviceType = "AVIVideo"
MMControl1.FileName = "C:\test.avi"
MMControl1.Command = "OPEN"
MMControl1.Frames = 1
End Sub
Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 24
MMControl1.Command = "PLEV"
MMControl1.Command = "STEP"
keybd_event VK_SNAPSHOT, 1, 0, 0
Next i
End Sub
Private Sub Form_Unload(Cancel As Integer)
MMControl1.Command = "CLOSE"
End Sub
それから、AVIファイルのフレーム数を取得する方法はありますか?
教えてください。
>それから、AVIファイルのフレーム数を取得する方法はありますか?
>教えてください。
「RFC2361」に記述されていますので、こちらを参考にすれば
フレーム数の取得も容易です。
AVI-MicrosoftによるMovieフォーマットは、内部に様々な形式の
データを含めることが可能です。ですから、固定で決め打ちは
できません。可変ピッチのフォーマットで入っていない、とは
限らないのですし。
今となってはMCIベースのMMControlではなく、DirectShow系の
ものを使うほうがいいでしょう。MediaDetオブジェクトなどに
ついて調べてみるとか。
アドバイス有難うございました。
DirectShowに挑戦します。
ツイート | ![]() |