Media Foundation の書籍

「Developing Microsoft Media Foundation Application」という書籍が出版されました(英語 $29.45、Kindle版 $17.39)。日本のアマゾンからも注文できます(2011年11月11日現在 2,877円)。

0

わんくま同盟 東京勉強会 #60

6月25日(土)に、わんくま同盟 東京勉強会 #60 で「異なるグラフィックスAPIによるGPU サーフェイスの共有」の話をします。もともと MSDN Library「Surface Sharing Between Windows Graphics API」を自分でもちゃんと理解したくて内容を決めたんですが、気が付いてみたら Silverlight 5 (beta) や Windows Phone “Mango” でどんどん実装(カプセル化)されしまいました。

0

Microsoft Media Platform

Microsoft Media Platform ポータル(英語)が公開されました。メディアのエンコード、コンテンツ管理、配信、著作権保護、再生のテクノロジー情報を一元的に公開しようとするポータルです。 以下のテクノロジーとプロジェクトがリストされています。 テクノロジー IIS Media Service Expression Encoder Silverlight PlayReady プロジェクト Player Framework Video Editor Audience Insight Content Manager

0

チルトシフトスタジオ(Windows 7 アプリ投稿キャンペーン)

Windows 7 アプリ投稿キャンペーン に「チルトシフトスタジオ」が投稿されました。このアプリは動画・画像ファイルに遠近感のぼかしエフェクトを幅や角度を変えて適用するアプリです。これを適用するとミニチュア模型の動画・画像のように見えます(このような効果をチルトシフトと呼ぶそうです)。 内部的に MediaFoundation や Direct2D を使い、シェル UI に WPF という本格的なアプリケーションです。 さっそく同僚が試した画像を Flickr で公開しています(適用前と適用後)。 なお、Windows 7 アプリ投稿キャンペーンは12月17日(金)までだそうです。

0

PDC 2009 (Nov.18)

PDC09 も本番2日目です(私は3日目ですが)、今日もキーノートがありました。今日、参加したセッションは以下の通りです。 キーノート BOF Developers on Better Design, User Experience and Why It Matters CL34 Media Foundation: Supporting Hardware Codecs and Cameras CL15 Modern 3D Graphics Using Windows 7 and Direct3D 11 Hardware FT07 The State of Parallel Programming CL12 Developing with the Windows API Code Pack for Microsoft .NET Framework キーノート ウルトラセブンのテーマソングとともに現れたSteven SinofskyがIE9について、HTML5, JavaScriptの高速化、Direct2D・DirectWriteの使用などをアナウンスしましたが、PDC09の参加者(社員は除く)にWindows…

0

Dolby Digital CODEC @ Windows 7

Windows 7 上の Dolby Digital CODEC(AC-3など)には制限があるので、独自のメディア アプリケーションを開発される方は、注意してください。SDK ドキュメント「Microsoft MPEG-1/DD/AAC Audio Decoder」によると、以下のように記述されています。 Note  The Microsoft implementation of the Dolby Digital technology is restricted under terms of the Dolby Digital licensing program to use by Microsoft applications. つまり、Windows 7 に搭載されている、マイクロソフトが実装した AC-3 デコーダー(DirectShow フィルター)は、マイクロソフト製品(たとえば Windows Media Player)以外では使うことができません。 したがって、AC-3 でエンコードされたメディアを再生したいアプリケーション開発者は Dolby Digital からライセンスを取得し、デコーダーを実装する必要があります。

0

WPF MediaKit @ codeplex

WPF MediaKit では、DirectShow や MediaElement を WPF で使えるようにしています。作者は Jeremiah Morrill です。 例えば DvdPlayerElement 要素とか VideoCaptureElement があり、以下のように使えます。 <WPFMediaKit:VideoCaptureElement x:Name="videoCapElement" LoadedBehavior="Play" DesiredPixelWidth="320" DesiredPixelHeight="240" Stretch="Fill" VideoCaptureSource="{Binding Path=CaptureDeviceName}" FPS="30" />

0

Media Foundation ⑥ WebCam + WPF XAMLとC#の実装

それでは XAMLとC#を実装しましょう。次のようにビデオ画像と、スライダーで回転・スケールを行うので、XAMLではD3DImageと2つのスライダー(とラベル)を宣言します。一つのスライダーはD3DImageの回転角度に、もう一つはD3DImageのXScaleとYScaleにバインディングします。 D3DImageはSystem.Windows.Interop名前空間にあるので、名前空間の追加に注意してください。 C#の実装 D3DImage チュートリアルとの違いは、初期化時にビデオのサイズを取得していることと、Rendering イベントハンドラーとコールバックを宣言する代わりに、Windows メッセージを処理するためのコールバック(ここではBltVideo)を HWndSourceクラスのAddHookメソッドを使って宣言することです。そのあとで一回目の非同期サンプリング命令(Sample)を呼び出します。         private readonly D3DWrapper myD3DScene = new D3DWrapper(); private HwndSource source; private const int WM_PAINT = 0x000F; private int videoWidth = 0; private int videoHeight = 0; …       private void StartDXRendering() {  if (!myD3DImage.IsFrontBufferAvailable)   return; IntPtr scene = myD3DScene.Initialize(…

0

Media Foundation ⑤ WebCam + WPF プロジェクトの作成とC++の実装

以前紹介したMedia Foundation の MFCaptureD3D サンプルを基に、WebCam のビデオ出力を D3DImage 経由で WPF で表示してみましょう。WPF で表示できれば、回転やスケールは思いのままですし、ブラーなどのエフェクトも容易です。 WPFソリューションの作成と混合アセンブリに変換 D3DImage チュートリアルを参考にして、WPFソリューションを作成し、MFCaptureD3Dプロジェクトを追加し、C++/CLIの混合アセンブリに変換します。マニフェストは明示的に追加しなくても、自動生成のもので構いません。ついでに、WPFプロジェクトの設定もしておいてください。 C++コードの編集 まず、キャプチャしたビデオを表示するウィンドウを生成し、メッセージポンプを定義している winmain.cpp を「プロジェクトから除外」します。次にD3DWrapper.cppを追加します。D3DWrapper.cppの内容は以下の通りです。初期化するときにD3Dサーフェイスとビデオの幅と高さを取得して、呼び出し元(つまりC#側)に返します。あとは、SampleメソッドでのMFReaderの非同期サンプリングの命令と、クリーンアップだけです。非同期サンプリングなので、このSampleメソッドが返っても、サンプリングは終了していません。初期化時にMFStartupを、クリーンアップ時にMFShutdownを呼び出していることにも注意してください。 #include "MFcaptureD3D.h" #include <vcclr.h>  using namespace System;  CPreview* g_pPreview; namespace MFCaptureViewer {   public ref class D3DWrapper    {    public:      IntPtr Initialize(IntPtr hwnd, int% width, int% height)      {        LPDIRECT3DSURFACE9 g_pd3dSurface;        MFStartup(MF_VERSION);      …

0

H.264 / AVC デコード DXVAの仕様書の更新

DXVAはビデオなどのメディアをGPUでハードウェア デコードするための Win32 API です。ダウンロードセンターに以前からあったH.264 ハードウェア デコードの仕様書が少しだけ更新されました(バグフィックス)。

0