إنشاء سلم معدل بت تكيفي انطلاقا من دقة المصدر
يوفر سلم البث التكيفي للمشغل نسخا متعددة من الفيديو نفسه كي يستجيب لتغير عرض النطاق وظروف الشاشة.
شغّل الأداة مجانًا
تحول هذه الإمكانية عرض المصدر وارتفاعه إلى مجموعة حتمية من تمثيلات 1080p و720p و480p و360p التي تلائم المصدر. وتحافظ على نسبة الأبعاد والاتجاه، وتنتج أبعادا زوجية مناسبة للترميز، وتضبط معدلات البت القياسية بحسب العدد الفعلي للبكسلات في كل مخرج. تصلح النتيجة نقطة انطلاق عملية لخطة ترميز HLS أو DASH.
ابدأ بأبعاد المصدر الفعلية
أدخل عرض الفيديو المخزن وارتفاعه بالبكسل قبل أي تدوير للعرض أو تحجيم ينفذه المشغل. تقارن الحاسبة الضلعين الأقصر والأطول في المصدر بالحدود الشائعة لتمثيلات 1080p و720p و480p و360p. ولا تنشئ بكسلات غير موجودة؛ إذ لا تضيف درجة إلا إذا كان المصدر كبيرا بما يكفي في الاتجاهين لملف التعريف القياسي. ولذلك يحصل مصدر بأبعاد 1920 في 1080 على الدرجات الأربع، بينما يبدأ مصدر 1280 في 720 من 720p. ويخضع المحتوى الرأسي للقاعدة نفسها مع الحفاظ على اتجاهه، فتكون المخرجات رأسية بدلا من فرض إطارات أفقية. يجب أن يكون كلا البعدين عددين صحيحين موجبين ضمن الحد المعلن. ويُرفض المصدر الأصغر من إطار 640 في 360 الأفقي، أو نظيره 360 في 640 الرأسي، لأنه لا يستطيع إنتاج أدنى درجة من دون تكبير. تحقق بعناية من مقاطع الهاتف المدورة، وأدخل أبعاد العرض الفعلية إذا غيرت بيانات التدوير الوصفية تحديد الضلع الأفقي.
افهم طريقة حساب الأبعاد ومعدلات البت
في كل ملف تعريف مؤهل، يُحجّم الضلع الأقصر للمصدر إلى قيمة الدرجة، ثم يُحسب الضلع الأطول من نسبة أبعاد المصدر. ويُقرب الضلع المحسوب نزولا إلى عدد صحيح زوجي، لأن مسارات H.264 وH.265 المعتادة تتطلب أبعادا تتوافق بوضوح مع كتل اللون. قد يغير ذلك نسبة الأبعاد الدقيقة بمقدار ضئيل جدا، لكنه يمنع قواعد قص أو حشو خفية داخل المرمّز. يبدأ كل ملف تعريف بهدف فيديو AVC مألوف: 5,000 kbps لدقة 1080p، و2,800 kbps لدقة 720p، و1,400 kbps لدقة 480p، و800 kbps لدقة 360p. بعد ذلك يضبط الخوارزم الهدف بحسب عدد بكسلات المخرج نسبة إلى إطار 16:9 المرجعي، ويقربه إلى أقرب 50 kbps. كما يعرض معدلا أقصى يساوي 107 في المئة من الهدف، وقيمة مخزن مؤقت تساوي ضعفه. هذه قيم للتخطيط وليست ضمانا للجودة المرئية.
استخدم السلم أساسا لخطة الترميز
اربط كل درجة معادة بمخرج من المرمّز، ثم حزم التدفقات الناتجة في قائمة HLS رئيسية واحدة أو عرض DASH واحد. حافظ على اتساق معدل الإطارات، وتواتر الإطارات المفتاحية، ومعالجة الألوان، وتخطيط الصوت، وحدود المقاطع بين التمثيلات كي ينتقل المشغل بينها بسلاسة. صُممت معدلات البت لتكون متوقعة ومناسبة للتقديرات والقوالب والإعدادات الأولية، لكن تعقيد المحتوى يظل مؤثرا. قد تحتاج الرسوم المتحركة وحبيبات الفيلم والرياضة وتسجيلات الشاشة وضوضاء الإضاءة الخافتة إلى معدلات مختلفة جدا عند الدقة نفسها. اختبر مشاهد ممثلة بمقياس جودة موضوعي وتجارب تشغيل، ثم ارفع الأهداف الفردية أو اخفضها بحسب برنامج الترميز ومعدل الإطارات والجودة المطلوبة. تحتوي النتيجة على معدلات الفيديو فقط؛ لذا احسب الصوت بصورة منفصلة واترك هامشا للتوصيل فوق المجموع. وفي الإنتاج راقب إعادة التخزين المؤقت وزمن البدء واختيار التمثيل والجودة، لأن سلوك شبكة المشاهدين الفعلي هو الاختبار النهائي لاتزان السلم.
حالات الاستخدام
إنشاء خطة ترميز HLS
حول أبعاد المصدر إلى أحجام تمثيل وأهداف متسقة لمعدل بت الفيديو قبل إنشاء القائمة الرئيسية.
تقدير مخرجات التحويل
اعرف عدد التمثيلات القياسية التي يدعمها المصدر وعرض النطاق التقريبي لكل مخرج.
توحيد الفيديو الرأسي والنسب غير المعتادة
حافظ على اتجاه المصدر مع تكييف ملفات البث المألوفة للعدد الفعلي من بكسلات الفيديو غير ذي النسبة 16:9.
الأسئلة الشائعة
ما كلفة العملية الحسابية؟
تكلف كل مطالبة إلى API مقدار $0.002.
هل يكبر السلم المصادر الصغيرة؟
لا. تُحذف الدرجات التي تتجاوز أيا من أبعاد المصدر المعيارية، ويعيد المصدر الأصغر من إطار 360p خطأ.
هل معدلات البت المعادة للفيديو أم لإجمالي عرض النطاق؟
هي أهداف لمعدل بت الفيديو. أضف معدل الصوت المختار وتكاليف النقل عند تقدير عرض النطاق الإجمالي.
هل الفيديو الرأسي مدعوم؟
نعم. يُحافظ على الاتجاه الرأسي وتُلائم كل درجة قياسية نسبة أبعاد المصدر مع أبعاد خرج زوجية.
لماذا قد يختلف العرض عن قيم مألوفة مثل 1920 أو 1280؟
تفترض تلك القيم فيديو بنسبة 16:9. وتحتاج النسب الأخرى إلى عرض مختلف للحفاظ على الصورة من دون قص.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/video2/streaming-bitrate-ladder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_width":1920,"source_height":1080}'const res = await fetch("https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_width": 1920,
"source_height": 1080
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video2/streaming-bitrate-ladder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_width": 1920,
"source_height": 1080
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_width":1920,"source_height":1080}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_width":1920,"source_height":1080}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"source_width": 1920,
"source_height": 1080
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.streaming_bitrate_ladder",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |