خدمات وسائط Azure كمصدر «شبكة الأحداث»
توفر هذه المقالة المخططات والخصائص لأحداث خدمات الوسائط.
أنواع الأحداث المتعلقة بالوظيفة
تُرسل خدمات الوسائط أنواع الأحداث المتعلقة بالوظيفة الموضحة أدناه. هناك فئتان للأحداث المتعلقة بالوظيفة: "مراقبة تغييرات حالة الوظيفة" و"مراقبة تغييرات حالة ناتج الوظيفة".
يمكنك التسجيل لكافة الأحداث عن طريق الاشتراك في حدث تغيير حالة الوظيفة. أو يمكنك الاشتراك في أحداث معينة فقط (على سبيل المثال، الحالات النهائية مثل خطأ الوظيفة، انتهاء الوظيفة، إلغاء الوظيفة).
مراقبة تغييرات حالة الوظيفة
نوع الحدث | الوصف |
---|---|
Microsoft.Media.JobStateChange | الحصول على حدث لكافة تغييرات حالة الوظيفة. |
Microsoft.Media.JobScheduled | الحصول على حدث عند انتقال الوظيفة إلى الحالة المُجدولة. |
Microsoft.Media.JobProcessing | الحصول على حدث عند انتقال الوظيفة إلى حالة المعالجة. |
Microsoft.Media.JobCanceling | الحصول على حدث عند انتقال الوظيفة إلى حالة الإلغاء. |
Microsoft.Media.JobFinished | الحصول على حدث عند انتقالات الوظيفة إلى الحالة النهائية. هذه حالة نهائية تتضمن نواتج الوظائف. |
Microsoft.Media.JobCanceled | الحصول على حدث عند انتقال الوظيفة إلى حالة مُلغاة. هذه حالة نهائية تتضمن نواتج الوظائف. |
Microsoft.Media.JobErrored | الحصول على حدث عند انتقال الوظيفة إلى حالة الخطأ. هذه حالة نهائية تتضمن نواتج الوظائف. |
راجع أمثلة المخطط التالية.
مراقبة تغييرات حالة ناتج الوظيفة
قد تحتوي الوظيفة على نواتج وظيفة متعددة (إذا قمت بتكوين التحويل ليكون له نواتج وظيفة متعددة.) إذا كنت تريد تعقب تفاصيل ناتج الوظيفة الفردية، استمع إلى حدث تغيير ناتج الوظيفة.
كل وظيفة ستكون على مستوى أعلى من ناتج الوظيفة، وبالتالي يتم إطلاق أحداث ناتج الوظيفة داخل وظيفة مقابلة.
رسائل الخطأ في نواتج JobFinished
، وJobCanceled
، وJobError
المُجمعة لكل ناتج الوظيفة - عند الانتهاء منها جميعًا. بينما يتم إطلاق أحداث ناتج الوظيفة عند انتهاء كل وظيفة. على سبيل المثال، إذا كان لديك ناتج ترميز، متبوعًا بناتج تحليلات فيديو، ستحصل على حدثين يتم إطلاقهما كحدثين لناتج الوظائف قبل إطلاق حدث انتهاء الوظيفة النهائي بالبيانات المُجمعة.
نوع الحدث | الوصف |
---|---|
Microsoft.Media.JobOutputStateChange | الحصول على حدث لكافة تغييرات حالة ناتج الوظيفة. |
Microsoft.Media.JobOutputScheduled | الحصول على حدث عند انتقال ناتج الوظيفة إلى الحالة المُجدولة. |
Microsoft.Media.JobOutputProcessing | الحصول على حدث عند انتقال ناتج الوظيفة إلى حالة المُعالجة. |
Microsoft.Media.JobOutputCanceling | الحصول على حدث عند انتقال ناتج الوظيفة إلى حالة الإلغاء. |
Microsoft.Media.JobOutputFinished | الحصول على حدث عند انتقال ناتج الوظيفة إلى الحالة النهائية. |
Microsoft.Media.JobOutputCanceled | الحصول على حدث عند انتقال ناتج الوظيفة إلى الحالة المُلغاة. |
Microsoft.Media.JobOutputErrored | الحصول على حدث عند انتقال ناتج الوظيفة إلى حالة الخطأ. |
راجع أمثلة المخطط التالية.
مراقبة تقدم ناتج الوظيفة
نوع الحدث | الوصف |
---|---|
Microsoft.Media.JobOutputProgress | يعكس هذا الحدث تقدم معالجة الوظائف، من 0٪ إلى 100٪. تُحاول الخدمة إرسال حدث إذا كان هناك زيادة مقدارها 5٪ أو أكثر في قيمة التقدم أو كانت أكثر من 30 ثانية منذ الحدث الأخير (رسالة كشف أخطاء الاتصال). لا يُضمن أن تبدأ قيمة التقدم عند 0٪، أو أن تصل إلى 100٪، كما أنها ليست مضمونة للزيادة بمعدل ثابت مع مرور الوقت. لا يجب استخدام هذا الحدث لتحديد اكتمال المعالجة - يجب عليك بدلا من ذلك استخدام أحداث تغيير الحالة. |
راجع أمثلة المخطط التالية.
أنواع الأحداث المباشرة
تُرسل خدمات الوسائط أيضًا أنواع الأحداث المباشرة الموضحة أدناه. هناك فئتان للأحداث المباشرة: أحداث على مستوى البث وأحداث على مستوى المسار.
أحداث على مستوى البث
يتم رفع الأحداث مستوى البث لكل بث أو اتصال. يحتوي كل حدث على معلمة StreamId
تُعرّف الاتصال أو البث. كل بث أو اتصال واحد يحتوي على مسار أو أكثر من أنواع مختلفة. على سبيل المثال، قد يحتوي اتصال واحد من أداة ترميز على مسار صوت واحد وأربعة مسارات فيديو. أنواع أحداث البث هي:
نوع الحدث | الوصف |
---|---|
Microsoft.Media.LiveEventConnectionRejected | تم رفض محاولة اتصال أداة الترميز. |
Microsoft.Media.LiveEventEncoderConnected | تُؤسس أداة الترميز الاتصال مع الحدث المباشر. |
Microsoft.Media.LiveEventEncoderDisconnected | قطع اتصال أداة الترميز. |
راجع أمثلة المخطط التالية.
أحداث على مستوى المسار
يتم رفع الأحداث على مستوى المسار لكل مسار.
إشعار
يتم رفع كافة الأحداث على مستوى المسار بعد توصيل أداة ترميز مباشرة.
أنواع الأحداث على مستوى المسار هي:
نوع الحدث | الوصف |
---|---|
Microsoft.Media.LiveEventIncomingDataChunkDropped | يقوم خادم الوسائط بإسقاط البيانات لأنها متأخرة جدًا أو تحتوي على طابع زمني متداخل (الطابع الزمني لمجموعة بيانات جديدة أقل من وقت انتهاء مجموعة البيانات السابقة). |
Microsoft.Media.LiveEventIncomingStreamReceived | يتلقى خادم الوسائط مجموعة البيانات الأولى لكل مسار في البث أو الاتصال. |
Microsoft.Media.LiveEventIncomingStreamsOutOfSync | يكتشف خادم الوسائط عدم تزامن بث الصوت وبث الفيديو. استخدم هذا كتحذير لأنه قد لا تتأثر تجربة المستخدم. |
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync | يكتشف خادم الوسائط أي من بثيّ الفيديو القادمين من أداة الترميز الخارجية غير المتزامنة. استخدم هذا كتحذير لأنه قد لا تتأثر تجربة المستخدم. |
Microsoft.Media.LiveEventIngestHeartbeat | يتم نشره كل 20 ثانية لكل مسار عند تشغيل الحدث المباشر. يوفر ملخصًا سليمًا للاستيعاب. بعد أن تم توصيل أداة الترميز في البداية، يستمر حدث رسالة كشف أخطاء الاتصال في الإرسال كل 20 ثانية سواءً كانت أداة الترميز لا تزال متصلة أم لا. |
Microsoft.Media.LiveEventTrackDiscontinuityDetected | يكتشف خادم الوسائط انقطاع في المسار الوارد. |
راجع أمثلة المخطط التالية.
أمثلة مخطط الأحداث
تغيير حالة الوظيفة
يوضح المثال التالي مخطط حدث تغيير حالة الوظيفة:
[
{
"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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
previousState |
سلسلة | حالة الوظيفة قبل الحدث. |
state |
سلسلة | يتم إعلام الحالة الجديدة للوظيفة في هذا الحدث. على سبيل المثال، "مُجدولة: الوظيفة جاهزة للبدء" أو "انتهت: الوظيفة منتهية". |
حيث يمكن أن تكون حالة الوظيفة إحدى القيم: في قائمة الانتظار، مجدولة، أثناء المعالجة، تم الانتهاء منها، خطأ، تم الإلغاء، جارِ الإلغاء
إشعار
قائمة الانتظار ستكون موجودة فقط في خاصية الحالة السابقة ولكن ليس في خاصية الدولة.
جدولة الوظائف، معالجة الوظائف، إلغاء الوظائف
لكل تغيير حالة وظيفة غير نهائية (مثل جدولة الوظائف، أو معالجة الوظائف، أو إلغاء الوظائف)، يبدو مثال المخطط مشابهاً لما يلي:
[{
"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"
}]
انتهاء الوظائف، إلغاء الوظائف، خطأ الوظائف
لكل تغيير حالة وظيفة نهائية (مثل انتهاء الوظائف، إلغاء الوظائف، خطأ الوظائف)، يبدو مثال المخطط مشابهاً لما يلي:
[{
"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"
}]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
outputs |
صفيف | الحصول على نواتج الوظيفة. |
تغيير حالة ناتج الوظيفة
يُظهر المثال التالي مخطط الحدث تغيير حالة ناتج الوظيفة:
[{
"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"
}]
جدولة ناتج الوظائف، معالجة ناتج الوظائف، انتهاء ناتج الوظائف، جارٍ إلغاء ناتج الوظائف، تم إلغاء ناتج الوظائف، خطأ ناتج الوظائف
لكل تغيير حالة ناتج الوظيفة يبدو مثال المخطط مشابهًا لما يلي:
[{
"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"
}]
تقدم ناتج الوظيفة
يبدو مثال المخطط مشابهًا لما يلي:
[{
"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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
streamId |
سلسلة | معرّف البث أو الاتصال. تتحمل أداة الترميز أو العميل مسؤولية إضافة هذا المعرّف في استيعاب عنوان URL. |
ingestUrl |
سلسلة | استيعاب عنوان URL الذي يقدمه الحدث المباشر. |
encoderIp |
سلسلة | عنوان IP لأداة الترميز. |
encoderPort |
سلسلة | منفذ أداة الترميز من حيث يأتي هذا البث. |
resultCode |
سلسلة | سبب قطع اتصال أداة الترميز. قد يكون قطع اتصال بأمان أو من خطأ. يتم سرد رموز النتائج في الجدول التالي. |
يمكنك العثور على رموز نتائج الخطأ في رموز خطأ الحدث المباشر.
رموز نتائج قطع الاتصال بأمان هي:
رمز النتيجة | الوصف |
---|---|
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 | يتم إرسال بث 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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
trackType |
سلسلة | نوع المسار (صوت / فيديو). |
trackName |
سلسلة | اسم المسار. |
bitrate |
integer | معدل البت للمسار. |
timestamp |
سلسلة | تم إسقاط الطابع الزمني لمجموعة البيانات. |
timescale |
سلسلة | مقياس الوقت للطابع الزمني. |
resultCode |
سلسلة | سبب إسقاط مجموعة البيانات. FragmentDrop_OverlapTimestamp or 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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
trackType |
سلسلة | نوع المسار (صوت / فيديو). |
trackName |
سلسلة | اسم المسار (إما الذي تُقدمه أداة الترميز أو، في حالة RTMP، يتم إنشاء خادم في شكل TrackType_Bitrate). |
bitrate |
integer | معدل البت للمسار. |
incomingBitrate |
integer | معدل البت المحسوب استنادًا إلى مجموعة البيانات القادمة من أداة الترميز. |
lastTimestamp |
سلسلة | آخر طابع زمني تم تلقيه لمسار في آخر 20 ثانية. |
timescale |
سلسلة | مقياس الوقت الذي يتم فيه التعبير عن الطوابع الزمنية. |
overlapCount |
integer | عدد مجموعات البيانات المُتداخلة مع الطوابع الزمنية في آخر 20 ثانية. |
discontinuityCount |
integer | عدد حالات الانقطاع التي لوحظت في آخر 20 ثانية. |
nonIncreasingCount |
integer | عدد مجموعات البيانات مع الطوابع الزمنية في الماضي التي تم استلامها في آخر 20 ثانية. |
unexpectedBitrate |
منطقي | إذا كانت معدلات البت المتوقعة والفعلية تختلف بأكثر من الحد المسموح به في آخر 20 ثانية. يكون هذا صحيحًا إذًا وفقط إذا كان معدل البت الوارد >= 2 * معدل البت أو معدل البت الوارد< = معدل البت / 2 أو معدل النترات الواردة = 0. |
state |
سلسلة | حالة الحدث المباشر. |
healthy |
منطقي | يشير إلى ما إذا كان تناوله سليما، استنادا إلى العد والعلامات. يكون وضع السلامة صحيحًا إذا كان overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false. |
lastFragmentArrivalTime |
سلسلة | آخر طابع زمني بالتوقيت العالمي المتفق عليه يُشير إلى أن الجزء وصل إلى نقطة النهاية الاستيعاب. مثال تنسيق التاريخ هو "2020-11-11 12:12:12:888999" |
ingestDriftValue |
سلسلة | يشير إلى سرعة التأخير، بالثواني في الدقيقة، لبيانات الصوت أو الفيديو الواردة خلال الدقيقة الأخيرة. القيمة أكبر من الصفر إذا كانت البيانات التي تصل إلى الحدث المباشر أبطأ من المتوقع في الدقيقة الأخيرة، وتكون القيمة صفر إذا وصلت البيانات دون تأخير، وتكون القيمة "n/a" إذا لم يتم تلقي بيانات الصوت أو الفيديو. على سبيل المثال، إذا كان لديك أداة ترميز مُساهمة ترسل محتوى مباشرًا، وبدأت تتباطأ بسبب مشكلات المعالجة، أو زمن انتقال الشبكة، فقد تتمكن فقط من تقديم ما مجموعه 58 ثانية من الصوت أو الفيديو في فترة دقيقة واحدة. وسيتم الإبلاغ عن ذلك على أنه ثانيتين لكل دقيقة من الانجراف. إذا كان أداة الترميز قادرة على اللحاق بجميع البيانات التي تبلغ 60 ثانية أو أكثر وإرسالها كل دقيقة، فسترى هذه القيمة تم الإبلاغ عنها ك 0. إذا كان هناك قطع اتصال أو توقف عن أداة الترميز، فقد لا تزال هذه القيمة معروضة ك 0، لأنها لا تراعي الفواصل في البيانات - البيانات التي تأخرت في الطوابع الزمنية فقط. |
transcriptionState |
سلسلة | هذه القيمة هي "تشغيل" لرسالة كشف أخطاء الاتصال لتعقب الصوت إذا كان النسخ المباشر قيد التشغيل، وإلا فسترى سلسلة فارغة. تنطبق هذه الحالة فقط علىtracktype audio النسخ المباشر. سيكون لجميع المسارات الأخرى قيمة فارغة. |
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"
}
]
كائن البيانات له الخصائص التالية:
الخاصية | نوع | الوصف |
---|---|---|
trackType |
سلسلة | نوع المسار (صوت / فيديو). |
trackName |
سلسلة | اسم المسار (إما الذي تُقدمه أداة الترميز أو، في حالة RTMP، يتم إنشاء خادم في شكل TrackType_Bitrate). |
bitrate |
integer | معدل البت للمسار. |
previousTimestamp |
سلسلة | الطابع الزمني للجزء السابق. |
newTimestamp |
سلسلة | الطابع الزمني للجزء الحالي. |
discontinuityGap |
سلسلة | الفجوة بين الطابعين الزمنيين أعلاه. |
timescale |
سلسلة | مقياس الوقت الذي يتم فيه تمثيل فجوة الطابع الزمني والانقطاع. |
خصائص الحدث الشائعة
ويحتوي الحدث على بيانات المستوى الأعلى التالية:
الخاصية | نوع | الوصف |
---|---|---|
source |
سلسلة | موضوع Event Grid. تحتوي هذه الخاصية على معرّف المورد لحساب خدمات الوسائط. |
subject |
سلسلة | مسار المورد لقناة خدمات الوسائط ضمن حساب خدمات الوسائط. يمنحك ربط الموضوع والموضوع معرف المورد للوظيفة. |
type |
سلسلة | أحد أنواع الأحداث المسجلة لمصدر الحدث الماثل. على سبيل المثال، "Microsoft.Media.JobStateChange". |
time |
سلسلة | الوقت الذي يتم إنشاء الحدث استناداً إلى وقت UTC الموفر. |
id |
سلسلة | المعرف الفريد للحدث. |
data |
كائن | بيانات حدث خدمات الوسائط. |
specversion |
سلسلة | إصدار مواصفات مخطط CloudEvents. |
الخطوات التالية
راجع التسجيل لأحداث تغيير حالة الوظيفة