@amazon-devices/keplermediadescriptor
Vegaメディア記述子APIは、アプリがデバイスのコーデック機能を照会できるようにする機能を提供します。APIは接続デバイスのサポートも考慮し、デバイスの制限に応じて機能を返します。
はじめに
前提条件
Keplerメディア記述子APIは以下のインターフェイスに依存しています。
Vega SDKのインストール方法については、Vega SDKのセットアップを参照してください。
セットアップ
package.jsonファイルのdependenciesセクションに、以下のライブラリ依存関係を追加します。
"@amazon-devices/keplermediadescriptor": "~1.1.17",
使用方法
このパッケージを使用すると、デバイスのビデオおよびオーディオ機能を取得し、それに応じたコンテンツを再生できます。一般的なユースケースは以下のとおりです。
- デバイスが特定のビデオ/オーディオコーデックをサポートしているかどうかを確認する。
- 特定のビデオコーデックについて、デバイスが特定のプロファイルレベル、フレームレート、ビットレート、解像度をサポートしているかどうかを確認する。
- デバイスが特定のMIMEタイプをサポートしているかどうかを確認する。
- 接続されているデバイス(Fire TV StickのユースケースではTV/AVRなど)がドルビーコーデックをサポートしているかどうかを確認する。
パッケージからの必要なインターフェイスのインポート
import {
KeplerMediaDescriptor,
MediaFormat,
VideoDecoderConfig,
VideoFormat,
AudioDecoderConfig,
AudioFormat,
MediaFormatProfileLevel,
} from "@amazon-devices/keplermediadescriptor";
ビデオデコーダー機能の照会
この例は、コーデック名を使用して機能を照会する方法を示しています。また、解像度、ビットレート、FPSなどのほかのオプション属性も設定しています。
let mediaFormat : MediaFormat = new MediaFormat(CodecMimeType.MIME_AVC);
// 12Mbpsのビットレート
mediaFormat.bitrateKbps = 12000;
// 1080pの解像度
let videoFormat = new VideoFormat();
videoFormat.resolution = {
width = 1080,
height = 1920
};
// 60fpsのフレームレート
videoFormat.frameRate = 60;
// デコーダー設定を使用して一度に
// すべての属性を送信します。
const decoderConfig = new VideoDecoderConfig();
decoderConfig.mediaFormat = mediaFormat;
decoderConfig.videoFormat = videoFormat;
decoderConfig.formatProfileLevel = profileLevel;
注: コーデック値をMIME文字列に含めることもできます。
// メインプロファイルとレベル4.2のAVCコーデック
let mime = "video/mp4; codecs="avc1.640028""
let profileLevel = new MediaFormatProfileLevel(mime);
decoderConfig.formatProfileLevel = profileLevel;
VideoDecoderConfigオブジェクトの準備が整ったら、照会メソッドを呼び出すことができます。返された機能配列に少なくとも1つのエントリがある場合は、リクエストした属性がデバイスでサポートされていることを意味します。
let videoCaps = await KeplerMediaDescriptor.queryMediaCapabilities(decoderConfig);
if (videoCaps.length > 0) {
console.info("このデバイスはリクエストした設定をサポートしています");
}
返されたビデオ機能の読み取り
queryMediaCapabilities APIから返される機能には、デバイスのサポートに関する詳細情報が含まれています。
// 機能をループ処理します
for (let index = 0; index < videoCaps.length; index++) {
let videoCapability = videoCaps[index];
// コーデックがハードウェアでサポートされているかどうかを確認します
if (videoCapability.mediaCodecFeaturesCapabilities.hardwareBacked) {
console.log("コーデックはハードウェアでサポートされています。")
}
// コーデックでサポートされている最小解像度と最大解像度を取得します
let resolutions = videoCapability.videoFormatCapabilities.resolutions;
console.log("最小解像度は", resolutions[0], "、最大解像度は", resolutions[1]);
// 特定の解像度でコーデックがサポートする最大フレームレートを取得します
let maxFps = videoCapability.videoFormatCapabilities.getMaxFrameRate(resolutions[1]);
// デコーダーでサポートされているすべての色形式を取得します
console.log(videoCapability.videoFormatCapabilities.colorFormats);
// コーデックで復号化がサポートされているかどうかを確認します
if (videoCapability.decoderFeaturesCapabilities.decryptionSupported) {
console.log("このコーデックでは復号化がサポートされています");
}
}
オーディオデコード機能の照会
ビデオ機能と同様に、デバイスのオーディオデコードサポートを照会できます。
let mediaFormat = new MediaFormat(CodecMimeType.MIME_AAC);
let audioFormat = new AudioFormat();
audioFormat.channelCount = 2;
audioFormat.sampleRate = 44100;
const decoderConfig = new AudioDecoderConfig();
decoderConfig.mediaFormat = mediaFormat;
decoderConfig.audioFormat = audioFormat;
let audioCaps = await KeplerMediaDescriptor.queryMediaCapabilities(decoderConfig);
ドルビーサポートの確認
queryMediaCapabilities()メソッドを使用して、デバイスのドルビーサポートを確認できます。Fire TV Stickでこのメソッドを使用する場合、接続されているテレビやAVRなどが考慮されます。
let mediaFormat = new MediaFormat(CodecMimeType.MIME_AC3); // またはMIME_EAC3
const decoderConfig = new AudioDecoderConfig();
decoderConfig.mediaFormat = mediaFormat;
let audioCaps = await KeplerMediaDescriptor.queryMediaCapabilities(decoderConfig);
if (audioCaps.length > 0) {
console.log("デバイスはドルビーデジタルオーディオをサポートしています");
}
返されたオーディオ機能の読み取り
// 機能をループ処理します
for (let index = 0; index < audioCaps.length; index++) {
let audioCapability = audioCaps[index];
if (audioCapability.decoderFeaturesCapabilities.decryptionSupported) {
console.log("コーデックでは復号化がサポートされています");
}
}
よくある質問(FAQ)
- Q: デバイスでサポートされているすべてのコーデックを1回の呼び出しで取得できますか?
CodecMimeType.MIME_VIDEO_UNSPECIFIEDとCodecMimeType.MIME_AUDIO_UNSPECIFIEDをワイルドカードとして使用してください。
APIリファレンス
クラス
- AudioDecoderConfig - AudioDecoderConfigは、オーディオデコードのユースケースに必要なすべての属性を定義します。
- AudioFormat - さまざまなプロパティを設定するためのセッターを提供します。
- DecoderFeatures - さまざまなデコーダー機能のセッターを提供します。
- KeplerMediaDescriptor - KMD APIのエントリポイントです。このクラスは、メディア機能を照会するためのAPIを提供します。
- MediaCodecFeatures - さまざまなコーデック機能のセッターを提供します。
- MediaFormat - メディアの形式を表します。
- MediaFormatProfileLevel - コーデックのプロファイルとレベルを設定するクラス。
- VideoDecoderConfig - ビデオに必要なすべての属性を定義します。
- VideoFormat - さまざまなプロパティを設定するためのセッターを提供します。
インターフェイス
- AudioDecoderCapabilities - デコードのユースケースでクエリされたオーディオコーデックの機能を取得するためのインターフェイスです。
- DecoderFeaturesCapabilities - サポートする機能に関する情報を取得するためのインターフェイスです。
- MediaCodecFeaturesCapabilities - メディアコーデックでサポートされている機能を取得するためのインターフェイス。
- MediaFormatProfileLevelCapabilities - プロファイルレベルとコーデックパラメーター機能を取得するためのインターフェイス。
- ProfileLevel - コーデックのプロファイル値とレベル値。
- Resolution - ビデオ解像度(ピクセル)。
- VideoDecoderCapabilities - デコードのユースケースで照会されたビデオコーデックの機能を取得するためのインターフェイスです。
- VideoFormatCapabilities - ビデオフォーマット機能を取得するためのインターフェイス。
列挙型
- AudioSampleFormat - オーディオ未加工サンプル形式
- CodecMimeType - コーデックMIMEタイプ
- VideoColorMatrix - ビデオ色マトリックス
- VideoColorPrimaries - ビデオカラープライマリー
- VideoColorTransfer - ビデオ色転写
型エイリアス
変数
- AV1Level2 - AV1レベル2
- AV1Level21 - AV1レベル2.1
- AV1Level22 - AV1レベル2.2
- AV1Level23 - AV1レベル2.3
- AV1Level3 - AV1レベル3
- AV1Level31 - AV1レベル3.1
- AV1Level32 - AV1レベル3.2
- AV1Level33 - AV1レベル3.3
- AV1Level4 - AV1レベル4
- AV1Level41 - AV1レベル4.1
- AV1Level42 - AV1レベル4.2
- AV1Level43 - AV1レベル4.3
- AV1Level5 - AV1レベル5
- AV1Level51 - AV1レベル5.1
- AV1Level52 - AV1レベル5.2
- AV1Level53 - AV1レベル5.3
- AV1Level6 - AV1レベル6
- AV1Level61 - AV1レベル6.1
- AV1Level62 - AV1レベル6.2
- AV1Level63 - AV1レベル6.3
- AV1Level7 - AV1レベル7
- AV1Level71 - AV1レベル7.1
- AV1Level72 - AV1レベル7.2
- AV1Level73 - AV1レベル7.3
- AV1LevelUnknown - 不明なAV1レベル
- AV1ProfileMain10 - AV1メインプロファイル10ビット深度
- AV1ProfileMain10HDR10 - AV1メインプロファイル10ビット深度(HDR用)
- AV1ProfileMain10HDR10Plus - AV1メインプロファイル10ビット深度(HDR10+用)
- AV1ProfileMain8 - AV1メインプロファイル8ビット深度
- AV1ProfileUnknown - 不明なAV1プロファイル
- AVCLevel1 - AVCレベル1
- AVCLevel11 - AVCレベル1.1
- AVCLevel12 - AVCレベル1.2
- AVCLevel13 - AVCレベル1.3
- AVCLevel1b - AVCレベル1b
- AVCLevel2 - AVCレベル2
- AVCLevel21 - AVCレベル2.1
- AVCLevel22 - AVCレベル2.2
- AVCLevel3 - AVCレベル3
- AVCLevel31 - AVCレベル3.1
- AVCLevel32 - AVCレベル3.2
- AVCLevel4 - AVCレベル4
- AVCLevel41 - AVCレベル4.1
- AVCLevel42 - AVCレベル4.2
- AVCLevel5 - AVCレベル5
- AVCLevel51 - AVCレベル5.1
- AVCLevel52 - AVCレベル5.2
- AVCLevel6 - AVCレベル6
- AVCLevel61 - AVCレベル6.1
- AVCLevel62 - AVCレベル6.2
- AVCLevelUnknown - 不明なAVCレベル
- AVCProfileBaseline - AVCベースラインプロファイル
- AVCProfileConstrainedBaseline - AVC制約付きベースラインプロファイル
- AVCProfileConstrainedHigh - AVC制約付きハイプロファイル
- AVCProfileExtended - AVC拡張プロファイル
- AVCProfileHigh - AVCハイプロファイル
- AVCProfileHigh10 - AVCハイプロファイル10
- AVCProfileHigh422 - AVCハイプロファイル4:2:2
- AVCProfileHigh444 - AVCハイプロファイル4:4:4
- AVCProfileMain - AVCメインプロファイル
- AVCProfileUnknown - 不明なAVCプロファイル
- DolbyVisionLevelFhd24 - Dolby VisionレベルFHD 2.4
- DolbyVisionLevelFhd30 - Dolby VisionレベルFHD 3.0
- DolbyVisionLevelFhd60 - Dolby VisionレベルFHD 6.0
- DolbyVisionLevelHd24 - Dolby VisionレベルHD 2.4
- DolbyVisionLevelHd30 - Dolby VisionレベルHD 3.0
- DolbyVisionLevelUhd24 - Dolby VisionレベルUHD 2.4
- DolbyVisionLevelUhd30 - Dolby VisionレベルUHD 3.0
- DolbyVisionLevelUhd48 - Dolby VisionレベルUHD 4.8
- DolbyVisionLevelUhd60 - Dolby VisionレベルUHD 6.0
- DolbyVisionLevelUnknown - 不明なDolby Visionレベル
- DolbyVisionProfileDvavPen - AV1コーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvavPer - AV1コーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvavSe - AVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvheDen - 8ビットHEVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvheDer - 8ビットHEVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvheDtb - HEVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvheDth - 10ビットHEVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvheDtr - HEVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvheSt - HEVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileDvheStn - HEVCコーデックに基づくDolby Visionプロファイル。
- DolbyVisionProfileUnknown - 不明なDolby Visionプロファイル
- H263Level10 - H263レベル1.0
- H263Level20 - H263レベル2.0
- H263Level30 - H263レベル3.0
- H263Level40 - H263レベル4.0
- H263Level50 - H263レベル5.0
- H263Level60 - H263レベル6.0
- H263Level70 - H263レベル7.0
- H263LevelUnknown - 不明なH263レベル
- H263ProfileBackwardCompatible - H263下位互換性プロファイル
- H263ProfileBaseline - H263ベースラインプロファイル
- H263ProfileH320Coding - H263 H320コーディングプロファイル
- H263ProfileHighCompression - H263高圧縮プロファイル
- H263ProfileHighLatency - H263高遅延プロファイル
- H263ProfileInterlace - H263インターレースプロファイル
- H263ProfileInternet - H263インターネットプロファイル
- H263ProfileISWV2 - H263 ISWV2プロファイル
- H263ProfileISWV3 - H263 ISWV3プロファイル
- H263ProfileUnknown - 不明なH263プロファイル
- HEVCHighTierLevel4 - HEVCハイティアレベル4
- HEVCHighTierLevel41 - HEVCハイティアレベル4.1
- HEVCHighTierLevel5 - HEVCハイティアレベル5
- HEVCHighTierLevel51 - HEVCハイティアレベル5.1
- HEVCHighTierLevel52 - HEVCハイティアレベル5.2
- HEVCHighTierLevel6 - HEVCハイティアレベル6
- HEVCHighTierLevel61 - HEVCハイティアレベル6.1
- HEVCHighTierLevel62 - HEVCハイティアレベル6.2
- HEVCLevelUnknown - 不明なHEVCレベル
- HEVCMainTierLevel1 - HEVCメインティアレベル1
- HEVCMainTierLevel2 - HEVCメインティアレベル2
- HEVCMainTierLevel21 - HEVCメインティアレベル2.1
- HEVCMainTierLevel3 - HEVCメインティアレベル3
- HEVCMainTierLevel31 - HEVCメインティアレベル3.1
- HEVCMainTierLevel4 - HEVCメインティアレベル4
- HEVCMainTierLevel41 - HEVCメインティアレベル4.1
- HEVCMainTierLevel5 - HEVCメインティアレベル5
- HEVCMainTierLevel51 - HEVCメインティアレベル5.1
- HEVCMainTierLevel52 - HEVCメインティアレベル5.2
- HEVCMainTierLevel6 - HEVCメインティアレベル6
- HEVCMainTierLevel61 - HEVCメインティアレベル6.1
- HEVCMainTierLevel62 - HEVCメインティアレベル6.2
- HEVCProfileMain - HEVCメインプロファイル
- HEVCProfileMain10 - HEVCメイン10プロファイル
- HEVCProfileMain10HDR10 - HEVC HDRメイン10プロファイル
- HEVCProfileMain10HDR10Plus - HEVC HDR10+メイン10プロファイル
- HEVCProfileMainStill - HEVCメイン静止画プロファイル
- HEVCProfileUnknown - 不明なHEVCプロファイル
- MPEG2LevelH14 - MPEG2ハイ1440
- MPEG2LevelHL - MPEG2ハイレベル
- MPEG2LevelHP - MPEG2レベルHP
- MPEG2LevelLL - MPEG2ローレベル
- MPEG2LevelML - MPEG2メインレベル
- MPEG2LevelUnknown - 不明なMPEG2レベル
- MPEG2Profile422 - MPEG2 4:2:2プロファイル
- MPEG2ProfileHigh - MPEG2ハイプロファイル
- MPEG2ProfileMain - MPEG2メインプロファイル
- MPEG2ProfileSimple - MPEG2シンプルプロファイル
- MPEG2ProfileSNR - MPEG2 SNRスケーラブルプロファイル
- MPEG2ProfileSpatial - MPEG2空間的にスケーラブルなプロファイル
- MPEG2ProfileUnknown - 不明なMPEG2プロファイル
- MPEG4Level0 - MPEG4レベル0
- MPEG4Level0b - MPEG4レベル0b
- MPEG4Level1 - MPEG4レベル1
- MPEG4Level2 - MPEG4レベル2
- MPEG4Level3 - MPEG4レベル3
- MPEG4Level3b - MPEG4レベル3b
- MPEG4Level4 - MPEG4レベル4
- MPEG4Level4a - MPEG4レベル4a
- MPEG4Level5 - MPEG4レベル5
- MPEG4Level6 - MPEG4レベル6
- MPEG4LevelUnknown - 不明なMPEG4レベル
- MPEG4ProfileAdvancedCoding - MPEG4高度なコーディングプロファイル
- MPEG4ProfileAdvancedCore - MPEG4高度なコアプロファイル
- MPEG4ProfileAdvancedRealTime - MPEG4高度なリアルタイムプロファイル
- MPEG4ProfileAdvancedScalable - MPEG4高度なスケーラブルプロファイル
- MPEG4ProfileAdvancedSimple - MPEG4高度なシンプルプロファイル
- MPEG4ProfileBasicAnimated - MPEG4基本アニメーションプロファイル
- MPEG4ProfileCore - MPEG4コアプロファイル
- MPEG4ProfileCoreScalable - MPEG4コアスケーラブルプロファイル
- MPEG4ProfileHybrid - MPEG4ハイブリッドプロファイル
- MPEG4ProfileMain - MPEG4メインプロファイル
- MPEG4ProfileNbit - MPEG4 Nビットプロファイル
- MPEG4ProfileScalableTexture - MPEG4スケーラブルテクスチャプロファイル
- MPEG4ProfileSimple - MPEG4シンプルプロファイル
- MPEG4ProfileSimpleFace - MPEG4シンプルフェイスプロファイル
- MPEG4ProfileSimpleFBA - MPEG4シンプルFBAプロファイル
- MPEG4ProfileSimpleScalable - MPEG4シンプルスケーラブルプロファイル
- MPEG4ProfileUnknown - 不明なMPEG4プロファイル
- VP8LevelUnknown - 不明なVP8レベル
- VP8LevelVersion0 - VP8レベルバージョン0
- VP8LevelVersion1 - VP8レベルバージョン1
- VP8LevelVersion2 - VP8レベルバージョン2
- VP8LevelVersion3 - VP8レベルバージョン3
- VP8ProfileMain - VP8メインプロファイル
- VP8ProfileUnknown - 不明なVP8プロファイル
- VP9Level1 - VP9レベル1
- VP9Level11 - VP9レベル1.1
- VP9Level2 - VP9レベル2
- VP9Level21 - VP9レベル2.1
- VP9Level3 - VP9レベル3
- VP9Level31 - VP9レベル3.1
- VP9Level4 - VP9レベル4
- VP9Level41 - VP9レベル4.1
- VP9Level5 - VP9レベル5
- VP9Level51 - VP9レベル5.1
- VP9Level52 - VP9レベル5.2
- VP9Level6 - VP9レベル6
- VP9Level61 - VP9レベル6.1
- VP9Level62 - VP9レベル6.2
- VP9LevelUnknown - 不明なVP9レベル
- VP9Profile0 - VP9プロファイル0
- VP9Profile1 - VP9プロファイル1
- VP9Profile2 - VP9プロファイル2
- VP9Profile2HDR - VP9プロファイル2(HDR用)
- VP9Profile2HDR10Plus - VP9プロファイル2(HDR10+用)
- VP9Profile3 - VP9プロファイル3
- VP9Profile3HDR - VP9プロファイル3(HDR用)
- VP9Profile3HDR10Plus - VP9プロファイル3(HDR10+用)
- VP9ProfileUnknown - 不明なVP9プロファイル
Last updated: 2026年7月22日

