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.

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 JobFinishedJobCanceled, 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 dotracktypeaudio 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

Zobacz też