حساب إطار قص الفيديو حسب نسبة الأبعاد
تبدأ إعادة تأطير الفيديو ليناسب صيغة عرض جديدة بسؤال دقيق: ما المستطيل المركزي الذي يحافظ على أكبر مساحة ممكنة ويطابق في الوقت نفسه نسبة الأبعاد المطلوبة؟ تستقبل هذه الحاسبة عرض الفيديو الأصلي وارتفاعه بالبكسل مع نسبة مثل 9:16 أو 1:1 أو 16:9، ثم تعيد موضع بداية القص وأبعاده.
شغّل الأداة مجانًا
لا ترفع الفيديو ولا تفك ترميزه ولا تغير حجمه أو محتواه. يمكنكم تمرير هذه البيانات الهندسية مباشرة إلى مسار تحرير أو أمر تحويل ترميز أو منظومة وسائط أو واجهة معاينة.
حوّلوا الإطار الأصلي إلى أكبر مساحة قص مطابقة
أدخلوا عرض الفيديو المفكوك ترميزه وارتفاعه بالبكسل، ثم اكتبوا النسبة المستهدفة بصيغة العرض إلى الارتفاع مع وضع نقطتين بين القيمتين. على سبيل المثال، يصف 1920 في 1080 إطاراً أفقياً شائعاً، بينما تطلب 9:16 نتيجة عمودية ملائمة لمقاطع الهاتف القصيرة. تقارن الحاسبة نسبة المصدر بالنسبة المطلوبة وتحافظ على البعد الذي يحد الملاءمة بالفعل. إذا كان المصدر أعرض من اللازم، فإنها تحتفظ بالارتفاع كاملاً وتخفض العرض. وإذا كان أعلى من اللازم، فإنها تحتفظ بالعرض كاملاً وتخفض الارتفاع. ينتج عن ذلك أكبر مستطيل يمكن احتواؤه داخل الإطار الأصلي من دون تمديد أو حشو أو تجاوز للحواف. تحدد القيمتان x وy موضع الزاوية العلوية اليسرى، بينما تصف width وheight حجم المساحة. تكوّن هذه القيم معاً إطار قص كاملاً لكل لقطة في فيديو ثابت الدقة. لا حاجة إلى أي بيانات من ملف الوسائط، لأن الحساب يعتمد على هندسة الإطار وحدها.
افهموا الإحداثيات المركزية وقيم البكسل الكسرية
يزيل القص المركزي المقدار نفسه من حافتين متقابلتين. عندما يلزم تضييق مصدر أفقي، تساوي x نصف المساحة الأفقية المستبعدة وتبقى y صفراً. وعندما يلزم خفض ارتفاع الإطار، تساوي y نصف المساحة العمودية المستبعدة وتبقى x صفراً. قد تنتج بعض مجموعات الأبعاد والنسب إحداثيات أو أحجاماً كسرية. وهذا مقصود، لأن المركز الرياضي الدقيق أو النسبة المطلوبة قد يقعان بين حدود وحدات البكسل الفعلية. تمنع البيانات الهندسية العشرية فرض قاعدة تقريب ضمنية قد لا تناسب برنامج الترميز أو مكتبة الرسوم أو تطبيق التحرير الذي تستخدمونه. تُطبّع القيم إلى تسع خانات عشرية لكي تظل الطلبات المتكررة ثابتة ولا يتسرب ضجيج الفاصلة العائمة إلى ملفات البيان أو الاختبارات. إذا كانت الأداة التالية لا تقبل إلا الأعداد الصحيحة، فطبقوا قاعدة التقريب الموثقة لديها عند الربط وتحققوا من الأبعاد النهائية بعد الترميز. يمكن أن يؤدي تقريب الأعداد الصحيحة إلى تحريك حافة قليلاً أو إحداث فرق طفيف في النسبة المحققة.
استخدموا القص بأمان في مسارات إنتاج الفيديو
تعاملوا مع الاستجابة بوصفها بيانات هندسية قابلة لإعادة الاستخدام، لا فيديو محولاً. مرروا x وy وwidth وheight إلى مرحلة القص في محول الترميز أو محرر الفيديو غير الخطي أو عارض canvas أو مولد الصور المصغرة أو خدمة الوسائط. تحققوا من أن الأداة المستقبلة تعتمد الزاوية العلوية اليسرى نقطة بداية، وأن x تزداد نحو اليمين وy نحو الأسفل، فهذه هي الطريقة المستخدمة هنا. استخرجوا العرض والارتفاع من تدفق الفيديو الذي فُك ترميزه فعلياً، ولا تعتمدوا على اسم الملف أو نافذة المشغل أو سجل قديم. قد تحتوي تسجيلات الهاتف على بيانات وصفية للاتجاه؛ لذلك حددوا هل يطبق مساركم التدوير قبل القص أم بعده، واستخدموا أبعاد المرحلة نفسها. لا يقبل محلل النسبة إلا عددين موجبين ومحدودين تفصل بينهما نقطتان. تُرفض الأخطاء والفواصل البديلة والأصفار والقيم السالبة والنصوص الإضافية بدلاً من تخمينها. تمنع هذه الصرامة إنتاج دفعات كبيرة ذات تأطير خاطئ.
حالات الاستخدام
أعيدوا تأطير الفيديو الأفقي للقنوات العمودية
احسبوا أكبر مساحة مركزية بنسبة 9:16 قبل ترميز نسخ خاصة بكل منصة انطلاقاً من نسخة أفقية رئيسية.
وحّدوا تأطير الصور المصغرة للفيديو
استخدموا حساباً حتمياً واحداً للمعاينات والصور المصغرة التي يجب أن تملأ مشغلاً ثابت الشكل من دون حواف.
تحققوا من إعداد التحويل التلقائي للترميز
عاينوا إحداثيات القص من بيانات المصدر وارفضوا النسب غير السليمة قبل بدء معالجة الوسائط المكلفة.
الأسئلة الشائعة
هل ترفع هذه الأداة الفيديو أو تعدله؟
لا. إنها تستخدم العرض والارتفاع والنسبة فقط لإعادة بيانات هندسية، ولا تستقبل الوسائط أو تفك ترميزها أو تخزنها أو تحولها.
ما تكلفة الحساب؟
سعر API هو $0.002 لكل طلب. ويمكن أيضاً تنفيذ الحساب الحتمي نفسه داخل المتصفح.
ما صيغة نسبة الأبعاد المقبولة؟
استخدموا عددين موجبين تفصل بينهما نقطتان، مثل 9:16 أو 16:9 أو 1:1 أو 1.85:1. لا تُقبل الفواصل الأخرى أو النصوص الإضافية.
لماذا قد يتضمن القص قيماً عشرية؟
قد يقع المركز الدقيق أو النسبة الدقيقة بين وحدات البكسل. تحافظ القيم العشرية على أكبر قص مركزي من دون فرض قاعدة تقريب.
هل يمكن أن يتجاوز القص الإطار الأصلي؟
لا. يطابق أحد البعدين دائماً بعد المصدر المقابل، بينما يُخفض البعد الآخر ليلائم النسبة المطلوبة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/video/aspect-ratio-crop \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1920,"height":1080,"ratio":"9:16"}'const res = await fetch("https://api.kit.forhosting.com/video/aspect-ratio-crop", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1920,
"height": 1080,
"ratio": "9:16"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/aspect-ratio-crop",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1920,
"height": 1080,
"ratio": "9:16"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/aspect-ratio-crop", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1920,"height":1080,"ratio":"9:16"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1920,"height":1080,"ratio":"9:16"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/aspect-ratio-crop", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"width": 1920,
"height": 1080,
"ratio": "9:16"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.aspect_ratio_crop",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |