النطاق الترددي يكلف المال ، وتدفق الفيديو من CloudFront مكلف للغاية. يمكنك خفض هذه التكلفة عن طريق تحويل مقاطع الفيديو الخاصة بك مسبقًا باستخدام Elastic Transcoder من AWS ، والذي يعالج مقاطع الفيديو لتقليل حجم الملف.
النطاق الترددي يكلف المال
ملفات الفيديو كبيرة إلى حد ما مثل الوسائط ، مقارنة بالصور والصوت. تفرض AWS عليك رسومًا مقابل مساحة التخزين والنطاق الترددي المستخدم. إذا كان لديك ملف فيديو بحجم 100 ميغا بايت وتم عرضه 1000 مرة ، فهذا يعني ما يقرب من 100 جيجابايت من النطاق الترددي ، أو 8.50 دولارات أمريكية في تكاليف النطاق الترددي باستخدام CloudFront لتقديم المحتوى.إذا كان تطبيقك يستضيف مقطع فيديو ، فقد يكون هذا عامل تكلفة رئيسيًا.
لحسن الحظ ، لا يجب أن يكون حجم الفيديو كبيرًا جدًا. من خلال عملية تسمى تحويل الشفرة ، يمكنك تغيير معدل بت الفيديو. يتم ترميز كل مقطع فيديو بمعدل بيانات معين ؛ على سبيل المثال ، يمكن ترميز التسجيل بمعدل 10 ميغا بايت / ثانية.
ألق نظرة على هذا الإطار المكبر من بعض لقطات اختبار لقنديل البحر. تم ترميز الجهاز الموجود على اليسار بمعدل معقول 3 ميجابايت / ثانية ، والآخر الموجود على اليمين تم ترميزه بسرعة عالية جدًا تبلغ 100 ميجابايت / ثانية. هل يمكنك معرفة الفرق؟

هناك القليل من التشويه ، ويمكن بالتأكيد أن يصبح الفيديو ذو معدل البت المنخفض ضبابيًا مع وجود الكثير من الحركة ، ولكن بالنسبة للجزء الأكبر ، يبدو مقطع الفيديو 3 ميجابايت / ثانية مقبولًا تمامًا.
ستلاحظ الاختلاف في الحجم على الرغم من أن ملف معدل البت الأقل يستغرق 11 ميجابايت لمدة 30 ثانية من اللقطات ، ويستهلك ملف معدل البت الأعلى 358 ميجابايت. من الواضح أنك لن تستخدم أبدًا مثل هذا الملف الكبير في الإنتاج ، ولكن إذا لم تقم بتعقيم مدخلات المستخدم ، فقد تواجه هذا الأمر.حتى الانخفاض الطفيف في حجم الملف يمكن أن يؤدي إلى توفير الكثير من التكاليف على الملفات التي يتم تنزيلها كثيرًا. بالنسبة للشركات الكبرى مثل Netflix ، يعد تحويل ترميز الوسائط عملاً ضخمًا.
يستخدم Transcoding أيضًا لإنشاء مقاطع فيديو مختلفة الأحجام لأجهزة مختلفة. ربما لا تحتاج أجهزة الجوال الصغيرة التي تشاهد مقطع فيديو في الوضع الرأسي إلى فيديو بدقة 4K أو حتى 1080 بكسل. قد يتمكن المستخدمون الذين لديهم اتصالات بطيئة من دفق فيديو بدقة 480 بكسل فقط. يمكن لـ AWS's Elastic Transcoder إنشاء ملفات فيديو متعددة لكل إدخال.
هذا هو بالضبط ما يفعله YouTube عندما تقوم بتحميل مقطع فيديو - تتم معالجة الفيديو الخاص بك وتحويل ترميزه للتسليم على منصات متعددة (وإذا كنت في وقت مبكر بشكل خاص على مقطع فيديو على YouTube ، فقد تلاحظ أن الجودة لا تجاوز 480 بكسل ، لأن رمز التحويل 1080 بكسل لم ينته بعد).
كيفية استخدام Elastic Transcoderفي AWS
توجه إلى وحدة التحكم Transcoder المرنة. ستحتاج إلى إنشاء خط أنابيب جديد ، قائمة انتظار تدير وظائف تحويل الترميز. تستخدم خطوط الأنابيب حاويات S3 للإدخال والإخراج ، لذلك ستحتاج إلى إنشاء حاويتين جديدتين من S3 Management Console.
أعط اسمًا لخط الأنابيب الخاص بك ، ثم حدد دلو الإدخال الخاص بك:

ستحتاج إلى التأكد من وجود الحاوية وخط الأنابيب في نفس منطقة AWS ، أو ستتم محاسبتك على البيانات التي تتم معالجتها وسيكون تحويل الشفرة أبطأ. حدد حاوية الإخراج ، ودلوًا لاستخدامه في الصور المصغرة. (يمكن أن يكون هذا دلو الإخراج.)
قم بإنشاء الجرافة الخاصة بك ، وقم بتدوين معرف خط الأنابيب:

في الواقع يعد استخدام Elastic Transcoder عملية يدوية غريبة. يجب عليك إنشاء وظيفة جديدة من وحدة التحكم لكل ملف ، ووضعها في قائمة الانتظار بالإعدادات المناسبة. لحسن الحظ ، يمكنك أتمتة العملية برمتها باستخدام وظيفة Lambda التي سيتم تشغيلها كلما تم تحميل ملف فيديو جديد إلى S3.
توجه إلى Lambda Console ، وأنشئ وظيفة جديدة. اختر NodeJS 10 كوقت تشغيل ، والصقه في هذا البرنامج النصي ، من باب المجاملة Swapnil Pawar على المتوسط.
سترغب في تعديل قيم
pipelineId
و
bucket، وضعها بين علامات اقتباس مثل:

ستحتاج أيضًا إلى تعديل
PresetIdإلى الإعداد المسبق الذي تريد تحويل الشفرة إليه ، والذي يمكنك العثور عليه في مستندات AWS. يمكنك إنشاء وحدة التحكم الخاصة بك من وحدة التحكم في المحول إذا كانت الوحدات الافتراضية غير كافية. إذا كنت ترغب في ترتيب عدة تحويلات لملف واحد ، أضف المزيد من العناصر إلى هذه المصفوفة:

بمجرد ملء كل شيء ، أضف مشغلًا لوظيفة Lambda للتشغيل متى تم إنشاء كائن في مجموعة الإدخال:

ضمن دور التنفيذ ، تأكد من أن الدور لديه حق الوصول إلى Elastic Transcoder.

يمكنك استخدام عينة لقطات قنديل البحر لاختبار وظيفتك. قم بتنزيل ملف متوسط معدل البت (30 ميجا بايت / ثانية أو نحو ذلك) ، وقم بتحميله في حاوية الإدخال الخاصة بك. إذا كانت ناجحة ، يجب أن ترى وظيفة جديدة في قائمة الانتظار في علامة التبويب "الوظائف" في Elastic Transcoder Console ، ويجب أن ترى مجلد "videos" جديد في حاوية الإخراج الخاصة بك التي تحتوي على الملفات الناتجة. استغرق الإعداد المسبق "العام 1080 بكسل" مقطع فيديو 112 ميجابايت 30 ميجابايت / ثانية ، وقام بترميزه إلى 18 ميجابايت فقط (حوالي 5 ميجابايت / ثانية):

إذا فشلت وظيفة Lambda ، يمكنك عرض السجلات ضمن علامة التبويب "المراقبة". يمكنك أيضًا إنشاء حالة اختبار لاختبار الوظيفة دون تحميل أي شيء إلى S3 ، على الرغم من أن المهمة المرسلة إلى محول الشفرة ستكون هشة.
سيحفظ هذا البرنامج النصي ، على وجه الخصوص ، ملفات الإخراج بنفس الاسم تمامًا مثل الإدخال ، على الرغم من أنه يمكنك إضافة بادئة إذا كنت تريد. يعمل محول الشفرة بسرعة كبيرة ، لذا ستتمكن من الوصول إلى الفيديو الخاص بك في حاوية الإخراج بعد وقت قصير من التحميل.