تخطّ إلى المحتوى
TubePress — مجاني، مستضاف ذاتياً & مُصان باستمرار
الوسائط والترميز

الترميز

كيف يحوّل TubePress الملفات المرفوعة إلى صيغ جاهزة للويب باستخدام عمّال FFmpeg الموزّعين.

يحوّل الترميز الملف المُرفَع الواحد إلى عدة نسخ MP4 متوافقة مع الويب، مما يمنح المشاهدين قائمة بالجودة وتشغيلاً سريع البدء ومرمِّزاً موحداً بصرف النظر عمّا رُفع. كما يدمج ميزات اختيارية — علامات مائية ومقاطع مقدمة/خاتمة — ويبني صور إطارات التصفح المصغرة التي يستخدمها المشغل.

يتم تهيئة كل شيء هنا من خلال /admin/settings?tab=transcode، موزعاً على التبويبات الفرعية التنسيقات وقائمة الانتظار والخوادم والعلامة المائية والمقدمات والجدول الزمني. يمكن تشغيل الترميز على خادم CMS نفسه أو توزيعه على عمال مخصصين.

لماذا الترميز

قد يكون الملف المُرفَع الخام بأي دقة أو مرمِّز أو حاوية. يوحّد الترميز الملف إلى نسخ MP4/H.264 مع +faststart حتى يبدأ التشغيل قبل اكتمال تنزيل الملف، وينتج أحجاماً متعددة (مثل 720p و480p) حتى يتمكن المشغل من تقديم محدد للجودة وعرض ملفات أصغر للشاشات الأصغر. في نفس التمرير تُطبَّق العلامات المائية ومقاطع ما قبل/بعد التشغيل، إذ يجب ترميزها في كل نسخة.

خط أنابيب الترميز

عندما تكون الفيديو جاهزة للمعالجة، يضع TubePress وظيفة واحدة لكل إخراج في جدول transcode_jobs ويعالجها بالترتيب:

  1. قائمة الانتظار. يُنشأ عمل للدرجة المصدر كاملة الدقة ولكل تنسيق نشط أقل من ارتفاع المصدر، بالإضافة إلى وظيفة جدول زمني إذا كانت معاينات التصفح ممكّنة.
  2. الاستلام. يطالب عامل — هذا الخادم أو خادم بعيد — بالوظيفة المعلقة التالية، بدءاً من درجة المصدر.
  3. التنزيل. يسحب العامل البعيد المصدر عبر HTTP (رابط مباشر مُصادَق بمفتاح يتجاوز روابط الوسائط الموقّعة).
  4. الترميز. يُرمِّز FFmpeg النسخة، مطبّقاً القص والعلامة المائية والمقدمات حسب الإعدادات، ومُبلِّغاً عن نسبة التقدم أثناء التنفيذ.
  5. الرفع والاستجابة. يُرفع الناتج مجدداً في أجزاء وتُعلَّم الوظيفة باكتمالها عبر استجابة.

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

لا تُرمَّز مقاطع الفيديو المُضمَّنة أبداً. تدخل خط الأنابيب فقط الملفات المُرفَعة أو المستندة إلى URL؛ أما الفيديو التي تحتوي على كود تضمين فتُقدَّم مباشرةً من مصدرها.

النسخ والتنسيقات

تنسيقات الإخراج قابلة للتحرير بالكامل في تبويب التنسيقات ومُخزَّنة في جدول video_formats. لكل تنسيق اسم ولاحقة ملف (مثل _720p.mp4) ودقة مستهدفة وخيارات FFmpeg خام وعلامة الحفاظ على نسبة الأبعاد وتبديل نشاط. الإعدادات الافتراضية المدمجة هي:

التنسيقالدقة
720p1280 × 720
480p854 × 480
360p640 × 360

قاعدتان تضمنان الجودة. لا يُكبِّر TubePress الحجم أبداً: يُتخطى أي تنسيق بارتفاع مساوٍ لارتفاع المصدر أو أعلى منه. ويُحتفظ دائماً بأعلى جودة أصلية — إذا كانت علامة مائية أو قص نشطاً، فيُعاد ترميزه في نسخة مصدر كاملة الدقة (تظهر بنجمة في قائمة الانتظار)، وإلا يُقدَّم ملف المصدر كما هو. يمكن لخيار بداية القص (0–300 ثانية) حذف الثواني الأولى من كل فيديو؛ وكالعلامة المائية، يُطبَّق على كل تنسيق بما فيه المصدر.

قائمة انتظار الوظائف

يجمّع تبويب قائمة الانتظار (/admin/settings?tab=transcode&sub=queue) الوظائف حسب الفيديو ويتيح التصفية حسب الكل / معلق / معالجة / مكتمل / فاشل. تعرض كل فيديو شارة لكل درجة — درجة المصدر المميّزة بنجمة، ثم كل دقة، ثم TIMELINE — ملوّنة حسب حالة الوظيفة:

