schematy Azure Event Grid dla zdarzeń usługi Media Services

Logo usługi Media Services w wersji 3


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.

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, JobCanceledJobError 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.

Zobacz też