64ビットで現在の動画のフレームをImageとしてファイルに保存する
- 題名: 64ビットで現在の動画のフレームをImageとしてファイルに保存する
- 著者: 缶々
- 日時: 2012/09/07 23:29:41
- ID: 30904
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 64ビットで現在の動画のフレームをImageとしてファイルに保存する
- 著者: 缶々
- 日時: 2012/09/08 5:10:46
- ID: 30905
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 64ビットで現在の動画のフレームをImageとしてファイルに保存する
- 著者: 缶々
- 日時: 2012/09/08 10:02:28
- ID: 30906
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
こんにちは。
MacからWindowsに移行して早10ヶ月。結構Windowsでは簡単にできないことが色々あることがわかってきました。その一つが動画に関すること(閲覧、編集など)です。どうもDirectXで現在のフレームをImageとしてファイルに保存できるようですが、実際にやってみようとすると。。。DirectXのSDKは何と64ビットをサポートしていない、ということがわかりました。それではDirectShowでは?DirectShowはDirectXと同様で2010年からアップデートされていらず、64ビットをサポートしてるのかは不鮮明。ちなみにC#でつくられたサンプルは64ビットOSで起動するものの、動画ファイルを指定するとExceptionエラーが発生します。
さてもう一つメディアファイルを扱うことが出来る方法にMCI (mcisendstring) というのがありますね。これはどうも随分古いAPIだそうで。制限はあるものの、確かに動画ファイルをPictureBoxで投影することができることがわかりました。ただMCIで現在のフレームをImageとしてファイルに保存することはできないようですね。検索結果によるとcaptureというコマンドを使えば出来るということですが、実際にそれらの記事を良く読むと、どれも「captureのコマンドでファイルを保存することができない」というところまでしか行っていないようです。MCIを使って音声を記録・保存することは間違いなくできるようですが。captureとかsaveとか、色々なコマンドをつかってみましたが、どうも動画の場合はフレームをImageとしてファイルに保存することができません。
結局、64ビットのOSでも使える動画のフレームを保存させてくれる道具はVB.NET上でもあるでしょうか?何かあれば助言をお願いします。