aviファイルのフレームの取得

解決


NewGocky  2006-03-02 07:51:30  No: 94443

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ファイルのフレーム数を取得する方法はありますか?
教えてください。


いな  2006-03-02 17:34:31  No: 94444

>それから、AVIファイルのフレーム数を取得する方法はありますか?
>教えてください。

「RFC2361」に記述されていますので、こちらを参考にすれば
フレーム数の取得も容易です。


K.J.K.  2006-03-02 19:21:34  No: 94445

AVI-MicrosoftによるMovieフォーマットは、内部に様々な形式の
データを含めることが可能です。ですから、固定で決め打ちは
できません。可変ピッチのフォーマットで入っていない、とは
限らないのですし。

今となってはMCIベースのMMControlではなく、DirectShow系の
ものを使うほうがいいでしょう。MediaDetオブジェクトなどに
ついて調べてみるとか。


NewGocky  2006-03-07 07:18:58  No: 94446

アドバイス有難うございました。
DirectShowに挑戦します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加