Службы мультимедиа Azure в качестве источника Сетки событий
В этой статье приведены схемы и свойства событий Служб мультимедиа.
Типы событий, связанные с заданиями
Службы мультимедиа Microsoft Azure выдают события перечисленных ниже типов, связанных с заданиями. Существует две категории событий, связанных с заданием: "Наблюдение за изменениями состояния задания" и "Наблюдение за изменениями состояния выходных данных задания".
Вы можете зарегистрироваться на все события, подписавшись на событие JobStateChange. Или, вы можете подписаться на отдельные события (к примеру, такие конечные состояния как JobErrored, JobFinished и JobCanceled).
Наблюдение за изменениями состояния задания
Тип события | Description |
---|---|
Microsoft.Media.JobStateChange | Получить событие о всех изменениях состояние задания. |
Microsoft.Media.JobScheduled | Получить событие, когда задание переходит в состояние запланированного. |
Microsoft.Media.JobProcessing | Получить событие, когда задание переходит в состояние обработки. |
Microsoft.Media.JobCanceling | Получить событие, когда задание переходит в состояние отмены. |
Microsoft.Media.JobFinished | Получить событие, когда задание переходит в состояние завершенного. Это конечное состояние, которое включает в себя выходные данные задания. |
Microsoft.Media.JobCanceled | Получить событие, когда задание переходит в состояние отмененного. Это конечное состояние, которое включает в себя выходные данные задания. |
Microsoft.Media.JobErrored | Получить событие, когда задание переходит в состояние ошибки. Это конечное состояние, которое включает в себя выходные данные задания. |
Ознакомьтесь с примерами схемы событий приведенными ниже.
Мониторинг изменений состояния выходных данных задания
Задание может содержать несколько выходов (если преобразование настроено соответствующим образом). Если вы хотите отслеживать выходные данные отдельного задания, настройте ожидание события изменения выходов задания.
Объект Job находится на уровне выше объекта JobOutput, поэтому события выходов задания будут срабатывать в контексте соответствующего задания.
Сообщения об ошибках в JobFinished
, JobCanceled
, JobError
выводят агрегированные результаты по каждому выходу задания, когда все они завершаются. События же выходов задания срабатывают по завершении каждой отдельной задачи. Например, если у вас есть выход кодирования, за которым расположен выход видеоаналитики, то сначала сработают два события выходов задания, а затем итоговое событие JobFinished с агрегированными данными.
Тип события | Description |
---|---|
Microsoft.Media.JobOutputStateChange | Получить событие о всех изменениях состояния выходных данных задания. |
Microsoft.Media.JobOutputScheduled | Получить событие, когда выходные данные задания переходят в состояние запланированных. |
Microsoft.Media.JobOutputProcessing | Получить событие, когда выходные данные задания переходят в состояние обработки. |
Microsoft.Media.JobOutputCanceling | Получить событие, когда выходные данные задания переходят в состояние отмены. |
Microsoft.Media.JobOutputFinished | Получить событие, когда выходные данные задания переходят в состояние завершения. |
Microsoft.Media.JobOutputCanceled | Получить событие, когда выходные данные задания переходят в состояние отмененных. |
Microsoft.Media.JobOutputErrored | Получить событие, когда выходные данные задания переходят в состояние ошибки. |
Ознакомьтесь с примерами схемы событий приведенными ниже.
Мониторинг хода работы выходов задания
Тип события | Description |
---|---|
Microsoft.Media.JobOutputProgress | Данное событие отображает ход выполнения задания, от 0 % до 100 %. Служба попытается отправить событие, когда ход выполнения задания увеличился на 5 % или более или прошло более 30 секунд с момента последнего события (пакета пульса). Для значения хода выполнения не гарантируется, что оно будет начинаться с 0 %, достигнет 100 % или будет прирастать равномерно. Это событие не следует использовать для определения завершения обработки. Вместо этого следует использовать события изменения состояния. |
Ознакомьтесь с примерами схемы событий приведенными ниже.
Типы событий, связанных с прямой трансляцией
Служба мультимедиа также выдает следующие типы событий, связанных с прямой трансляцией. Существуют две категории для событий прямой трансляции: события уровня потока и события уровня дорожки.
События уровня потока
События уровня потока вызываются в потоке или подключении. Каждое событие имеет параметр StreamId
, который идентифицирует подключение или поток. Каждый поток или подключение имеет одну или несколько дорожек разных типов. Например, одно подключение от кодировщика может иметь одну аудиодорожку и четыре видеодорожки. К типам событий потока относятся следующие:
Тип события | Description |
---|---|
Microsoft.Media.LiveEventConnectionRejected | Попытка подключения кодировщика отклоняется. |
Microsoft.Media.LiveEventEncoderConnected | Кодировщик устанавливает подключение с событием прямой трансляции. |
Microsoft.Media.LiveEventEncoderDisconnected | Отключение кодировщика. |
Ознакомьтесь с примерами схемы событий приведенными ниже.
События уровня дорожки
События уровня дорожки вызываются в каждой дорожке.
Примечание.
Все события уровня отслеживания срабатывают после подключения динамического кодировщика.
К типам событий уровня отслеживания относятся следующие.
Тип события | Description |
---|---|
Microsoft.Media.LiveEventIncomingDataChunkDropped | Сервер мультимедиа удаляет блок данных, потому что он устарел или имеет перекрывающуюся метку времени (метка времени нового блока данных меньше времени окончания предыдущего блока данных). |
Microsoft.Media.LiveEventIncomingStreamReceived | Сервер мультимедиа получает первый блок данных для каждой дорожки в потоковой передаче или подключении. |
Microsoft.Media.LiveEventIncomingStreamsOutOfSync | Сервер мультимедиа обнаружил, что потоки аудио и видео не синхронизированы. Это можно считать предупреждением, так как взаимодействие с пользователем может не ухудшаться. |
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync | Сервер мультимедиа обнаружил, что один из двух видеопотоков, поступающих от внешнего кодировщика, не синхронизирован. Это можно считать предупреждением, так как взаимодействие с пользователем может не ухудшаться. |
Microsoft.Media.LiveEventIngestHeartbeat | Публикуется каждые 20 секунд для каждой дорожки, когда выполняется событие прямой трансляции. Предоставляет сводку работоспособности приема. После первоначального подключения кодировщика событие пульса продолжает возникать каждые 20 секунд, независимо от наличия подключения к кодировщику. |
Microsoft.Media.LiveEventTrackDiscontinuityDetected | Сервер мультимедиа обнаруживает разрыв во входящей дорожке. |
Ознакомьтесь с примерами схемы событий приведенными ниже.
Примеры схемы событий
JobStateChange
В примере ниже показана схема события 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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
previousState |
строка | Состояние задания перед событием. |
state |
строка | Новое состояние задания в этом событии. Например, "Запланировано: задание готово к запуску" или "Завершено: задание завершено". |
Возможные значения состояния задания: В очереди, Запланировано, Обработка, Завершено, Ошибка, Отменено, Отмена.
Примечание.
Состояние Queued (В очереди) может быть присвоено только свойству previousState, но не свойству state.
JobScheduled, JobProcessing, JobCanceling
Для каждого неокончательного изменения состояния задания (например, JobScheduled, JobProcessing, JobCanceling) пример схемы выглядит следующим образом:
[{
"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
Для каждого окончательного изменения состояния задания (например, JobScheduled, JobProcessing, JobCanceling) пример схемы выглядит следующим образом:
[{
"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"
}]
Объект данных имеет следующие свойства:
Свойство | Type | Описание |
---|---|---|
outputs |
Массив | Получить выходные данные задания. |
JobOutputStateChange
В примере ниже показана схема события JobOutputStateChange:
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "Microsoft.Media.JobOutputStateChange",
"eventTime": "2018-10-12T16:25:56.0242854",
"id": "dde85f46-b459-4775-b5c7-befe8e32cf90",
"data": {
"previousState": "Processing",
"output": {
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 100,
"state": "Finished"
},
"jobCorrelationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobOutputScheduled, JobOutputProcessing, JobOutputFinished, JobOutputCanceling, JobOutputCanceled, JobOutputErrored
Для каждого изменения состояния JobOutput пример схемы выглядит следующим образом:
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "Microsoft.Media.JobOutputProcessing",
"eventTime": "2018-10-12T16:12:18.0061141",
"id": "f1fd5338-1b6c-4e31-83c9-cd7c88d2aedb",
"data": {
"previousState": "Scheduled",
"output": {
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 0,
"state": "Processing"
},
"jobCorrelationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobOutputProgress
Схема, указанная в примере, должна соответствовать приведенной ниже.
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/belohGroup/providers/Microsoft.Media/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/job-5AB6DE32",
"eventType": "Microsoft.Media.JobOutputProgress",
"eventTime": "2018-12-10T18:20:12.1514867",
"id": "00000000-0000-0000-0000-000000000000",
"data": {
"jobCorrelationData": {
"TestKey1": "TestValue1",
"testKey2": "testValue2"
},
"label": "VideoAnalyzerPreset_0",
"progress": 86
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
LiveEventConnectionRejected;
Следующий пример демонстрирует схему события LiveEventConnectionRejected:
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
"subject": "/LiveEvents/MyLiveEvent1",
"eventType": "Microsoft.Media.LiveEventConnectionRejected",
"eventTime": "2018-01-16T01:57:26.005121Z",
"id": "b303db59-d5c1-47eb-927a-3650875fded1",
"data": {
"streamId":"Mystream1",
"ingestUrl": "http://abc.ingest.isml",
"encoderIp": "118.238.251.xxx",
"encoderPort": 52859,
"resultCode": "MPE_INGEST_CODEC_NOT_SUPPORTED"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
streamId |
строка | Идентификатор потока или подключения. Кодировщик или клиент несет ответственность за добавление этого идентификатора в URL-адрес приема. |
ingestUrl |
строка | URL-адрес приема, предоставленный событием прямой трансляции. |
encoderIp |
строка | IP-адрес кодировщика. |
encoderPort |
строка | Порт кодировщика из источника этого потока. |
resultCode |
строка | Причина, по которой подключение было отклонено. Коды результатов перечислены в следующей таблице. |
Коды ошибок результатов можно найти в статье о кодах ошибок трансляции.
LiveEventEncoderConnected;
Следующий пример демонстрирует схему события LiveEventEncoderConnected:
[
{
"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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
streamId |
строка | Идентификатор потока или подключения. Кодировщик или клиент несет ответственность за указание этого идентификатора в URL-адресе приема. |
ingestUrl |
строка | URL-адрес приема, предоставленный событием прямой трансляции. |
encoderIp |
строка | IP-адрес кодировщика. |
encoderPort |
строка | Порт кодировщика из источника этого потока. |
LiveEventEncoderDisconnected.
Следующий пример демонстрирует схему события 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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
streamId |
строка | Идентификатор потока или подключения. Кодировщик или клиент несет ответственность за добавление этого идентификатора в URL-адрес приема. |
ingestUrl |
строка | URL-адрес приема, предоставленный событием прямой трансляции. |
encoderIp |
строка | IP-адрес кодировщика. |
encoderPort |
строка | Порт кодировщика из источника этого потока. |
resultCode |
строка | Причина отключения кодировщика. Это может быть нормальное отключение или ошибка. Коды результатов перечислены в следующей таблице. |
Коды ошибок результатов можно найти в статье о кодах ошибок трансляции.
Коды результатов нормального отключения:
Код результата | Description |
---|---|
S_OK | Кодировщик отключен успешно. |
MPE_CLIENT_TERMINATED_SESSION | Кодировщик отключен (RTMP). |
MPE_CLIENT_DISCONNECTED | Кодировщик отключен (FMP4). |
MPI_REST_API_CHANNEL_RESET | Получена команда сброса канала. |
MPI_REST_API_CHANNEL_STOP | Получена команда остановки канала. |
MPI_REST_API_CHANNEL_STOP | Канал находится в режиме обслуживания. |
MPI_STREAM_HIT_EOF | Поток конца файла отправлен кодировщиком. |
LiveEventIncomingDataChunkDropped;
Следующий пример демонстрирует схему события 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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
trackType |
строка | Тип дорожки (аудио/видео). |
trackName |
строка | Имя дорожки. |
bitrate |
integer | Скорость дорожки. |
timestamp |
строка | Удалена метка времени блока данных. |
timescale |
строка | Шкала времени метки времени. |
resultCode |
строка | Причина удаления блока данных. FragmentDrop_OverlapTimestamp или FragmentDrop_NonIncreasingTimestamp. |
LiveEventIncomingStreamReceived;
Следующий пример демонстрирует схему события 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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
trackType |
строка | Тип дорожки (аудио/видео). |
trackName |
строка | Название дорожки (предоставляется кодировщиком или, в случае RTMP, создается сервером в формате TrackType_Bitrate). |
bitrate |
integer | Скорость дорожки. |
ingestUrl |
строка | URL-адрес приема, предоставленный событием прямой трансляции. |
encoderIp |
строка | IP-адрес кодировщика. |
encoderPort |
строка | Порт кодировщика из источника этого потока. |
timestamp |
строка | Получена первая метка времени. |
timescale |
строка | Шкала времени, в которой представлена метка времени. |
LiveEventIncomingStreamsOutOfSync;
Следующий пример демонстрирует схему события LiveEventIncomingStreamsOutOfSync:
[
{
"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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
minLastTimestamp |
строка | Минимальная из последних меток времени среди всех дорожек (аудио или видео). |
typeOfTrackWithMinLastTimestamp |
строка | Тип дорожки (аудио или видео) с минимальной последней меткой времени. |
maxLastTimestamp |
строка | Максимальная из всех меток времени среди всех дорожек (аудио или видео). |
typeOfTrackWithMaxLastTimestamp |
строка | Тип дорожки (аудио или видео) с максимальной последней меткой времени. |
timescaleOfMinLastTimestamp |
строка | Получить шкалу времени, в которой представлена "MinLastTimestamp". |
timescaleOfMaxLastTimestamp |
строка | Получить шкалу времени, в которой представлена "MaxLastTimestamp". |
LiveEventIncomingVideoStreamsOutOfSync;
Следующий пример демонстрирует схему события LiveEventIncomingVideoStreamsOutOfSync:
[
{
"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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
firstTimestamp |
строка | Метка времени, полученная для одной из дорожек или уровней качества типа видео. |
firstDuration |
строка | Длительность блока данных с первой меткой времени. |
secondTimestamp |
строка | Метка времени, полученная для другого уровня дорожки или уровня качества типа видео. |
secondDuration |
строка | Длительность блока данных со второй меткой времени. |
timescale |
строка | Шкала времени, состоящая из отметок времени и длительности. |
LiveEventIngestHeartbeat;
Следующий пример демонстрирует схему события 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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
trackType |
строка | Тип дорожки (аудио/видео). |
trackName |
строка | Название дорожки (предоставляется кодировщиком или, в случае RTMP, создается сервером в формате TrackType_Bitrate). |
bitrate |
integer | Скорость дорожки. |
incomingBitrate |
integer | Расчетная скорость на основе блоков данных, поступающих из кодировщика. |
lastTimestamp |
строка | Последняя метка времени, полученная для дорожки за последние 20 секунд. |
timescale |
строка | Шкала времени, в которой выражены метки времени. |
overlapCount |
integer | Количество блоков данных с перекрывающимися метками времени за последние 20 секунд. |
discontinuityCount |
integer | Количество прерываний, наблюдаемое за последние 20 секунд. |
nonIncreasingCount |
integer | Количество блоков данных с метками времени в прошлом, полученных за последние 20 секунд. |
unexpectedBitrate |
bool | Если ожидаемые и фактические скорости отличаются более чем на допустимый предел за последние 20 секунд. Это верно, только если incomingBitrate > = 2 * bitrate, incomingBitrate < = bitrate/2 или IncomingBitrate = 0. |
state |
строка | Состояние события прямой трансляции. |
healthy |
bool | Указывает, является ли прием работоспособным, на основе счетчиков и флагов. Работоспособно, если overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false. |
lastFragmentArrivalTime |
строка | Последняя метка времени в формате UTC, когда фрагмент достиг конечной точки приема данных. Пример формата даты: “2020-11-11 12:12:12:888999” |
ingestDriftValue |
строка | Указывает скорость задержки (в секундах за минуту) входящих звуковых или видеоданных за последнюю минуту. Значение будет выше нуля, если за последнюю минуту данные прибывали на трансляцию медленнее, чем ожидалось. Нулевое значение означает, что данные прибыли без задержки, а значение “n/a” указывает, что звуковые или видеоданные не были получены. Например, если у вас есть кодировщик вклада, отправляющий содержимое в реальном времени, и он замедляется из-за проблем с обработкой или сетевой задержки, он может успеть доставить только 58 секунд звука или видео за одну минуту. Это обозначается как смещение в 2 секунды за минуту. Если кодировщик может поймать и отправить все 60 секунд или больше данных каждую минуту, вы увидите это значение как 0. Если произошло отключение или прекращение работы с кодировщиком, это значение по-прежнему может отображаться как 0, так как оно не учитывает разрывы данных — только данные, отложенные в метках времени. |
transcriptionState |
строка | Это значение имеет значение "Вкл." для пульса аудио трека, если включена трансляция транскрибирования, в противном случае вы увидите пустую строку. Это состояние применимо только кtracktype audio транскрибированию live. Для всех остальных дорожек используется пустое значение. |
transcriptionLanguage |
строка | Код языка транскрибирования (в формате BCP-47). Например, значение de-de указывает немецкий язык (Германия). Значение будет пустым для пульсов видеодорожек или при отключенном транскрибировании в реальном времени. |
LiveEventTrackDiscontinuityDetected.
Следующий пример демонстрирует схему события 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"
}
]
Объект данных имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
trackType |
строка | Тип дорожки (аудио/видео). |
trackName |
строка | Название дорожки (предоставляется кодировщиком или, в случае RTMP, создается сервером в формате TrackType_Bitrate). |
bitrate |
integer | Скорость дорожки. |
previousTimestamp |
строка | Метка времени предыдущего фрагмента. |
newTimestamp |
строка | Метка времени текущего фрагмента. |
discontinuityGap |
строка | Разрыв между двумя метками времени выше. |
timescale |
строка | Шкала времени, в которой представлены метка времени и разрыв. |
Общие свойства событий
Событие содержит следующие высокоуровневые данные:
Свойство | Type | Описание: |
---|---|---|
source |
строка | Раздел "Сетка событий". Это свойство имеет идентификатор ресурса для учетной записи Служб мультимедиа. |
subject |
строка | Путь ресурсов для канала Служб мультимедиа в учетной записи Служб мультимедиа. Объединение темы и объекта предоставляет вам идентификатор ресурса для задания. |
type |
строка | Один из зарегистрированных типов событий для этого источника событий. Пример: Microsoft.Media.JobStateChange. |
time |
строка | Время создания события с учетом времени поставщика в формате UTC. |
id |
строка | Уникальный идентификатор события. |
data |
объект | Данные события Служб мультимедиа. |
specversion |
строка | Версия спецификации схемы CloudEvents. |
Следующие шаги
Сведения о событиях изменения состояния задания см. в разделе "Регистрация для событий изменения состояния задания"