قيد الانتظار
في قائمة الانتظار، بانتظار عامل متاح.
معالجة
نشط، مع مرحلة مباشرة (تنزيل أو ترميز أو رفع) ونسبة مئوية.
مكتمل
النسخة منتجة ومُخزَّنة.
فاشل
نفدت محاولات إعادة المحاولة في الوقت الحالي؛ لا يزال الاسترداد التلقائي مطبّقاً (أدناه).

تبثّ وحدة التحكم لكل فيديو (أيقونة الطرفية) قائمة الوظائف المباشرة والعامل المسؤول عن كل درجة والوقت المنقضي وأي رسالة خطأ. يُعيد زر إعادة محاولة الوظائف الفاشلة وضع كل ما هو فاشل حالياً في قائمة الانتظار بنقرة واحدة.

خوادم الترميز البعيدة

الترميز مكثف على المعالج، لذا يمكنك نقله خارج خادم الويب. في تبويب الخوادم، يحدد هذا الخادم عدد وظائف FFmpeg التي تعمل محلياً في آنٍ واحد (1–4، أو 0 لاستخدام العمال البعيدين فقط) ويتيح تجاوز مسار FFmpeg. وفيما يلي يمكنك تسجيل عمال بعيدين؛ تتوزع الوظائف تلقائياً على الأقل تحميلاً، ولكل منهم حد الوظائف المتزامنة القصوى (قاعدة جيدة: وظيفة واحدة لكل نواتَي معالج).

  1. أضف الخادم. انقر إضافة خادم، أعطه اسماً ورابطاً مثل http://YOUR-IP:8090، ثم احفظ. يظهر مفتاح API وأمر البدء فوراً.
  2. ثبّت FFmpeg و PHP. على جهاز العامل نفّذ sudo apt install ffmpeg php-cli php-curl.
  3. نشر العامل. نزّل transcode-worker.php (من /api/transcode-worker-download أو رابط wget مؤقت)، ارفعه، وافتح المنفذ بـsudo ufw allow 8090/tcp.
  4. تشغيله. شغّل العامل بمفتاحك:
php transcode-worker.php --port=8090 --key=YOUR_API_KEY
  1. التحقق. انقر فحص؛ يُبلِّغ العامل السليم بـمتصل مع المُشفِّر المكتشف واستخدام المعالج/وحدة الرسوميات المباشر.

يُكتشف تسريع GPU (NVIDIA أو AMD أو Intel أو Apple) ويُستخدم تلقائياً. يسحب العامل المصدر ويُرمِّزه ويُبلِّغ عن التقدم ويرفع النتائج في أجزاء إلى CMS — الرفع المجزّأ هو ما يبقي كل طلب ضمن حد 100 MB الخاص بـCloudflare. للمضيفين دون إشراف، يتضمن دليل الإعداد وحدة systemd حتى يُعيد العامل التشغيل عند الإقلاع.

احمِ العامل في الإنتاج. يتحدث العامل بـHTTP العادي على منفذه. ضع nginx مع HTTPS أمامه، وقيّد المنفذ بخادم CMS الخاص بك.

المراقبة وإعادة المحاولة

النظام مبني بحيث لا يُهمَل أي فيديو بصمت. تُعاد محاولة الترميز الفاشل تلقائياً مع تأخير متزايد — من نحو نصف دقيقة إلى بضع ساعات — لأن معظم الأعطال عابرة (CDN بطيء أو غير موثوق). فوق ذلك، تُعيد مهمة استرداد كل ساعة وضع أي وظيفة لا تزال فاشلة في قائمة الانتظار، فتستمر المحاولات حتى تُنجز النسخة. لا يتطلب الأمر نقرة يدوية، وإن كان زر إعادة محاولة الوظائف الفاشلة متاحاً إذا أردت إجبارها.

إذا فشلت درجة المصدر نهائياً، تُلغى وظائف التنسيقات الفرعية المعتمدة عليها (لا يمكنها المتابعة بدون مصدر) وتُعلَّم الفيديو بـخطأ؛ سيظل الاسترداد يحاول إعادتها. حين تكتمل درجة المصدر أخيراً، تُنشر الفيديو تلقائياً.

المتطلبات

يجب أن يكون FFmpeg متاحاً أينما يعمل الترميز:

  • المعالجة المحلية: ثبّت FFmpeg على خادم CMS (sudo apt install ffmpeg). تعرض صفحة الترميز الإصدار المكتشف عند توفّره.
  • المعالجة البعيدة: يحتاج كل عامل إلى FFmpeg وكذلك php-cli وphp-curl، ونواتَي معالج على الأقل وذاكرة وصول عشوائي 2 GB، ومنفذ عامل مفتوح.
بدون FFmpeg لا يوجد ترميز. إذا كان FFmpeg غائباً محلياً ولا يوجد خادم بعيد متصل، فلا يمكن تمكين تبديل الترميز — ثبّت FFmpeg أو أضف عاملاً أولاً.

الخطوات التالية

لا تزال عالقاً؟

افتح تذكرة من لوحة التحكم وسيساعدك فريقنا.

جرّب العرض التجريبي المباشر → تحميل TubePress →