احسب وقت تصيير الفيديو من المدة وسرعة الترميز
يمكنكم تقدير مدة ترميز الفيديو قبل حجز محطة عمل أو عقدة تصيير أو موعد للتسليم. أدخلوا مدة البرنامج وعرض الإخراج وارتفاعه ومعدل الإطارات وسرعة أداة الترميز المقاسة عند تلك الدقة.
شغّل الأداة مجانًا
تحوّل الحاسبة المدة إلى عدد من الإطارات، ثم تقسمه على سرعة الترميز، وتعرض الوقت بصيغة مقروءة إلى جانب التقدير الدقيق. كما تعرض معامل الزمن الحقيقي لتعرفوا سريعًا ما إذا كانت العملية ستنتهي أسرع من مدة التشغيل أم أبطأ منها.
استخدموا قياسات تخص المهمة نفسها
يعتمد التقدير المفيد على مدخلات متسقة. ينبغي أن تشمل المدة الخط الزمني الكامل الذي سيُصدّر، بما في ذلك العناوين وشارات النهاية وأي حشو سيبقى في الملف. أدخلوا معدل الإطارات الفعلي للإخراج، لا تسمية مقربة من اسم المشروع؛ إذ ينتج عن 29.97 و30 إطارًا في الثانية عددان مختلفان في البرامج الطويلة. يسجل العرض والارتفاع دقة الإخراج المستهدفة. ولا يغيران العملية الحسابية مباشرة لأن الأداء معطى أصلًا بعدد الإطارات المعالجة في الثانية، لكنهما يربطان القياس بحجم الصورة الصحيح. قيسوا السرعة، متى أمكن، باستخدام codec وpreset وعمق لون ومرشحات وعتاد ودقة مماثلة للمهمة النهائية. إذا لم يتوفر إلا اختبار أولي، فاستخدموا قيمة مستدامة متحفظة بدل أفضل ذروة لحظية. النتيجة أداة للتخطيط وليست ضمانًا؛ فقد تقل السرعة الفعلية بسبب تعقيد المشاهد أو الحدود الحرارية أو الأحمال المتزامنة.
افهموا طريقة الحساب ومعامل الزمن الحقيقي
تضرب الحاسبة أولًا مدة الفيديو بالثواني في معدل إطارات الإخراج للحصول على العدد الكلي للإطارات، ثم تقسم ذلك العدد على أداء أداة الترميز. يحتوي برنامج مدته دقيقتان بمعدل 30 fps على 3,600 إطار؛ وإذا حافظت الأداة على 60 fps فإنها تحتاج إلى نحو دقيقة. معامل الزمن الحقيقي هو سرعة أداة الترميز مقسومة على معدل إطارات الفيديو. تعني القيمة الأكبر من واحد أن الترميز أسرع من التشغيل، وتعني القيمة واحد أنه قريب من الزمن الحقيقي، أما القيمة الأصغر من واحد فتعني أن المعالجة أبطأ. تظهر الدقة في النتيجة حتى يبقى سياق اختبار الأداء واضحًا. قد ينتج عدد كسري من الإطارات عند الجمع بين مدة عشرية ومعدل إطارات كسري. تحافظ الأداة على هذا التقدير الرياضي بدل تغيير المدة المدخلة دون تنبيه. ويُقرّب الوقت المعروض إلى أقرب جزء من ألف من الثانية، مع تقريب عددي ثابت يضمن تطابق نتائج API والمتصفح.
أضيفوا هامشًا واقعيًا إلى الجدول
تعاملوا مع النتيجة بوصفها وقت الترميز الفعلي في الظروف التي يمثلها القياس. قد تتطلب عملية التسليم الكاملة أيضًا نقل المصدر، وإعداد cache، وتحليل الصوت، وضبط المعالجة متعددة pass، وmux، وإنشاء checksum، وupload، وفحص الجودة. لا تدخل هذه المراحل في سرعة مقاسة بالإطارات في الثانية، ولذلك يجب إضافتها منفصلة. عند تخطيط مجموعة أعمال، احسبوا مهام ممثلة باستخدام أقل أداء مستدام متوقع، ثم أضيفوا هامشًا يستند إلى التفاوت السابق. إذا كان أداء النظام غير مستقر، تكون السرعة المتحفظة أنسب للالتزام بالمواعيد من متوسط رفعته مشاهد سهلة. أعيدوا القياس عند تغيير الدقة أو codec أو preset أو إزالة الضوضاء أو التحجيم أو تحويل الألوان أو تسريع العتاد. تبلغ كلفة التقدير $0.002 لكل طلب API، بينما ينفذ مسار المتصفح من الفئة A العملية الحتمية نفسها محليًا. لا يُرفع أي ملف فيديو؛ إذ تستخدم الحاسبة القيم الرقمية المدخلة فقط.
حالات الاستخدام
تحديد موعد التصدير
حوّلوا مدة العمل واختبار المحطة إلى نافذة ترميز متوقعة قبل تأكيد موعد التسليم.
مقارنة إعدادات أداة الترميز
أدخلوا سرعات إعدادات مختلفة عند الدقة نفسها لمقارنة أوقات إنجازها المتوقعة.
تقدير مجموعة أعمال تصيير
قدّروا كل مهمة بسرعة متحفظة، ثم أضيفوا وقت النقل والمراجعة على حدة.
الأسئلة الشائعة
لماذا يلزم معدل الإطارات إلى جانب المدة؟
تقاس سرعة أداة الترميز بالإطارات في الثانية، ولذلك يجب تحويل مدة الفيديو إلى عدد من الإطارات باستخدام معدل الإخراج.
هل تغير الدقة المعادلة مباشرة؟
لا. تحدد الدقة قياس السرعة الذي ينبغي إدخاله. تفترض المعادلة أن السرعة قِيست للعرض والارتفاع وcodec والإعدادات المذكورة.
ماذا يحدث إذا كانت السرعة صفرًا أو سالبة؟
يفشل الطلب بخطأ إدخال غير صالح، لأن القسمة على صفر غير معرّفة ولأن معدل المعالجة السالب لا يحمل معنى عمليًا.
هل يشمل التقدير الرفع أو فحص الجودة؟
لا. فهو يقدّر وقت معالجة الإطارات فقط. أضيفوا النقل وmux والتحقق وupload والمراجعة بصورة منفصلة.
هل يمكن استخدام متوسط سرعة أداة الترميز؟
نعم، لكن السرعة المستدامة المتحفظة المقاسة على محتوى ممثل أكثر أمانًا عند الالتزام بموعد.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/video/render-time-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration_seconds":120,"width_px":1920,"height_px":1080,"frame_rate_fps":30,"encoder_speed_fps":60}'const res = await fetch("https://api.kit.forhosting.com/video/render-time-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration_seconds": 120,
"width_px": 1920,
"height_px": 1080,
"frame_rate_fps": 30,
"encoder_speed_fps": 60
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/render-time-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration_seconds": 120,
"width_px": 1920,
"height_px": 1080,
"frame_rate_fps": 30,
"encoder_speed_fps": 60
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/render-time-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration_seconds":120,"width_px":1920,"height_px":1080,"frame_rate_fps":30,"encoder_speed_fps":60}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration_seconds":120,"width_px":1920,"height_px":1080,"frame_rate_fps":30,"encoder_speed_fps":60}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/render-time-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"duration_seconds": 120,
"width_px": 1920,
"height_px": 1080,
"frame_rate_fps": 30,
"encoder_speed_fps": 60
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.render_time_estimate",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |