低遅延アプリケーションのためのAMF DMライブラリの使い方
Table of Contents:
- はじめに
- AMF DMとは?
- AMF DMの機能
- サンプルアプリケーションの使い方
- AMF DMの設定ファイル
- AMF DMエンコーダーオブジェクトの作成
- 物理接続の設定
- ディスプレイの設定
- 映像エンコーダーの設定
- エンコーディングと保存
- デモの実行
- まとめ
- 質問とフィードバック
はじめに
AMF DM(Advanced Media Framework Display Mode)は、AMDのAPUやディスクリートGPUに搭載されている機能で、ディスプレイコントローラと映像圧縮エンジンの直接的な物理的接続を活用することができます。この機能を使用すると、低遅延アプリケーション(ワイヤレスディスプレイやリモートデスクトップなど)でのH.264エンコーディングが容易に行えます。
AMF DMとは?
AMF DMは、AMDのAPUやディスクリートGPUに搭載されている、ディスプレイコントローラと映像圧縮エンジンの直接的な物理的接続を活用するための機能です。この機能により、H.264エンコーディングを低遅延アプリケーションで行うことができます。
AMF DMの機能
AMF DMライブラリは、C++ APIを提供し、開発者がこの機能を簡単にアプリケーションに組み込むことができます。AMF DMでは、デスクトップのキャプチャと圧縮、オーディオストリームのキャプチャ、エレメンタリーストリームやトランスポートストリームへの多重化など、さまざまな機能を利用することができます。
サンプルアプリケーションの使い方
サンプルアプリケーションを使用すると、AMF DMを実際に使用する方法を確認することができます。例えば、「screen capture application」を使用し、設定ファイル「exampleconfig.cfg」を編集することで、AMF DMの機能を設定することができます。
AMF DMの設定ファイル
AMF DMの設定は、「exampleconfig.cfg」という設定ファイルを使用して行います。このファイルには、使用目的や出力の種類など、さまざまなパラメーターを設定することができます。また、エンコーダーのビットレートやバッファサイズなども設定することができます。
AMF DMエンコーダーオブジェクトの作成
AMF DMのエンコーダーオブジェクトは、「amf_create_encoder_vc_edm」というメソッドを使用して作成します。エンコーダーオブジェクトを作成することで、AMF DMの機能を操作することができます。
物理接続の設定
エンコーダーオブジェクトを作成した後は、ディスプレイコントローラとVCE(Video Compression Engine)の物理接続を設定します。「acquire_remote_display」というAPIを使用して、仮想ディスプレイの取得を行います。
ディスプレイの設定
取得した仮想ディスプレイの設定は、「set_display_config」というAPIを使用して行います。例えば、クローンディスプレイやデスクトップの拡張などの設定が可能です。
映像エンコーダーの設定
AMF DMのエンコーダーの設定は、「set_property」というメソッドを使用して行います。ビットレートやバッファサイズなど、エンコーダーのさまざまなパラメーターを設定することができます。
エンコーディングと保存
全ての設定が完了したら、エンコーディングを開始し、圧縮されたフレームを取得し保存することができます。「run」メソッドを使用してエンコーディングを開始し、ループ内で圧縮されたフレームを取得します。
デモの実行
最後に、デモを実行してAMF DMの動作を確認することができます。デモでは、設定ファイルを使用してデスクトップのキャプチャを行い、エレメントリーストリームを再生する様子が示されます。
まとめ
AMF DMは、AMDのAPUやディスクリートGPUに搭載されているディスプレイと圧縮エンジンの直接的な物理的接続を活用する機能です。AMF DMライブラリを使用することで、この機能を簡単にアプリケーションに組み込むことができます。低遅延アプリケーションでのH.264エンコーディングなど、さまざまな用途に活用できます。
質問とフィードバック
AMF DMに関する質問やフィードバックは、メディアSDKのフォーラムにお問い合わせください。
リソース
- AMDメディアSDKフォーラム: リンク
- コードサンプルダウンロード: リンク