DirectShowプログラミング [VC++]

ここでは、DirectShowを使ってプログラムを書く方法を説明します。 DirectShowは、Windows上で映像(動画)や音声を扱うためのフレームワークです。 DirectShowを使うと、様々なフォーマットの映像や音声を簡単にキャプチャ/再生/保存できます。

このページは初心者向けDirectShow入門講座を目指しています。 DirectShowはCOM(Component Object Model)をベースに作られていますが、ここではCOMを知らない人でもDirectShowプログラミングをできるような説明を目指したいと考えています。

DirectXの準備

注意!DirectShowは2005年4月にDirectXからPlatformSDKへ移っています。 DirectShowを使いたい場合にはDirectXではなく、PlatformSDKをインストールしましょう。 Platform SDKをインストールした場合には、以下の設定に関する説明は読み飛ばしてください。

DirectShowは、Microsoft DirectXのサブセットです。 そのため、DirectShowを使ってプログラミングを行なうには、まず、DirectXをインストールしなくてはなりません。 WindowsXPであれば、DirectXは最初から含まれているので、DirectX自体をインストールする必要はありません。 それ以外のシステムでは、必要に応じてDirectX Runtimeのインストールが必要です。 DirectX Runtimeはマイクロソフトのサイトからダウンロードできます。

DirectXの機能を使ってプログラミングを行なうには、DirectX SDKをダウンロードしなくてはなりません。 DirectX SDKは、マイクロソフトのMSDNダウンロードサイトからダウンロードできます。 DirectX SDKの中にはサンプルコードも入っているので、必要に応じて見て下さい。

これ以降の説明は、DirectX SDKを「C:\DXSDK\」という場所にインストールした事を想定して行います。 DirectX SDKのインストール先は環境によって異なるので、必要に応じて置き換えて考えてください。

DirectShowを使ってプログラムを書くには、dshow.hというヘッダファイルをincludeしなくてはなりません。


#include <dshow.h>

次に、リンカの設定を行わなくてはなりません。 DirectShowを使ったプログラムをコンパイルするには、VisualStudioの「構成プロパティ > リンカ > 入力 > 追加する依存関係」に「strmiids.lib」という項目を追加して下さい。

DirectShow基本

GraphEditを使う

エラー値の意味を知る

MPEGファイルを再生する(RenderFile)

映像再生が終るまで待つ

再生ウィンドウのタイトルを変更する(IVideoWindow)

フルスクリーン表示(IVideoWindow)

自前ウィンドウに表示する(IVideoWindow)

IMediaEventEx::SetNotifyWindowを使った再生終了通知

MPEGファイルを再生する(ダウンロード再生)

ビデオの幅と高さを取得する

再生速度を変える

再生時間を取得する

音量とバランスを変える

DVDを再生する

DVDを再生する

DVDを再生する(MFC)

DVDの情報を取得する

DVDタイトルのチャプター数を取得する

フレームキャプチャ

IBasicVideoを使って静止画を取得する

SampleGrabberを使って静止画を取得する

Bitmapfileフォーマット

SampleGrabberを使って複数の静止画を取得する

SampleGrabberを使って動画の最初のフレームを取得する

ビデオキャプチャ

ビデオ入力デバイスからの映像を表示する

ビデオ入力デバイスからの映像をAVIに保存する

ビデオ入力デバイス名を取得する

ビデオ入力デバイス情報を取得する

ビデオ入力デバイスを選択してから再生する

キャプチャデバイス+SampleGrabber

キャプチャデバイス+SampleGrabber (2)

複数のアナログ入力があるデバイスを扱う

複数のアナログ入力があるデバイスを扱う(2)

複数のアナログ入力があるデバイスを扱う(3)

TVチューナーを制御する

TVチューナーを制御する(2)

VMR9 (Video Mixing Renderer 9)

VMR9を利用する

インターフェース

IMediaControl

IMediaEvent

IMediaEventEx

IBasicAudio

関連情報

参考文献

Visual Studio



カスタム検索




はてなRSSに追加
Subscribe with livedoor Reader
Subscribe with Bloglines
Add to goo

外部サイト

プレコ王国
ディスカス魂
金魚タイムズ
YouTubeチャネル
Twitter
mixi(ほぼ未使用)


フィードメーター - Geekなぺーじ にほんブログ村 IT技術ブログへ
Copyright (C) Geekなページ.
All rights reserved. 無断転載や無断コピーなど、私的利用の範囲を逸脱した利用はおやめ下さい.