schematy Azure Event Grid dla zdarzeń usługi Media Services
Ostrzeżenie
Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.
Ten artykuł zawiera schematy i właściwości zdarzeń usługi Media Services.
Aby uzyskać listę przykładowych skryptów i samouczków, zobacz Źródło 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 | Pobieranie zdarzenia 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 anulowanego. 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 schematów , które są następujące.
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 na wyższym poziomie niż JobOutput, dlatego zdarzenia wyjściowe zadania zostaną wyzwolone wewnątrz odpowiedniego zadania.
Komunikaty o błędach w pliku JobFinished
, JobCanceled
JobError
wyświetlają zagregowane wyniki dla poszczególnych danych wyjściowych zadania — po zakończeniu wszystkich z nich. Podczas gdy zdarzenia wyjściowe zadania są uruchamiane w miarę zakończenia 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, zanim ostateczne zdarzenie JobFinished zostanie wyzwolone z zagregowanymi danymi.
Typ zdarzenia | Opis |
---|---|
Microsoft.Media.JobOutputStateChange | Pobierz zdarzenie dla wszystkich zmian stanu danych wyjściowych 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 anulowanego. |
Microsoft.Media.JobOutputErrored | Pobierz zdarzenie, gdy dane wyjściowe zadania przechodzą do stanu błędu. |
Zobacz Przykłady schematów , które są następujące.
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 od ostatniego zdarzenia (puls) wystąpiło 5% lub większy wzrost wartości postępu lub było to ponad 30 sekund. Wartość postępu nie jest gwarantowana, aby rozpocząć się od 0%, lub osiągnąć 100%, ani nie jest gwarantowana, aby zwiększyć się przy stałym tempie w czasie. Nie używaj tego zdarzenia, aby określić, że przetwarzanie zostało ukończone — zamiast tego należy użyć zdarzeń zmiany stanu. |
Zobacz Przykłady schematów , które są następujące.
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 dla strumienia lub połączenia. 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 utwory wideo. Typy zdarzeń strumienia to:
Typ zdarzenia | Opis |
---|---|
Microsoft.Media.LiveEventConnectionRejected | Próba połączenia kodera jest odrzucana. |
Microsoft.Media.LiveEventEncoderConnected | Koder ustanawia połączenie z wydarzeniem na żywo. |
Microsoft.Media.LiveEventEncoderDisconnected | Koder rozłącza się. |
Zobacz Przykłady schematów , które są następujące.
Zdarzenia na poziomie śledzenia
Zdarzenia na poziomie śledzenia są wywoływane na tor.
Uwaga
Wszystkie zdarzenia na poziomie śledzenia są wywoływane po połączeniu kodera na żywo.
Typy zdarzeń na poziomie śledzenia to:
Typ zdarzenia | Opis |
---|---|
Microsoft.Media.LiveEventIncomingDataChunkDropped | Serwer multimediów spada 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 śledzenia w strumieniu lub połączeniu. |
Microsoft.Media.LiveEventIncomingStreamsOutOfSync | Serwer multimediów wykrywa strumienie audio i wideo są poza synchronizacją. Użyj jako ostrzeżenia, ponieważ środowisko użytkownika może nie mieć wpływu. |
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync | Serwer multimediów wykrywa, że wszystkie dwa 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 | Publikowane co 20 sekund dla każdego śledzenia, gdy wydarzenie na żywo jest uruchomione. 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 przerwanie w ścieżce przychodzącej. |
Zobacz Przykłady schematu , które są widoczne poniżej.
Przykłady schematu zdarzeń
JobStateChange
Poniższy przykład przedstawia schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
previousState |
ciąg | Stan zadania przed zdarzeniem. |
state |
ciąg | 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 zmiany stanu zadania (np. JobScheduled, JobProcessing, JobCanceling) 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.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
Dla każdej ostatecznej zmiany stanu zadania (na przykład JobFinished, JobCanceled, JobErrored) 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.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"
}]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | 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"
}]
LiveEventConnectionRejected
Poniższy przykład przedstawia schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
streamId |
ciąg | Identyfikator strumienia lub połączenia. Koder lub klient jest odpowiedzialny za dodanie tego identyfikatora w adresie URL pozyskiwania. |
ingestUrl |
ciąg | Adres URL pozyskiwania udostępniany przez wydarzenie na żywo. |
encoderIp |
ciąg | Adres IP kodera. |
encoderPort |
ciąg | Port kodera, z którego nadchodzi ten strumień. |
resultCode |
ciąg | 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 zdarzeń na żywo.
LiveEventEncoderPołączone
Poniższy przykład przedstawia schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
streamId |
ciąg | Identyfikator strumienia lub połączenia. Koder lub klient jest odpowiedzialny za podanie tego identyfikatora w adresie URL pozyskiwania. |
ingestUrl |
ciąg | Adres URL pozyskiwania udostępniany przez wydarzenie na żywo. |
encoderIp |
ciąg | Adres IP kodera. |
encoderPort |
ciąg | Port kodera, z którego nadchodzi ten strumień. |
LiveEventEncoderDisconnected
Poniższy przykład przedstawia schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
streamId |
ciąg | Identyfikator strumienia lub połączenia. Koder lub klient jest odpowiedzialny za dodanie tego identyfikatora w adresie URL pozyskiwania. |
ingestUrl |
ciąg | Adres URL pozyskiwania udostępniany przez wydarzenie na żywo. |
encoderIp |
ciąg | Adres IP kodera. |
encoderPort |
ciąg | Port kodera, z którego nadchodzi ten strumień. |
resultCode |
ciąg | 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 zdarzeń 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 jest odłączony (RTMP). |
MPE_CLIENT_DISCONNECTED | Koder 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ł poddawany konserwacji. |
MPI_STREAM_HIT_EOF | Strumień EOF jest wysyłany przez koder. |
LiveEventIncomingDataChunkDropped
W poniższym przykładzie przedstawiono schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
trackType |
ciąg | Typ ścieżki (Audio/Video). |
trackName |
ciąg | Nazwa toru. |
bitrate |
liczba całkowita | Szybkość transmisji bitów ścieżki. |
timestamp |
ciąg | Sygnatura czasowa porzuconego fragmentu danych. |
timescale |
ciąg | Skala czasu znacznika czasu. |
resultCode |
ciąg | Przyczyna upuszczania fragmentu danych. FragmentDrop_OverlapTimestamp lub FragmentDrop_NonIncreasingTimestamp. |
LiveEventIncomingStreamReceived
W poniższym przykładzie przedstawiono schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
trackType |
ciąg | Typ ścieżki (Audio/Video). |
trackName |
ciąg | Nazwa ścieżki (podana przez koder lub w przypadku protokołu RTMP serwer generuje w formacie TrackType_Bitrate ). |
bitrate |
liczba całkowita | Szybkość transmisji bitów ścieżki. |
ingestUrl |
ciąg | Adres URL pozyskiwania dostarczony przez wydarzenie na żywo. |
encoderIp |
ciąg | Adres IP kodera. |
encoderPort |
ciąg | Port kodera, z którego pochodzi ten strumień. |
timestamp |
ciąg | Pierwsza sygnatura czasowa odebranego fragmentu danych. |
timescale |
ciąg | Skala czasu, w której jest reprezentowana sygnatura czasowa. |
LiveEventIncomingStreamsOutOfSync
W poniższym przykładzie przedstawiono schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
minLastTimestamp |
ciąg | Minimalna liczba znaczników czasu ostatniej liczby utworów (audio lub wideo). |
typeOfTrackWithMinLastTimestamp |
ciąg | Typ ścieżki (audio lub wideo) z minimalnym znacznikiem czasu ostatniego. |
maxLastTimestamp |
ciąg | Maksymalnie wszystkie znaczniki czasu wśród wszystkich utworów (audio lub wideo). |
typeOfTrackWithMaxLastTimestamp |
ciąg | Typ ścieżki (audio lub wideo) z maksymalnym znacznikiem czasu ostatniego. |
timescaleOfMinLastTimestamp |
ciąg | Pobiera skalę czasu, w której jest reprezentowana wartość "MinLastTimestamp". |
timescaleOfMaxLastTimestamp |
ciąg | Pobiera skalę czasu, w której jest reprezentowana wartość "MaxLastTimestamp". |
LiveEventIncomingVideoStreamsOutOfSync
W poniższym przykładzie przedstawiono schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
firstTimestamp |
ciąg | Sygnatura czasowa odebrana dla jednego z poziomów ścieżki/jakości typu wideo. |
firstDuration |
ciąg | Czas trwania fragmentu danych z znacznikiem czasu pierwszego. |
secondTimestamp |
ciąg | Sygnatura czasowa odebrana dla innego poziomu ścieżki/jakości typu wideo. |
secondDuration |
ciąg | Czas trwania fragmentu danych z znacznikiem czasu drugiego. |
timescale |
ciąg | Skala czasu i czas trwania. |
LiveEventIngestHeartbeat
W poniższym przykładzie przedstawiono schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
trackType |
ciąg | Typ ścieżki (Audio/Video). |
trackName |
ciąg | Nazwa ścieżki (podana przez koder lub w przypadku protokołu RTMP serwer generuje w formacie TrackType_Bitrate ). |
bitrate |
liczba całkowita | Szybkość transmisji bitów ścieżki. |
incomingBitrate |
liczba całkowita | Obliczana szybkość transmisji bitów na podstawie fragmentów danych pochodzących z kodera. |
lastTimestamp |
ciąg | Najnowsza sygnatura czasowa odebrana dla toru w ciągu ostatnich 20 sekund. |
timescale |
ciąg | Skala czasu, w której są wyrażane znaczniki czasu. |
overlapCount |
liczba całkowita | Liczba fragmentów danych miała nakładające się znaczniki czasu w ciągu ostatnich 20 sekund. |
discontinuityCount |
liczba całkowita | Liczba przerw obserwowanych w ciągu ostatnich 20 sekund. |
nonIncreasingCount |
liczba całkowita | Liczba fragmentów danych ze znacznikami czasu w przeszłości zostały odebrane 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. Ma wartość true, jeśli i tylko wtedy, gdy wartość incomingBitrate >= 2* szybkość transmisji bitów LUB wartość incomingBitrate <= szybkość transmisji bitów/2 LUB wartość IncomingBitrate = 0. |
state |
ciąg | Stan wydarzenia na żywo. |
healthy |
bool | Wskazuje, czy pozyskiwanie jest w dobrej kondycji na podstawie liczby i flag. Wartość w dobrej kondycji ma wartość true, jeśli funkcja overlapCount = 0 && przerwania = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false. |
lastFragmentArrivalTime |
ciąg | 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 |
ciąg | 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ć w sumie 58 sekund dźwięku lub wideo w ciągu jednej minuty. Będzie to zgłaszane jako dwie sekundy na minutę dryfu. Jeśli koder może nadrobić zaległości i wysłać wszystkie 60 sekund lub więcej danych co minutę, ta wartość zostanie zgłoszona jako 0. Jeśli wystąpiło rozłączenie lub przerwanie z kodera, ta wartość może być nadal wyświetlana jako 0, ponieważ nie uwzględnia przerw w danych — tylko dane opóźnione w znacznikach czasu. |
transcriptionState |
ciąg | 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 do śledzenia typu "audio" dla transkrypcji na żywo. Wszystkie pozostałe ścieżki będą miały pustą wartość. |
transcriptionLanguage |
ciąg | 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. |
LiveEventChannelArchiveHeartbeat
Poniższy przykład przedstawia schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
channelLatencyMs |
ciąg | Czas w milisekundach (ms) pozyskanego wideo spędza w potoku wydarzeń na żywo, zanim zostanie opublikowany w manifeście HLS/DASH dla graczy do pobrania. |
latencyResultCode |
ciąg | Kod wyniku obliczenia channelLatencyMs.
S_OK wskazuje, że pozyskiwanie zdarzeń na żywo zostało odebrane bez żadnych problemów. Inne kody wyników wskazują sytuacje, które mogłyby spowodować, że channelLatencyMs będzie mieć pustą wartość.
MPE_KEY_FRAME_INTERVAL_TOO_LARGE kod błędu wskazuje, że pozyskane źródło wideo ma dużą odległość GOP (klatka klucza), która negatywnie wpłynie na opóźnienie kanału.
MPE_INGEST_DISCONTINUITY kod błędu wskazuje, że w strumieniu źródłowym wykryto przerwania, co może dodawać długie opóźnienia do kanału. |
LiveEventTrackDiscontinuityDetected
Poniższy przykład przedstawia schemat zdarzenia 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"
}
]
Obiekt danych ma następujące właściwości:
Właściwość | Typ | Opis |
---|---|---|
trackType |
ciąg | Typ ścieżki (Audio/Video). |
trackName |
ciąg | Nazwa ścieżki (podana przez koder lub, w przypadku protokołu RTMP, serwer jest generowany w formacie TrackType_Bitrate ). |
bitrate |
liczba całkowita | Szybkość transmisji bitów toru. |
previousTimestamp |
ciąg | Sygnatura czasowa poprzedniego fragmentu. |
newTimestamp |
ciąg | Sygnatura czasowa bieżącego fragmentu. |
discontinuityGap |
ciąg | Odstęp między dwoma znacznikami czasu. |
timescale |
ciąg | Skala czasu, w której przedstawiono zarówno znacznik czasu, jak i przerwę w przerwaniu. |
Typowe właściwości zdarzenia
Zdarzenie ma następujące dane najwyższego poziomu:
Właściwość | Typ | Opis |
---|---|---|
topic |
ciąg | Temat usługi Event Grid. Ta właściwość ma identyfikator zasobu dla konta usługi Media Services. |
subject |
ciąg | Ścieżka zasobu kanału usługi Media Services w ramach konta usługi Media Services. Łączenie tematu i tematu daje identyfikator zasobu zadania. |
eventType |
ciąg | Jeden z zarejestrowanych typów zdarzeń dla tego źródła zdarzeń. Na przykład "Microsoft.Media.JobStateChange". |
eventTime |
ciąg | Czas generowania zdarzenia na podstawie czasu UTC dostawcy. |
id |
ciąg | Unikatowy identyfikator zdarzenia. |
data |
object | Dane zdarzeń usługi Media Services. |
dataVersion |
ciąg | Wersja schematu obiektu danych. Wydawca definiuje wersję schematu. |
metadataVersion |
ciąg | Wersja schematu metadanych zdarzenia. Usługa Event Grid definiuje schemat właściwości najwyższego poziomu. Ta wartość jest podawana przez usługę Event Grid. |