Media Services 用の Azure Event Grid スキーマ
警告
Azure Media Services は、2024 年 6 月 30 日に廃止されます。 詳細については、「 AMS 廃止ガイド」を参照してください。
この記事では、Media Services イベント用のスキーマとプロパティについて説明します。
サンプル スクリプトとチュートリアルの一覧については、Media Services のイベント ソースに関する記事を参照してください。
ジョブ関連イベントの種類
Media Services では、以下の種類のジョブ関連イベントが出力されます。 ジョブ関連イベントには 2 つのカテゴリがあります。"ジョブの状態変更の監視" と "ジョブ出力の状態変更の監視" です。
JobStateChange イベントをサブスクライブすると、すべてのイベントを登録できます。 また、特定のイベントのみ (たとえば、JobErrored、JobFinished、JobCanceled などの最終状態) をサブスクライブすることもできます。
ジョブの状態変更の監視
イベントの種類 | 説明 |
---|---|
Microsoft.Media.JobStateChange | ジョブの状態変更のイベントをすべて取得します。 |
Microsoft.Media.JobScheduled | ジョブがスケジュール済みの状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobProcessing | ジョブが処理中の状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobCanceling | ジョブが取り消し中の状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobFinished | ジョブが終了中の状態に遷移したときにイベントを取得します。 これは、ジョブの出力を含む最終状態です。 |
Microsoft.Media.JobCanceled | ジョブが取り消し済みの状態に遷移したときにイベントを取得します。 これは、ジョブの出力を含む最終状態です。 |
Microsoft.Media.JobErrored | ジョブがエラー状態に遷移したときにイベントを取得します。 これは、ジョブの出力を含む最終状態です。 |
次のスキーマの例を参照してください。
ジョブの出力の状態変更の監視
1 つのジョブに複数のジョブ出力が含まれている場合があります (複数のジョブ出力を含めるように変換を構成した場合)。個々のジョブ出力の詳細を追跡する場合は、ジョブ出力変更イベントをリッスンします。
各ジョブ は JobOutput よりも上位レベルになるため、ジョブ出力イベントは対応するジョブの内部で発生します。
JobFinished
、JobCanceled
、JobError
の各エラー メッセージには、(すべてのジョブ出力が完了したときに) ジョブ出力ごとの集計結果が出力されます。 一方、ジョブ出力イベントは、各タスクが完了したときに発生します。 たとえば、エンコードの出力とそれに続く Video Analytics の出力が行われる場合は、2 つのイベントがジョブ出力イベントとして発生してから、最後の JobFinished イベントが集計データと共に発生します。
イベントの種類 | 説明 |
---|---|
Microsoft.Media.JobOutputStateChange | ジョブ出力の状態変更のイベントをすべて取得します。 |
Microsoft.Media.JobOutputScheduled | ジョブ出力がスケジュール済みの状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobOutputProcessing | ジョブ出力が処理中の状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobOutputCanceling | ジョブ出力が取り消し中の状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobOutputFinished | ジョブ出力が終了済みの状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobOutputCanceled | ジョブ出力が取り消し済みの状態に遷移したときにイベントを取得します。 |
Microsoft.Media.JobOutputErrored | ジョブ出力がエラー状態に遷移したときにイベントを取得します。 |
次のスキーマの例を参照してください。
ジョブ出力の進行状況の監視
イベントの種類 | 説明 |
---|---|
Microsoft.Media.JobOutputProgress | このイベントは、ジョブ処理の進行状況を反映します (0 % から 100%)。 進行状況の値が 5% 以上増加した場合、または前回のイベントから 30 秒以上経過した (ハートビート) 場合に、サービスによるイベントの送信が試されます。 進行状況の値は、0% で始まることも 100% に達することも保証されていません。さらに、時間の経過とともに一定の率で増加することも保証されていません。 処理が完了していることを判断するためにこのイベントを使用しないでください。代わりに、状態変更イベントを使用する必要があります。 |
次のスキーマの例を参照してください。
ライブ イベントの種類
Media Services では、以下の種類のライブ イベントも出力されます。 Live イベントには、ストリーム レベル イベントとトラック レベル イベントの 2 つのカテゴリがあります。
ストリーム レベル イベント
ストリーム レベル イベントは、ストリームまたは接続ごとに発生します。 各イベントには、接続またはストリームを識別する StreamId
パラメーターがあります。 各ストリームまたは接続には、さまざまな種類のトラックが少なくとも 1 つ存在します。 たとえば、エンコーダーからの接続 1 つにつき、1 つのオーディオ トラックと 4 つのビデオ トラックが存在する場合もあります。 ストリーム イベントには、次の種類があります。
イベントの種類 | 説明 |
---|---|
Microsoft.Media.LiveEventConnectionRejected | エンコーダーの接続試行が拒否されました。 |
Microsoft.Media.LiveEventEncoderConnected | エンコーダーがライブ イベントとの接続を確立しました。 |
Microsoft.Media.LiveEventEncoderDisconnected | エンコーダーが切断されました。 |
次のスキーマの例を参照してください。
トラック レベル イベント
トラック レベル イベントは、トラックごとに発生します。
Note
すべてのトラックレベル イベントは、ライブ エンコーダーが接続された後に発生します。
トラックレベル イベントには、次の種類があります。
イベントの種類 | 説明 |
---|---|
Microsoft.Media.LiveEventIncomingDataChunkDropped | データ チャンクが遅すぎるか、タイムスタンプが重複している (新しいデータ チャンクのタイムスタンプが前のデータ チャンクの終了時間よりも古い) ため、メディア サーバーがデータ チャンクをドロップしました。 |
Microsoft.Media.LiveEventIncomingStreamReceived | メディア サーバーが、ストリームまたは接続において、各トラックの最初のデータ チャンクを受信しました。 |
Microsoft.Media.LiveEventIncomingStreamsOutOfSync | オーディオ ストリームとビデオ ストリームの同期がずれていることをメディア サーバーが検出しました。ユーザー エクスペリエンスへの影響はないと考えられるため、警告として使用してください。 |
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync | 外部エンコーダーから受信している 2 つのビデオ ストリームの同期がずれていることをメディア サーバーが検出しました。ユーザー エクスペリエンスへの影響はないと考えられるため、警告として使用してください。 |
Microsoft.Media.LiveEventIngestHeartbeat | ライブ イベントの実行中、各トラックについて 20 秒ごとに発行されます。 取り込みの正常性についての概要が得られます。 エンコーダーが最初に接続された後、エンコーダーがまだ接続されているかどうかにかかわらず、ハートビート イベントは 20 秒ごとに出力され続けます。 |
Microsoft.Media.LiveEventTrackDiscontinuityDetected | メディア サーバーが受信中のトラックの途切れを検出しました。 |
次のスキーマの例を参照してください。
イベント スキーマの例
JobStateChange
次の例は、JobStateChange イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "Microsoft.Media.JobStateChange",
"eventTime": "2018-04-20T21:26:13.8978772",
"id": "b9d38923-9210-4c2b-958f-0054467d4dd7",
"data": {
"previousState": "Processing",
"state": "Finished"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
previousState |
string | イベントの前のジョブの状態。 |
state |
string | このイベントで通知されるジョブの新しい状態。 例: "Scheduled:The job is ready to start" または "Finished:The job is finished"。 |
ジョブの状態。値は次のいずれかです。Queued、Scheduled、Processing、Finished、Error、Canceled、Canceling
Note
Queued は previousState プロパティでのみ示され、state プロパティでは示されません。
JobScheduled、JobProcessing、JobCanceling
非最終ジョブの状態変更 (JobScheduled、JobProcessing、JobCanceling など) については、 サンプル スキーマは次のようになります。
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "Microsoft.Media.JobProcessing",
"eventTime": "2018-10-12T16:12:18.0839935",
"id": "a0a6efc8-f647-4fc2-be73-861fa25ba2db",
"data": {
"previousState": "Scheduled",
"state": "Processing",
"correlationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobFinished、JobCanceled、JobErrored
最終ジョブの状態変更 (JobFinished、JobCanceled、JobErrored など) については、 サンプル スキーマは次のようになります。
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "Microsoft.Media.JobFinished",
"eventTime": "2018-10-12T16:25:56.4115495",
"id": "9e07e83a-dd6e-466b-a62f-27521b216f2a",
"data": {
"outputs": [
{
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 100,
"state": "Finished"
}
],
"previousState": "Processing",
"state": "Finished",
"correlationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | [説明] |
---|---|---|
outputs |
Array | ジョブ出力を取得します。 |
JobOutputStateChange
次の例は、JobOutputStateChange イベントのスキーマを示しています。
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "Microsoft.Media.JobOutputStateChange",
"eventTime": "2018-10-12T16:25:56.0242854",
"id": "dde85f46-b459-4775-b5c7-befe8e32cf90",
"data": {
"previousState": "Processing",
"output": {
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 100,
"state": "Finished"
},
"jobCorrelationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobOutputScheduled、JobOutputProcessing、JobOutputFinished、JobOutputCanceling、JobOutputCanceled、JobOutputErrored
各 JobOutput の状態変更については、サンプル スキーマは次のようになります。
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "Microsoft.Media.JobOutputProcessing",
"eventTime": "2018-10-12T16:12:18.0061141",
"id": "f1fd5338-1b6c-4e31-83c9-cd7c88d2aedb",
"data": {
"previousState": "Scheduled",
"output": {
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 0,
"state": "Processing"
},
"jobCorrelationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobOutputProgress
スキーマの例は次のようになります。
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/belohGroup/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/job-5AB6DE32",
"eventType": "Microsoft.Media.JobOutputProgress",
"eventTime": "2018-12-10T18:20:12.1514867",
"id": "00000000-0000-0000-0000-000000000000",
"data": {
"jobCorrelationData": {
"TestKey1": "TestValue1",
"testKey2": "testValue2"
},
"label": "VideoAnalyzerPreset_0",
"progress": 86
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
LiveEventConnectionRejected
次の例は、LiveEventConnectionRejected イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
"subject": "/LiveEvents/MyLiveEvent1",
"eventType": "Microsoft.Media.LiveEventConnectionRejected",
"eventTime": "2018-01-16T01:57:26.005121Z",
"id": "b303db59-d5c1-47eb-927a-3650875fded1",
"data": {
"streamId":"Mystream1",
"ingestUrl": "http://abc.ingest.isml",
"encoderIp": "118.238.251.xxx",
"encoderPort": 52859,
"resultCode": "MPE_INGEST_CODEC_NOT_SUPPORTED"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
streamId |
string | ストリームまたは接続の識別子。 この ID は、エンコーダーまたはカスタマーが取り込み URL に追加します。 |
ingestUrl |
string | ライブ イベントから提供される取り込み URL。 |
encoderIp |
string | エンコーダーの IP。 |
encoderPort |
string | このストリームの送信元であるエンコーダーのポート。 |
resultCode |
string | 接続が拒否された理由。 結果コードについては、以下の表をご覧ください。 |
エラーの結果コードは、ライブ イベントのエラー コードで確認できます。
LiveEventEncoderConnected
次の例は、LiveEventEncoderConnected イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "Microsoft.Media.LiveEventEncoderConnected",
"eventTime": "2018-08-07T23:08:09.1710643",
"id": "<id>",
"data": {
"ingestUrl": "http://mle1-amsts03mediaacctgndos-ts031.channel.media.azure-test.net:80/ingest.isml",
"streamId": "15864-stream0",
"encoderIp": "131.107.147.xxx",
"encoderPort": "27485"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
streamId |
string | ストリームまたは接続の識別子。 この ID は、エンコーダーまたはカスタマーが取り込み URL に指定します。 |
ingestUrl |
string | ライブ イベントから提供される取り込み URL。 |
encoderIp |
string | エンコーダーの IP。 |
encoderPort |
string | このストリームの送信元であるエンコーダーのポート。 |
LiveEventEncoderDisconnected
次の例は、LiveEventEncoderDisconnected イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "Microsoft.Media.LiveEventEncoderDisconnected",
"eventTime": "2018-08-07T23:08:09.1710872",
"id": "<id>",
"data": {
"ingestUrl": "http://mle1-amsts03mediaacctgndos-ts031.channel.media.azure-test.net:80/ingest.isml",
"streamId": "15864-stream0",
"encoderIp": "131.107.147.xxx",
"encoderPort": "27485",
"resultCode": "S_OK"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
streamId |
string | ストリームまたは接続の識別子。 この ID は、エンコーダーまたはカスタマーが取り込み URL に追加します。 |
ingestUrl |
string | ライブ イベントから提供される取り込み URL。 |
encoderIp |
string | エンコーダーの IP。 |
encoderPort |
string | このストリームの送信元であるエンコーダーのポート。 |
resultCode |
string | エンコーダーの切断の理由。 正常な切断とエラーによる切断とがあります。 結果コードについては、以下の表をご覧ください。 |
エラーの結果コードは、ライブ イベントのエラー コードで確認できます。
正常な切断の結果コードは次のとおりです。
結果コード | 説明 |
---|---|
S_OK | エンコーダーが正常に切断されました。 |
MPE_CLIENT_TERMINATED_SESSION | エンコーダーが切断されました (RTMP)。 |
MPE_CLIENT_DISCONNECTED | エンコーダーが切断されました (FMP4)。 |
MPI_REST_API_CHANNEL_RESET | チャンネルのリセット コマンドを受信しました。 |
MPI_REST_API_CHANNEL_STOP | チャンネルの停止コマンドを受信しました。 |
MPI_REST_API_CHANNEL_STOP | チャンネルはメンテナンス中です。 |
MPI_STREAM_HIT_EOF | エンコーダーから EOF ストリームが送信されました。 |
LiveEventIncomingDataChunkDropped
次の例は、LiveEventIncomingDataChunkDropped イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
"subject": "/LiveEvents/MyLiveEvent1",
"eventType": "Microsoft.Media.LiveEventIncomingDataChunkDropped",
"eventTime": "2018-01-16T01:57:26.005121Z",
"id": "03da9c10-fde7-48e1-80d8-49936f2c3e7d",
"data": {
"trackType": "Video",
"trackName": "Video",
"bitrate": 300000,
"timestamp": "36656620000",
"timescale": "10000000",
"resultCode": "FragmentDrop_OverlapTimestamp"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
trackType |
string | 追跡のタイプ (オーディオ/ビデオ)。 |
trackName |
string | トラックの名前。 |
bitrate |
整数 (integer) | トラックのビットレート。 |
timestamp |
string | ドロップされたデータ チャンクのタイムスタンプ。 |
timescale |
string | タイムスタンプのタイムスケール。 |
resultCode |
string | データ チャンクがドロップされた理由。 FragmentDrop_OverlapTimestamp または FragmentDrop_NonIncreasingTimestamp。 |
LiveEventIncomingStreamReceived
次の例は、LiveEventIncomingStreamReceived イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "Microsoft.Media.LiveEventIncomingStreamReceived",
"eventTime": "2018-08-07T23:08:10.5069288Z",
"id": "7f939a08-320c-47e7-8250-43dcfc04ab4d",
"data": {
"ingestUrl": "http://mle1-amsts03mediaacctgndos-ts031.channel.media.azure-test.net:80/ingest.isml/Streams(15864-stream0)15864-stream0",
"trackType": "video",
"trackName": "video",
"bitrate": 2962000,
"encoderIp": "131.107.147.xxx",
"encoderPort": "27485",
"timestamp": "15336831655032322",
"duration": "20000000",
"timescale": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
trackType |
string | 追跡のタイプ (オーディオ/ビデオ)。 |
trackName |
string | トラックの名前。エンコーダーによって指定されるか、または RTMP の場合は、TrackType_Bitrate 形式でサーバーによって生成されます。 |
bitrate |
整数 (integer) | トラックのビットレート。 |
ingestUrl |
string | ライブ イベントから提供される取り込み URL。 |
encoderIp |
string | エンコーダーの IP。 |
encoderPort |
string | このストリームの送信元であるエンコーダーのポート。 |
timestamp |
string | 受信したデータ チャンクの最初のタイムスタンプ。 |
timescale |
string | タイムスタンプの表示に使用されるタイムスケール。 |
LiveEventIncomingStreamsOutOfSync
次の例は、LiveEventIncomingStreamsOutOfSync イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "Microsoft.Media.LiveEventIncomingStreamsOutOfSync",
"eventTime": "2018-08-10T02:26:20.6269183Z",
"id": "b9d38923-9210-4c2b-958f-0054467d4dd7",
"data": {
"minLastTimestamp": "319996",
"typeOfStreamWithMinLastTimestamp": "Audio",
"maxLastTimestamp": "366000",
"typeOfStreamWithMaxLastTimestamp": "Video",
"timescaleOfMinLastTimestamp": "10000000",
"timescaleOfMaxLastTimestamp": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
minLastTimestamp |
string | 全トラック (オーディオまたはビデオ) における最後のタイムスタンプの最小値。 |
typeOfTrackWithMinLastTimestamp |
string | 最後のタイムスタンプが最も小さいトラックの種類 (オーディオまたはビデオ)。 |
maxLastTimestamp |
string | 全トラック (オーディオまたはビデオ) におけるすべてのタイムスタンプの最大値。 |
typeOfTrackWithMaxLastTimestamp |
string | 最後のタイムスタンプが最も大きいトラックの種類 (オーディオまたはビデオ)。 |
timescaleOfMinLastTimestamp |
string | "MinLastTimestamp" の表示に使用されるタイムスケールを取得します。 |
timescaleOfMaxLastTimestamp |
string | "MaxLastTimestamp" の表示に使用されるタイムスケールを取得します。 |
LiveEventIncomingVideoStreamsOutOfSync
次の例は、LiveEventIncomingVideoStreamsOutOfSync イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
"subject": "/LiveEvents/LiveEvent1",
"eventType": "Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync",
"eventTime": "2018-01-16T01:57:26.005121Z",
"id": "6dd4d862-d442-40a0-b9f3-fc14bcf6d750",
"data": {
"firstTimestamp": "2162058216",
"firstDuration": "2000",
"secondTimestamp": "2162057216",
"secondDuration": "2000",
"timescale": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
firstTimestamp |
string | 種類がビデオであるいずれかのトラック/品質レベルについて受信したタイムスタンプ。 |
firstDuration |
string | 1 つ目のタイムスタンプを持つデータ チャンクの期間。 |
secondTimestamp |
string | 種類がビデオである他の何らかのトラック/品質レベルについて受信したタイムスタンプ。 |
secondDuration |
string | 2 つ目のタイムスタンプを持つデータ チャンクの期間。 |
timescale |
string | タイムスタンプと時間のタイムスケール。 |
LiveEventIngestHeartbeat
次の例は、LiveEventIngestHeartbeat イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "Microsoft.Media.LiveEventIngestHeartbeat",
"eventTime": "2021-05-14T23:50:00.324",
"id": "7f450938-491f-41e1-b06f-c6cd3965d786",
"data": {
"trackType":"video",
"trackName":"video",
"bitrate":2500000,
"incomingBitrate":2462597,
"lastTimestamp":"106999",
"timescale":"1000",
"overlapCount":0,
"discontinuityCount":0,
"nonincreasingCount":0,
"unexpectedBitrate":false,
"state":"Running",
"healthy":true,
"lastFragmentArrivalTime":"2021-05-14T23:50:00.324",
"ingestDriftValue":"0",
"transcriptionState":"",
"transcriptionLanguage":""
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
trackType |
string | 追跡のタイプ (オーディオ/ビデオ)。 |
trackName |
string | トラックの名前。エンコーダーによって指定されるか、または RTMP の場合は、TrackType_Bitrate 形式でサーバーによって生成されます。 |
bitrate |
整数 (integer) | トラックのビットレート。 |
incomingBitrate |
整数 (integer) | エンコーダーから送信されるデータ チャンクに基づいて計算されたビットレート。 |
lastTimestamp |
string | トラックに関して直近 20 秒に受信した最新のタイムスタンプ。 |
timescale |
string | タイムスタンプの表示に使用されるタイムスケール。 |
overlapCount |
整数 (integer) | 直近 20 秒にタイムスタンプが重複したデータ チャンクの数。 |
discontinuityCount |
整数 (integer) | 直近 20 秒に観察された途切れの数。 |
nonIncreasingCount |
整数 (integer) | 直近 20 秒に過去のタイムスタンプを受信したデータ チャンクの数。 |
unexpectedBitrate |
[bool] | 直近 20 秒における予想ビットレートと実ビットレートの差が、許容されている上限を超えているかどうか。 incomingBitrate がビットレートの 2 倍以上または incomingBitrate がビットレートの 1/2 以下または incomingBitrate が 0 のとき、かつそのときに限り true。 |
state |
string | ライブ イベントの状態。 |
healthy |
[bool] | カウントとフラグに基づき、取り込みが正常であるかどうかを示します。 overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false の場合、Healthy は true になります。 |
lastFragmentArrivalTime |
string | フラグメントがインジェスト エンドポイントに到達した最後のタイムスタンプ (UTC)。 日付形式の例: "2020-11-11 12:12:12:888999" |
ingestDriftValue |
string | 直前の 1 分間に受信したオーディオまたはビデオのデータの遅延速度 (1 分あたりの秒数) を示します。 直前の 1 分間にデータが期待よりも遅くライブ イベントに到着している場合、値は 0 より大きくなります。データが遅延なしで到着した場合は 0 になります。オーディオまたはビデオのデータが受信されなかった場合は "n/a" になります。 たとえば、ライブ コンテンツで送信しているコントリビューション エンコーダーがあり、それが処理の問題またはネットワーク待ち時間が原因で低速になっている場合は、1 分間に合計 58 秒のオーディオまたはビデオしか配信できないことがあります。 これは、1 分あたり 2 秒のドリフトとして報告されます。 エンコーダーが追いついて、毎分 60 秒間すべてまたはそれ以上のデータを送信できる場合、この値は 0 と報告されます。 エンコーダーとの間で切断または不連続性が発生した場合に、この値がまだ 0 と表示されることがあります。これは、タイムスタンプで遅延しているデータのみが考慮され、データの中断は考慮されないためです。 |
transcriptionState |
string | ライブ文字起こしが有効になっている場合、オーディオ トラックのハートビートに対するこの値は "On" になります。それ以外の場合は、空の文字列が表示されます。 この状態は、ライブ文字起こしの tracktype が "audio" である場合にのみ適用されます。 他のすべてのトラックの値は空になります。 |
transcriptionLanguage |
string | 文字起こし言語の言語コード (BCP-47 形式)。 たとえば、"de-de" はドイツ語 (ドイツ) を示します。 ビデオ トラックのハートビートの場合、またはライブ文字起こしが無効になっている場合、値は空です。 |
LiveEventChannelArchiveHeartbeat
次の例は、LiveEventChannelArchiveHeartbeatEvent イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "Microsoft.Media.LiveEventChannelArchiveHeartbeat",
"eventTime": "2021-05-14T23:50:00.324",
"id": "7f450938-491f-41e1-b06f-c6cd3965d786",
"data": {
"channelLatencyMs": "10",
"latencyResultCode": "S_OK"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
channelLatencyMs |
string | プレーヤーがダウンロードできるように HLS/DASH マニフェストに発行される前に、取り込まれたビデオによってライブ イベント パイプラインで費やされる時間 (ミリ秒)。 |
latencyResultCode |
string | channelLatencyMs 計算の結果コード。
S_OK は、ライブ イベントの取り込みが問題なく受信されたことを示しています。 その他の結果コードは、channelLatencyMs の値が空になる可能性がある状況を示しています。
MPE_KEY_FRAME_INTERVAL_TOO_LARGE エラーコードは、チャネルの待ち時間に悪影響を与える大きな GOP (キー フレームの距離) が取り込まれたビデオ ソースにあることを示しています。
MPE_INGEST_DISCONTINUITY エラーコードは、ソース ストリームで不連続性が検出されたことを示しています。これにより、チャネルの待ち時間が長くなる可能性があります。 |
LiveEventTrackDiscontinuityDetected
次の例は、LiveEventTrackDiscontinuityDetected イベントのスキーマを示しています。
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "Microsoft.Media.LiveEventTrackDiscontinuityDetected",
"eventTime": "2018-08-07T23:18:06.1270405Z",
"id": "5f4c510d-5be7-4bef-baf0-64b828be9c9b",
"data": {
"trackName": "video",
"previousTimestamp": "15336837615032322",
"trackType": "video",
"bitrate": 2962000,
"newTimestamp": "15336837619774273",
"discontinuityGap": "575284",
"timescale": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
データ オブジェクトには、次のプロパティがあります。
プロパティ | Type | 説明 |
---|---|---|
trackType |
string | 追跡のタイプ (オーディオ/ビデオ)。 |
trackName |
string | トラックの名前。エンコーダーによって指定されるか、または RTMP の場合は、TrackType_Bitrate 形式でサーバーによって生成されます。 |
bitrate |
整数 (integer) | トラックのビットレート。 |
previousTimestamp |
string | 前のフラグメントのタイムスタンプ。 |
newTimestamp |
string | 現在のフラグメントのタイムスタンプ。 |
discontinuityGap |
string | 2 つのタイムスタンプの差。 |
timescale |
string | タイムスタンプと不連続性の両方について、差を表すときに使用されるタイムスケール。 |
共通のイベント プロパティ
イベントのトップレベルのデータを次に示します。
プロパティ | Type | 説明 |
---|---|---|
topic |
string | Event Grid トピック。 このプロパティは、Media Services アカウントのリソース ID を保持します。 |
subject |
string | Media Services アカウント下の Media Services チャンネルのリソース パス。 トピックとサブジェクトを連結することで、ジョブのリソース ID が得られます。 |
eventType |
string | このイベント ソース用に登録されたイベントの種類のいずれか。 例: "Microsoft.Media.JobStateChange" |
eventTime |
string | プロバイダーの UTC 時刻に基づくイベントの生成時刻。 |
id |
string | イベントの一意識別子。 |
data |
object | Media Services イベント データ。 |
dataVersion |
string | データ オブジェクトのスキーマ バージョン。 スキーマ バージョンは発行元によって定義されます。 |
metadataVersion |
string | イベント メタデータのスキーマ バージョン。 最上位プロパティのスキーマは Event Grid によって定義されます。 この値は Event Grid によって指定されます。 |