Usługa Azure Media Services jako źródło usługi Event Grid
Ten artykuł zawiera schematy i właściwości zdarzeń usługi Media Services.
Typy zdarzeń związanych z zadaniami
Usługa Media Services emituje typy zdarzeń związanych z zadaniem opisane poniżej. Istnieją dwie kategorie zdarzeń związanych z zadaniem: "Monitorowanie zmian stanu zadania" i "Monitorowanie zmian stanu danych wyjściowych zadania".
Możesz zarejestrować wszystkie zdarzenia, subskrybując zdarzenie JobStateChange. Możesz też subskrybować tylko określone zdarzenia (na przykład stany końcowe, takie jak JobErrored, JobFinished i JobCanceled).
Monitorowanie zmian stanu zadania
Typ zdarzenia | opis |
---|---|
Microsoft.Media.JobStateChange | Pobierz zdarzenie dla wszystkich zmian stanu zadania. |
Microsoft.Media.JobScheduled | Pobierz zdarzenie, gdy zadanie przechodzi do stanu zaplanowanego. |
Microsoft.Media.JobProcessing | Pobierz zdarzenie, gdy zadanie przechodzi do stanu przetwarzania. |
Microsoft.Media.JobCanceling | Pobierz zdarzenie, gdy zadanie przechodzi do stanu anulowania. |
Microsoft.Media.JobFinished | Pobierz zdarzenie po przejściu zadania do stanu zakończenia. Jest to stan końcowy, który zawiera dane wyjściowe zadania. |
Microsoft.Media.JobCanceled | Pobierz zdarzenie, gdy zadanie przechodzi do stanu anulowania. Jest to stan końcowy, który zawiera dane wyjściowe zadania. |
Microsoft.Media.JobErrored | Pobierz zdarzenie, gdy zadanie przechodzi do stanu błędu. Jest to stan końcowy, który zawiera dane wyjściowe zadania. |
Zobacz Przykłady schematu, które są zgodne.
Monitorowanie zmian stanu danych wyjściowych zadania
Zadanie może zawierać wiele danych wyjściowych zadania (jeśli skonfigurowano przekształcenie tak, aby miało wiele danych wyjściowych zadania). Jeśli chcesz śledzić szczegóły poszczególnych danych wyjściowych zadania, nasłuchuj zdarzenia zmiany danych wyjściowych zadania.
Każde zadanie będzie miało wyższy poziom niż JobOutput, w związku z czym zdarzenia wyjściowe zadania zostaną wyzwolone wewnątrz odpowiedniego zadania.
Komunikaty o błędach w pliku JobFinished
JobCanceled
, JobError
generują zagregowane wyniki dla poszczególnych danych wyjściowych zadania — po zakończeniu wszystkich z nich. Podczas gdy zdarzenia wyjściowe zadania są uruchamiane po zakończeniu każdego zadania. Jeśli na przykład masz dane wyjściowe kodowania, a następnie dane wyjściowe usługi Video Analytics, otrzymasz dwa zdarzenia wyzwalane jako zdarzenia wyjściowe zadania przed uruchomieniem końcowego zdarzenia JobFinished z zagregowanymi danymi.
Typ zdarzenia | opis |
---|---|
Microsoft.Media.JobOutputStateChange | Pobierz zdarzenie dla wszystkich zmian stanu wyjściowego zadania. |
Microsoft.Media.JobOutputScheduled | Pobierz zdarzenie, gdy dane wyjściowe zadania przechodzą do stanu zaplanowanego. |
Microsoft.Media.JobOutputProcessing | Pobierz zdarzenie, gdy dane wyjściowe zadania przechodzą do stanu przetwarzania. |
Microsoft.Media.JobOutputCanceling | Pobierz zdarzenie, gdy dane wyjściowe zadania przechodzą do stanu anulowania. |
Microsoft.Media.JobOutputFinished | Pobierz zdarzenie, gdy dane wyjściowe zadania przechodzą do stanu zakończenia. |
Microsoft.Media.JobOutputCanceled | Pobierz zdarzenie, gdy dane wyjściowe zadania przechodzą do stanu anulowania. |
Microsoft.Media.JobOutputErrored | Pobierz zdarzenie, gdy dane wyjściowe zadania przechodzą do stanu błędu. |
Zobacz Przykłady schematu, które są zgodne.
Postęp danych wyjściowych zadania monitorowania
Typ zdarzenia | opis |
---|---|
Microsoft.Media.JobOutputProgress | To zdarzenie odzwierciedla postęp przetwarzania zadań z zakresu od 0% do 100%. Usługa próbuje wysłać zdarzenie, jeśli wystąpił 5% lub większy wzrost wartości postępu lub od ostatniego zdarzenia (puls). Wartość postępu nie jest gwarantowana, aby rozpocząć się od 0%, ani osiągnąć 100%, ani nie ma gwarancji wzrostu przy stałym tempie w czasie. To zdarzenie nie powinno być używane do określenia, czy przetwarzanie zostało ukończone — zamiast tego należy użyć zdarzeń zmiany stanu. |
Zobacz Przykłady schematu, które są zgodne.
Typy zdarzeń na żywo
Usługa Media Services emituje również typy zdarzeń na żywo opisane poniżej. Istnieją dwie kategorie wydarzeń na żywo : zdarzenia na poziomie strumienia i zdarzenia na poziomie śledzenia.
Zdarzenia na poziomie strumienia
Zdarzenia na poziomie strumienia są wywoływane na strumień lub połączenie. Każde zdarzenie ma StreamId
parametr identyfikujący połączenie lub strumień. Każdy strumień lub połączenie ma co najmniej jedną ścieżkę różnych typów. Na przykład jedno połączenie z kodera może mieć jedną ścieżkę dźwiękową i cztery ścieżki wideo. Typy zdarzeń strumienia to:
Typ zdarzenia | opis |
---|---|
Microsoft.Media.LiveEvent Połączenie ionRejected | Próba połączenia kodera jest odrzucana. |
Microsoft.Media.LiveEventEncoder Połączenie ed | Koder ustanawia połączenie z wydarzeniem na żywo. |
Microsoft.Media.LiveEventEncoderDisconnected | Koder rozłącza się. |
Zobacz Przykłady schematu, które są zgodne.
Zdarzenia na poziomie śledzenia
Zdarzenia na poziomie śledzenia są zgłaszane na ścieżkę.
Uwaga
Wszystkie zdarzenia na poziomie śledzenia są wywoływane po nawiązaniu połączenia z koderem na żywo.
Typy zdarzeń na poziomie śledzenia to:
Typ zdarzenia | opis |
---|---|
Microsoft.Media.LiveEventIncomingDataChunkDropped | Serwer multimediów odrzuca fragment danych, ponieważ jest za późno lub ma nakładający się znacznik czasu (sygnatura czasowa nowego fragmentu danych jest mniejsza niż godzina zakończenia poprzedniego fragmentu danych). |
Microsoft.Media.LiveEventIncomingStreamReceived | Serwer multimediów odbiera pierwszy fragment danych dla każdego ścieżki w strumieniu lub połączeniu. |
Microsoft.Media.LiveEventIncoming Strumienie OutOfSync | Serwer multimediów wykrywa, że strumienie audio i wideo nie są zsynchronizowane. Użyj jako ostrzeżenia, ponieważ środowisko użytkownika może nie mieć wpływu. |
Microsoft.Media.LiveEventIncomingVideo Strumienie OutOfSync | Serwer multimediów wykrywa, że wszystkie strumienie wideo pochodzące z kodera zewnętrznego nie są zsynchronizowane. Użyj jako ostrzeżenia, ponieważ środowisko użytkownika może nie mieć wpływu. |
Microsoft.Media.LiveEventIngestHeartbeat | Opublikowane co 20 sekund dla każdego toru po uruchomieniu wydarzenia na żywo. Zawiera podsumowanie kondycji pozyskiwania. Po początkowym połączeniu kodera zdarzenie pulsu nadal emituje co 20 sekund, niezależnie od tego, czy koder jest nadal połączony, czy nie. |
Microsoft.Media.LiveEventTrackDiscontinuityDetected | Serwer multimediów wykrywa przerwy w śledzeniu przychodzącym. |
Zobacz Przykłady schematu, które są zgodne.
Przykłady schematu zdarzeń
JobStateChange
W poniższym przykładzie przedstawiono schemat zdarzenia JobStateChange :
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"type": "Microsoft.Media.JobStateChange",
"time": "2018-04-20T21:26:13.8978772",
"id": "b9d38923-9210-4c2b-958f-0054467d4dd7",
"data": {
"previousState": "Processing",
"state": "Finished"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
previousState |
string | Stan zadania przed zdarzeniem. |
state |
string | Nowy stan zadania, który jest powiadamiany w tym zdarzeniu. Na przykład "Zaplanowane: zadanie jest gotowe do uruchomienia" lub "Zakończono: zadanie zostało ukończone". |
Gdzie stan zadania może być jedną z wartości: Queued, Scheduled, Processing, Finished, Error, Canceled, Canceling
Uwaga
Queued będzie obecny tylko we właściwości previousState , ale nie we właściwości state .
JobScheduled, JobProcessing, JobCanceling
Dla każdej innej niż ostateczna zmiana stanu zadania (na przykład JobScheduled, JobProcessing, JobCanceling) przykładowy schemat wygląda podobnie do następującego:
[{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"type": "Microsoft.Media.JobProcessing",
"time": "2018-10-12T16:12:18.0839935",
"id": "a0a6efc8-f647-4fc2-be73-861fa25ba2db",
"data": {
"previousState": "Scheduled",
"state": "Processing",
"correlationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"specversion": "1.0"
}]
JobFinished, JobCanceled, JobErrored
Dla każdej ostatecznej zmiany stanu zadania (takiej jak JobFinished, JobCanceled, JobErrored), przykładowy schemat wygląda podobnie do następującego:
[{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"type": "Microsoft.Media.JobFinished",
"time": "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"
}
},
"specversion": "1.0"
}]
Obiekt danych ma następujące właściwości:
Właściwość | Type | Opis |
---|---|---|
outputs |
Tablica | Pobiera dane wyjściowe zadania. |
JobOutputStateChange
Poniższy przykład przedstawia schemat zdarzenia 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
Dla każdej zmiany stanu JobOutput przykładowy schemat wygląda podobnie do następującego:
[{
"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
Przykładowy schemat wygląda podobnie do następującego:
[{
"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"
}]
LiveEvent Połączenie ionRejected
Poniższy przykład przedstawia schemat zdarzenia LiveEvent Połączenie ionRejected:
[
{
"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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
streamId |
string | Identyfikator strumienia lub połączenia. Koder lub klient jest odpowiedzialny za dodanie tego identyfikatora w adresie URL pozyskiwania. |
ingestUrl |
string | Adres URL pozyskiwania udostępniany przez wydarzenie na żywo. |
encoderIp |
string | Adres IP kodera. |
encoderPort |
string | Port kodera, z którego pochodzi ten strumień. |
resultCode |
string | Przyczyna odrzucenia połączenia. Kody wyników są wymienione w poniższej tabeli. |
Kody wyników błędów można znaleźć w kodach błędów zdarzenia na żywo.
LiveEventEncoder Połączenie ed
W poniższym przykładzie przedstawiono schemat zdarzenia LiveEventEncoder Połączenie ed:
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"type": "Microsoft.Media.LiveEventEncoderConnected",
"time": "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"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
streamId |
string | Identyfikator strumienia lub połączenia. Koder lub klient jest odpowiedzialny za podanie tego identyfikatora w adresie URL pozyskiwania. |
ingestUrl |
string | Adres URL pozyskiwania udostępniany przez wydarzenie na żywo. |
encoderIp |
string | Adres IP kodera. |
encoderPort |
string | Port kodera, z którego pochodzi ten strumień. |
LiveEventEncoderDisconnected
Poniższy przykład przedstawia schemat zdarzenia LiveEventEncoderDisconnected :
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"type": "Microsoft.Media.LiveEventEncoderDisconnected",
"time": "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"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
streamId |
string | Identyfikator strumienia lub połączenia. Koder lub klient jest odpowiedzialny za dodanie tego identyfikatora w adresie URL pozyskiwania. |
ingestUrl |
string | Adres URL pozyskiwania udostępniany przez wydarzenie na żywo. |
encoderIp |
string | Adres IP kodera. |
encoderPort |
string | Port kodera, z którego pochodzi ten strumień. |
resultCode |
string | Przyczyna rozłączenia kodera. Może to być bezproblemowe rozłączenie lub błąd. Kody wyników są wymienione w poniższej tabeli. |
Kody wyników błędów można znaleźć w kodach błędów zdarzenia na żywo.
Bezproblemowe kody wyników rozłączenia to:
Kod wyniku | opis |
---|---|
S_OK | Koder został pomyślnie odłączony. |
MPE_CLIENT_TERMINATED_SESSION | Koder odłączony (RTMP). |
MPE_CLIENT_DISCONNECTED | Koder został odłączony (FMP4). |
MPI_REST_API_CHANNEL_RESET | Odebrano polecenie resetowania kanału. |
MPI_REST_API_CHANNEL_STOP | Odebrano polecenie zatrzymania kanału. |
MPI_REST_API_CHANNEL_STOP | Kanał przechodzi konserwację. |
MPI_STREAM_HIT_EOF | Strumień EOF jest wysyłany przez koder. |
LiveEventIncomingDataChunkDropped
Poniższy przykład przedstawia schemat zdarzenia LiveEventIncomingDataChunkDropped :
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
"subject": "/LiveEvents/MyLiveEvent1",
"type": "Microsoft.Media.LiveEventIncomingDataChunkDropped",
"time": "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"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
trackType |
string | Typ ścieżki (Audio/Video). |
trackName |
string | Nazwa toru. |
bitrate |
integer | Szybkość transmisji bitów toru. |
timestamp |
string | Sygnatura czasowa porzuconego fragmentu danych. |
timescale |
string | Skala czasu znacznika czasu. |
resultCode |
string | Przyczyna upuszczania fragmentu danych. FragmentDrop_OverlapTimestamp lub FragmentDrop_NonIncreasingTimestamp. |
LiveEventIncomingStreamReceived
Poniższy przykład przedstawia schemat zdarzenia LiveEventIncomingStreamReceived :
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"type": "Microsoft.Media.LiveEventIncomingStreamReceived",
"time": "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"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
trackType |
string | Typ ścieżki (Audio/Video). |
trackName |
string | Nazwa ścieżki (podana przez koder lub w przypadku protokołu RTMP serwer generuje w formacie TrackType_Bitrate ). |
bitrate |
integer | Szybkość transmisji bitów toru. |
ingestUrl |
string | Adres URL pozyskiwania udostępniany przez wydarzenie na żywo. |
encoderIp |
string | Adres IP kodera. |
encoderPort |
string | Port kodera, z którego pochodzi ten strumień. |
timestamp |
string | Pierwszy znacznik czasu odebranego fragmentu danych. |
timescale |
string | Skala czasu, w której jest reprezentowana sygnatura czasowa. |
LiveEventIncoming Strumienie OutOfSync
Poniższy przykład przedstawia schemat zdarzenia LiveEventIncoming Strumienie OutOfSync:
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"type": "Microsoft.Media.LiveEventIncomingStreamsOutOfSync",
"time": "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"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
minLastTimestamp |
string | Minimalna liczba ostatniej sygnatury czasowej we wszystkich utworach (audio lub wideo). |
typeOfTrackWithMinLastTimestamp |
string | Typ ścieżki (audio lub wideo) z minimalnym znacznikiem czasu ostatniego. |
maxLastTimestamp |
string | Maksymalnie wszystkie znaczniki czasu we wszystkich utworach (audio lub wideo). |
typeOfTrackWithMaxLastTimestamp |
string | Typ ścieżki (audio lub wideo) z maksymalnym znacznikiem czasu ostatniego. |
timescaleOfMinLastTimestamp |
string | Pobiera skalę czasu, w której jest reprezentowana wartość "MinLastTimestamp". |
timescaleOfMaxLastTimestamp |
string | Pobiera skalę czasu, w której jest reprezentowana wartość "MaxLastTimestamp". |
LiveEventIncomingVideo Strumienie OutOfSync
Poniższy przykład przedstawia schemat zdarzenia LiveEventIncomingVideo Strumienie OutOfSync:
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
"subject": "/LiveEvents/LiveEvent1",
"type": "Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync",
"time": "2018-01-16T01:57:26.005121Z",
"id": "6dd4d862-d442-40a0-b9f3-fc14bcf6d750",
"data": {
"firstTimestamp": "2162058216",
"firstDuration": "2000",
"secondTimestamp": "2162057216",
"secondDuration": "2000",
"timescale": "10000000"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
firstTimestamp |
string | Sygnatura czasowa odebrana dla jednego z poziomów utworów/jakości typu wideo. |
firstDuration |
string | Czas trwania fragmentu danych z pierwszym znacznikiem czasu. |
secondTimestamp |
string | Sygnatura czasowa odebrana dla innego poziomu ścieżki/jakości typu wideo. |
secondDuration |
string | Czas trwania fragmentu danych z drugim znacznikiem czasu. |
timescale |
string | Skala czasu sygnatur czasowych i czasu trwania. |
LiveEventIngestHeartbeat
Poniższy przykład przedstawia schemat zdarzenia LiveEventIngestHeartbeat :
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"type": "Microsoft.Media.LiveEventIngestHeartbeat",
"time": "2018-08-07T23:17:57.4610506",
"id": "7f450938-491f-41e1-b06f-c6cd3965d786",
"data": {
"trackType": "audio",
"trackName": "audio",
"bitrate": 160000,
"incomingBitrate": 155903,
"lastTimestamp": "15336837535253637",
"timescale": "10000000",
"overlapCount": 0,
"discontinuityCount": 0,
"nonincreasingCount": 0,
"unexpectedBitrate": false,
"state": "Running",
"healthy": true
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
trackType |
string | Typ ścieżki (Audio/Video). |
trackName |
string | Nazwa ścieżki (podana przez koder lub w przypadku protokołu RTMP serwer generuje w formacie TrackType_Bitrate ). |
bitrate |
integer | Szybkość transmisji bitów toru. |
incomingBitrate |
integer | Obliczana szybkość transmisji bitów na podstawie fragmentów danych pochodzących z kodera. |
lastTimestamp |
string | Najnowszy znacznik czasu odebrany dla toru w ciągu ostatnich 20 sekund. |
timescale |
string | Skala czasu, w której są wyrażane znaczniki czasu. |
overlapCount |
integer | Liczba fragmentów danych w ciągu ostatnich 20 sekund nakładała się na znaczniki czasu. |
discontinuityCount |
integer | Liczba przerwań obserwowanych w ciągu ostatnich 20 sekund. |
nonIncreasingCount |
integer | Liczba fragmentów danych ze znacznikami czasu w przeszłości została odebrana w ciągu ostatnich 20 sekund. |
unexpectedBitrate |
bool | Jeśli oczekiwane i rzeczywiste szybkości bitów różnią się od dozwolonego limitu w ciągu ostatnich 20 sekund. Jest to prawdą, jeśli i tylko wtedy, gdy wartość incomingBitrate >= 2* szybkość transmisji bitów lub szybkość transmisji bitów przychodzących = 2 lub wartość IncomingBitrate <= 0. |
state |
string | Stan wydarzenia na żywo. |
healthy |
bool | Wskazuje, czy pozyskiwanie jest w dobrej kondycji, na podstawie liczników i flag. Wartość w dobrej kondycji ma wartość true, jeśli wartość overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false. |
lastFragmentArrivalTime |
string | Ostatnia sygnatura czasowa w formacie UTC, która dotarła do punktu końcowego pozyskiwania. Przykładowy format daty to "2020-11-11 12:12:12:888999" |
ingestDriftValue |
string | Wskazuje szybkość opóźnienia (w sekundach na minutę) przychodzących danych audio lub wideo w ciągu ostatniej minuty. Wartość jest większa niż zero, jeśli dane docierają do wydarzenia na żywo wolniej niż oczekiwano w ostatniej chwili; zero, jeśli dane dotarły bez opóźnień; i "n/a", jeśli nie odebrano żadnych danych audio lub wideo. Na przykład jeśli masz koder współtworzenia wysyłający zawartość na żywo i spowalnia z powodu problemów z przetwarzaniem lub opóźnienia sieci, może być w stanie dostarczyć łącznie 58 sekund dźwięku lub wideo w ciągu jednej minuty. Zostanie to zgłoszone jako 2 sekundy na minutę dryfu. Jeśli koder jest w stanie nadrobić zaległości i wysłać wszystkie 60 sekund lub więcej danych co minutę, zobaczysz tę wartość zgłoszoną jako 0. Jeśli wystąpiło rozłączenie lub przerwanie działania kodera, ta wartość może nadal być wyświetlana jako 0, ponieważ nie uwzględnia przerw w danych — tylko dane opóźnione w znacznikach czasu. |
transcriptionState |
string | Ta wartość to "Włączone" dla pulsów śledzenia audio, jeśli transkrypcja na żywo jest włączona, w przeciwnym razie zobaczysz pusty ciąg. Ten stan ma zastosowanie tylko dotracktype audio transkrypcji na żywo. Wszystkie inne ścieżki będą miały pustą wartość. |
transcriptionLanguage |
string | Kod języka (w formacie BCP-47) języka transkrypcji. Na przykład "de-de" wskazuje niemiecki (Niemcy). Wartość jest pusta dla pulsów śledzenia wideo lub gdy transkrypcja na żywo jest wyłączona. |
LiveEventTrackDiscontinuityDetected
Poniższy przykład przedstawia schemat zdarzenia LiveEventTrackDiscontinuityDetected :
[
{
"source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"type": "Microsoft.Media.LiveEventTrackDiscontinuityDetected",
"time": "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"
},
"specversion": "1.0"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
trackType |
string | Typ ścieżki (Audio/Video). |
trackName |
string | Nazwa ścieżki (podana przez koder lub w przypadku protokołu RTMP serwer generuje w formacie TrackType_Bitrate ). |
bitrate |
integer | Szybkość transmisji bitów toru. |
previousTimestamp |
string | Sygnatura czasowa poprzedniego fragmentu. |
newTimestamp |
string | Sygnatura czasowa bieżącego fragmentu. |
discontinuityGap |
string | Różnica między powyższymi dwoma znacznikami czasu. |
timescale |
string | Skala czasu, w której reprezentowana jest zarówno sygnatura czasowa, jak i przerwania. |
Typowe właściwości zdarzenia
Zdarzenie ma następujące dane najwyższego poziomu:
Właściwość | Type | opis |
---|---|---|
source |
string | Temat usługi Event Grid. Ta właściwość ma identyfikator zasobu dla konta usługi Media Services. |
subject |
string | Ścieżka zasobu kanału usługi Media Services w ramach konta usługi Media Services. Łączenie tematu i tematu daje identyfikator zasobu dla zadania. |
type |
string | Jeden z zarejestrowanych typów zdarzeń dla tego źródła zdarzeń. Na przykład "Microsoft.Media.JobStateChange". |
time |
string | Czas generowania zdarzenia na podstawie czasu UTC dostawcy. |
id |
string | Unikatowy identyfikator zdarzenia. |
data |
obiekt | Dane zdarzeń usługi Media Services. |
specversion |
string | Wersja specyfikacji schematu CloudEvents. |
Następne kroki
Zobacz Rejestrowanie zdarzeń zmiany stanu zadania