فحص توافق حاويات الفيديو وبرامج الترميز
يعتمد تشغيل الفيديو على خيارين منفصلين: الحاوية التي تنظّم الوسائط، وبرنامج الترميز الذي يضغط الصورة.
شغّل الأداة مجانًا
ولا يضمن امتداد ملف مألوف أن يعمل دفق الفيديو الموجود داخله في كل مكان. تفحص هذه الأداة حاويات MP4 وMOV وMKV وWebM وAVI عند اقترانها ببرامج H.264 أو H.265 أو VP9 أو AV1. وهي تعرض مستوى دعم متحفظًا، وتوضح أهم مخاطر التشغيل البيني، وتوصي بالحالات التي ينبغي فيها توفير نسخة بديلة واسعة التوافق.
افهموا معنى نتيجة التوافق
تستخدم الأداة ثلاثة مستويات للدعم بدل اختزال التشغيل في إجابة تقنية بنعم أو لا. يعني المستوى الواسع أن الاقتران خيار موثوق في المتصفحات الرئيسية الحالية وبيئات iOS وAndroid الحديثة. ويعني المستوى المحدود وجود دعم فعلي مع بقاء فجوات مهمة ترتبط بعائلة المتصفح أو إصدار نظام التشغيل أو عتاد الجهاز أو الطريقة المعتادة لتغليف برنامج الترميز. أما المستوى الضعيف فيشير إلى اقتران غير مألوف للتوزيع عبر الويب أو لا يمكن الاعتماد عليه في مشغلات الهاتف الأصلية. تسهّل القيمة المنطقية المنفصلة اتخاذ القرارات آليًا، بينما يحفظ الشرح سبب التصنيف. هذا تقييم على مستوى التنسيق، وليس ضمانًا لكل ملف مرمّز. فقد يظل ملف التعريف والمستوى والدقة وعمق البت ومعدل الإطارات وبرنامج ترميز الصوت والتشفير والبيانات الوصفية التالفة أسبابًا تمنع التشغيل حتى مع اقتران واسع الدعم. استخدموا النتيجة فحصًا مبكرًا للبنية قبل الترميز والاختبار على الأجهزة، ولا تجعلوها بديلًا عن تجربة ملفات تمثيلية على المنصات التي يستعملها جمهوركم فعليًا.
اختاروا الحاوية وبرنامج الترميز معًا
يصف برنامج الترميز كيفية ضغط إطارات الفيديو، بينما تحدد الحاوية كيفية تجميع الفيديو والصوت والتوقيت والترجمة والبيانات الوصفية. ترتبط الطبقتان، لكن إحداهما لا تحل محل الأخرى. يتميز H.264 داخل MP4 بقابلية نقل واسعة لأن تنسيق الضغط وطريقة تغليفه يحظيان بتطبيقات ناضجة في المتصفحات والهواتف. وقد يعمل دفق H.264 نفسه داخل AVI أو MKV في تطبيق مكتبي، ثم يفشل كفيديو مضمّن في صفحة ويب أو داخل مشغل نظام الهاتف. وبالمثل، يرتبط VP9 طبيعيًا بحاوية WebM عند التوزيع للمتصفحات، بينما يؤدي وضعه في MOV إلى اقتران نادر يفتقر إلى التشغيل البيني الموثوق. تستطيع برامج الترميز الأحدث خفض استهلاك النطاق الترددي، لكن الكفاءة وحدها لا تجعل التنسيق عالميًا. يحظى H.265 بدعم قوي خصوصًا في بيئات Apple، أما في البيئات الأخرى فيعتمد أكثر على المتصفح والنظام والتراخيص والعتاد. ويستمر انتشار AV1، غير أن الهواتف القديمة والأجهزة التي تفتقر إلى فك ترميز مناسب قد تظل جزءًا مهمًا من جمهوركم.
خططوا للنسخ البديلة واختبارات الإنتاج
للوصول عمليًا إلى أوسع جمهور، استخدموا MP4 مع H.264 أصلًا أساسيًا. وعندما تبرر أهداف الجودة أو النطاق الترددي استخدام VP9 أو AV1 أو H.265، قدموا الترميز الأحدث مصدرًا إضافيًا بدل افتراض أن ملفًا متقدمًا واحدًا سيخدم الجميع. يستطيع مشغل الويب سرد عدة مصادر ليختار المتصفح التنسيق الذي يفهمه، ويمكن للتطبيقات اتخاذ قرار مشابه وفق المنصة وبرامج فك الترميز المتاحة. أنشئوا النسخة البديلة بترميز مستقل، وتأكدوا من أن الخادم يرسل نوع الوسائط الصحيح، ويدعم طلبات نطاق البايتات، ويسمح بالوصول المطلوب بين المصادر. اختبروا ملفات حقيقية، لأن المصفوفة لا ترى ملف التعريف أو المستوى أو تنسيق البكسل أو معلومات اللون أو برنامج ترميز الصوت أو البيانات الوصفية غير الصالحة. أدرجوا أجهزة iPhone وAndroid القديمة والحديثة، والمتصفحات المهمة وفق تحليلاتكم، ثم اختبروا بدء التشغيل والتنقل الزمني. أعيدوا التحقق عند تغيير سلم الترميز أو الحد الأدنى من إصدارات أنظمة التشغيل المدعومة.
حالات الاستخدام
اختيار تنسيق للتوزيع عبر الويب
قارنوا الحاوية وبرنامج الترميز المقترحين قبل إعداد مسار الترميز أو مصدر فيديو HTML.
التحقق من الوسائط المرفوعة
نبّهوا فرق النشر عندما يُرجح ألا يعمل الاقتران بثبات في المتصفحات ومشغلات الهاتف الأصلية.
فرض سياسة للنسخة البديلة
استخدموا قيمة الدعم الواسع في CI لاشتراط MP4/H.264 إلى جانب التنسيقات الحديثة الأعلى كفاءة.
الأسئلة الشائعة
هل تضمن النتيجة الواسعة التشغيل في كل مكان؟
لا. فهي تشير إلى تغطية قوية للتنسيق، لكن ملف التعريف والمستوى وعمق البت والصوت والتشفير والبيانات الوصفية وإصدار المتصفح تؤثر أيضًا.
لماذا تُفحص الحاوية وبرنامج الترميز كل على حدة؟
يضغط برنامج الترميز الفيديو، بينما تجمع الحاوية الدفق مع التوقيت والصوت والبيانات الوصفية. وقد تدعم منصة برنامجًا داخل حاوية دون أخرى.
ما النسخة البديلة الأكثر أمانًا؟
من بين الخيارات المتاحة، يعد MP4 مع H.264 البديل العام الأكثر موثوقية للمتصفحات وiOS وAndroid.
هل تفحص الأداة ملف الفيديو نفسه؟
لا. إنها تقيّم اسمي الحاوية وبرنامج الترميز اللذين تقدمونهما. استخدموا أداة للبيانات الوصفية لتحديد التدفقات في ملف موجود.
لماذا يعمل اقتران محدود على هاتفي؟
يعني محدود وجود دعم حقيقي، لكنه غير متسق بما يكفي بين المتصفحات وإصدارات الأنظمة والأجهزة كي يصنف واسعًا.
ما تكلفة الطلب؟
تكلف كل مطالبة API مقدار $0.002. ويستخدم التنفيذ داخل المتصفح منطق التوافق الحتمي نفسه.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/video/container-compatibility \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"container":"mp4","codec":"h264"}'const res = await fetch("https://api.kit.forhosting.com/video/container-compatibility", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"container": "mp4",
"codec": "h264"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/container-compatibility",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"container": "mp4",
"codec": "h264"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/container-compatibility", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"container":"mp4","codec":"h264"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"container":"mp4","codec":"h264"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/container-compatibility", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"container": "mp4",
"codec": "h264"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.container_compatibility",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |