خدمات وسائط 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 سلسلة هذه القيمة هي "تشغيل" لرسالة كشف أخطاء الاتصال لتعقب الصوت إذا كان النسخ المباشر قيد التشغيل، وإلا فسترى سلسلة فارغة. تنطبق هذه الحالة فقط علىtracktypeaudio النسخ المباشر. سيكون لجميع المسارات الأخرى قيمة فارغة.
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.

الخطوات التالية

راجع التسجيل لأحداث تغيير حالة الوظيفة

(راجع أيضًا )