نظام قوالب Rendervid - قوالب JSON، المتغيرات، الرسوم المتحركة والانتقالات

Rendervid Video Rendering Templates Open Source

Rendervid هو محرك عرض فيديو برمجي مبني حول نظام قوالب تصريحي قائم على JSON. بدلاً من تحرير الفيديو يدوياً في خط زمني، تقوم بتعريف كل جانب من جوانب الفيديو الخاص بك – المشاهد، الطبقات، الرسوم المتحركة، الانتقالات، وإعدادات الإخراج – في مستند JSON واحد. هذا النهج يجعل القوالب عديمة الحالة، قابلة للتحكم في الإصدار، وقابلة للتوليد بواسطة الآلة، مما يفتح الباب أمام إنتاج الفيديو المدعوم بالذكاء الاصطناعي، وخطوط أنابيب العرض الدفعي، وسير عمل المحتوى الآلي بالكامل.

يغطي هذا الدليل نظام قوالب Rendervid الكامل من الأعلى إلى الأسفل: التكوين على مستوى الجذر، إعدادات الإخراج، نظام المتغيرات والإدخال، المشاهد والتركيب، جميع أنواع الطبقات الثمانية، أكثر من 40 إعداد مسبق للرسوم المتحركة، أكثر من 30 دالة تسهيل، 17 انتقال للمشاهد، المؤثرات البصرية، تكوين الخطوط، وتنسيقات الإخراج.


نظرة عامة على بنية القالب

كل قالب Rendervid هو كائن JSON مع مجموعة محددة جيداً من الحقول على مستوى الجذر. إليك هيكل القالب الكامل:

{
  "name": "my-template",
  "output": { ... },
  "inputs": [ ... ],
  "composition": {
    "scenes": [ ... ]
  },
  "fonts": { ... },
  "customComponents": { ... },
  "defaults": { ... }
}

حقول مستوى الجذر

الحقلالنوعمطلوبالوصف
namestringنعممعرف القالب القابل للقراءة
outputobjectنعمتكوين إخراج الفيديو أو الصورة (الأبعاد، معدل الإطارات، المدة، التنسيق)
inputsarrayلاتعريفات الإدخال الديناميكية لمتغيرات القالب
compositionobjectنعميحتوي على مصفوفة scenes التي تحدد كل المحتوى المرئي
fontsobjectلاتصريحات Google Fonts والخطوط المخصصة
customComponentsobjectلامكونات الطبقة المخصصة المسجلة
defaultsobjectلاالقيم الافتراضية المطبقة على جميع الطبقات ما لم يتم تجاوزها

حقل name مخصص لأغراض تنظيمية – لا يؤثر على العرض. حقلا output و composition هما الركيزتان الأساسيتان اللتان يجب أن يحتوي عليهما كل قالب. كل شيء آخر اختياري ولكنه يفتح قدرات قوية.


تكوين الإخراج

كائن output يتحكم في الملف المعروض النهائي: تنسيقه، أبعاده، معدل الإطارات، المدة، ولون الخلفية.

{
  "output": {
    "type": "video",
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 10,
    "backgroundColor": "#000000"
  }
}

حقول الإخراج

الحقلالنوعالافتراضيالوصف
typestring"video"نوع الإخراج: "video" أو "image"
widthnumber1920العرض بالبكسل (حتى 7680 لـ 8K)
heightnumber1080الارتفاع بالبكسل (حتى 4320 لـ 8K)
fpsnumber30الإطارات في الثانية (1-120)
durationnumberالمدة الإجمالية بالثواني
backgroundColorstring"#000000"لون الخلفية بتنسيق hex، RGB، أو اسم لون

الإعدادات المسبقة الشائعة

إليك تكوينات الإخراج للتنسيقات الشائعة:

1080p Full HD (YouTube، الاستخدام العام):

{
  "type": "video",
  "width": 1920,
  "height": 1080,
  "fps": 30,
  "duration": 60,
  "backgroundColor": "#000000"
}

Instagram Reels / TikTok (9:16 عمودي):

{
  "type": "video",
  "width": 1080,
  "height": 1920,
  "fps": 30,
  "duration": 30,
  "backgroundColor": "#FFFFFF"
}

4K UHD:

{
  "type": "video",
  "width": 3840,
  "height": 2160,
  "fps": 60,
  "duration": 120,
  "backgroundColor": "#000000"
}

Open Graph / صورة المشاركة الاجتماعية:

{
  "type": "image",
  "width": 1200,
  "height": 630,
  "backgroundColor": "#1a1a2e"
}

بالنسبة لإخراج الصور، يتم تجاهل fps و duration – يلتقط العارض إطاراً واحداً.


متغيرات القالب والمدخلات

نظام الإدخال والمتغيرات هو ما يجعل قوالب Rendervid قابلة لإعادة الاستخدام. بدلاً من ترميز النص أو الألوان أو عناوين URL في القالب الخاص بك، تقوم بتعريف مدخلات والإشارة إليها باستخدام صيغة {{variableName}} في أي مكان في القالب.

تعريف المدخلات

يتم تصريح المدخلات في مصفوفة inputs على المستوى الأعلى. كل كائن إدخال يصف متغيراً واحداً:

{
  "inputs": [
    {
      "key": "title",
      "type": "string",
      "label": "Title",
      "description": "Main title text displayed in the intro scene",
      "required": true,
      "default": "Hello World"
    },
    {
      "key": "brandColor",
      "type": "color",
      "label": "Brand Color",
      "description": "Primary brand color used for backgrounds and accents",
      "required": false,
      "default": "#FF5733"
    },
    {
      "key": "showSubtitle",
      "type": "boolean",
      "label": "Show Subtitle",
      "description": "Toggle subtitle visibility",
      "required": false,
      "default": true
    }
  ]
}

مرجع حقول الإدخال

الحقلالنوعمطلوبالوصف
keystringنعممعرف فريد يستخدم في مراجع {{key}}
typestringنعمنوع البيانات: string، number، boolean، color، url، array
labelstringلاتسمية قابلة للقراءة لعرض واجهة المستخدم
descriptionstringلاشرح لما يتحكم فيه هذا الإدخال
requiredbooleanلاما إذا كان يجب توفير الإدخال في وقت العرض
defaultanyلاقيمة احتياطية إذا لم يتم توفير إدخال

أنواع المدخلات

  • string – نص حر. يستخدم للعناوين والأوصاف والتسميات التوضيحية أو أي محتوى نصي.
  • number – قيم رقمية. يستخدم للمدد والأحجام والمواضع ومستويات العتامة أو الأعداد.
  • boolean – مفاتيح صح/خطأ. يستخدم للرؤية الشرطية أو علامات الميزات أو مفاتيح التشغيل/الإيقاف.
  • color – قيم الألوان بتنسيق hex (#FF5733)، RGB (rgb(255,87,51))، أو تنسيق مسمى. يستخدم للخلفيات وألوان النص والتمييزات.
  • url – سلاسل عناوين URL صالحة. يستخدم لمصادر الصور ومصادر الفيديو والروابط وعناوين URL للخطوط.
  • array – قوائم القيم. يستخدم لمعارض الصور وقوائم النصوص ومحتوى الشرائح أو أي بيانات متكررة.

استخدام المتغيرات في القالب

بمجرد تعريف المدخلات، قم بالإشارة إليها في أي مكان في القالب باستخدام أقواس معقوفة مزدوجة:

{
  "type": "text",
  "text": "{{title}}",
  "style": {
    "color": "{{brandColor}}",
    "fontSize": "{{titleSize}}"
  }
}

يتم حل المتغيرات في وقت العرض. عندما تستدعي Rendervid API أو CLI، تمرر القيم الفعلية:

{
  "title": "Summer Sale 2026",
  "brandColor": "#E63946",
  "titleSize": 72
}

مثال إدخال كامل

إليك قالب كامل مع أنواع إدخال متعددة تعمل معاً:

{
  "name": "product-promo",
  "output": {
    "type": "video",
    "width": 1080,
    "height": 1080,
    "fps": 30,
    "duration": 15
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Product Name",
      "description": "Name of the product being promoted",
      "required": true,
      "default": "Product"
    },
    {
      "key": "price",
      "type": "number",
      "label": "Price",
      "description": "Product price displayed in the video",
      "required": true,
      "default": 29.99
    },
    {
      "key": "productImage",
      "type": "url",
      "label": "Product Image URL",
      "description": "URL to the product image",
      "required": true
    },
    {
      "key": "accentColor",
      "type": "color",
      "label": "Accent Color",
      "description": "Color used for CTA buttons and highlights",
      "required": false,
      "default": "#FF6B35"
    },
    {
      "key": "showBadge",
      "type": "boolean",
      "label": "Show Sale Badge",
      "description": "Whether to display the sale badge overlay",
      "required": false,
      "default": false
    },
    {
      "key": "features",
      "type": "array",
      "label": "Product Features",
      "description": "List of feature bullet points",
      "required": false,
      "default": ["Feature 1", "Feature 2", "Feature 3"]
    }
  ],
  "composition": {
    "scenes": [
      {
        "name": "hero",
        "duration": 15,
        "layers": [
          {
            "type": "image",
            "src": "{{productImage}}",
            "position": { "x": 540, "y": 400 },
            "size": { "width": 600, "height": 600 }
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "style": { "fontSize": 48, "fontWeight": 700, "color": "#FFFFFF" },
            "position": { "x": 540, "y": 80 }
          },
          {
            "type": "text",
            "text": "${{price}}",
            "style": { "fontSize": 64, "fontWeight": 900, "color": "{{accentColor}}" },
            "position": { "x": 540, "y": 900 }
          }
        ]
      }
    ]
  }
}

يمكن لهذا القالب الواحد توليد الآلاف من مقاطع الفيديو الفريدة للمنتجات ببساطة عن طريق تغيير قيم الإدخال في وقت العرض – دون الحاجة إلى تعديلات على القالب.


المشاهد والتركيب

كائن composition هو المكان الذي يوجد فيه محتوى الفيديو الخاص بك. يحتوي على مصفوفة scenes، وكل مشهد يمثل قطعة متميزة من الفيديو مع مدته وطبقاته وانتقاله الخاص.

{
  "composition": {
    "scenes": [
      {
        "name": "intro",
        "duration": 5,
        "transition": {
          "type": "fade",
          "duration": 1
        },
        "layers": [ ... ]
      },
      {
        "name": "main-content",
        "duration": 20,
        "transition": {
          "type": "slide",
          "duration": 0.5,
          "direction": "left"
        },
        "layers": [ ... ]
      },
      {
        "name": "outro",
        "duration": 5,
        "layers": [ ... ]
      }
    ]
  }
}

حقول المشهد

الحقلالنوعمطلوبالوصف
namestringلامعرف للمشهد (للقراءة وتصحيح الأخطاء)
durationnumberنعمطول المشهد بالثواني
transitionobjectلاتأثير الانتقال عند الدخول إلى هذا المشهد من المشهد السابق
layersarrayنعممصفوفة مرتبة لكائنات الطبقة المعروضة من الأسفل إلى الأعلى

تُشغل المشاهد بالتسلسل. إجمالي مدة الفيديو هو مجموع جميع مدد المشاهد (ناقص أي تداخل انتقالي). يتم عرض الطبقات داخل المشهد بترتيب المصفوفة – الطبقة الأولى تقع في أسفل المكدس المرئي، والطبقة الأخيرة تقع في الأعلى.

إذا لم يتم تحديد انتقال، يستخدم المشهد cut قاسٍ افتراضياً.


نظام الطبقات

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

خصائص الطبقة المشتركة

كل طبقة، بغض النظر عن النوع، تدعم هذه الخصائص الأساسية:

{
  "position": { "x": 100, "y": 100 },
  "size": { "width": 500, "height": 200 },
  "rotation": 0,
  "scale": { "x": 1, "y": 1 },
  "anchor": { "x": 0.5, "y": 0.5 },
  "opacity": 1,
  "blendMode": "normal",
  "from": 0,
  "duration": -1,
  "filters": [],
  "style": {},
  "className": ""
}
الخاصيةالنوعالافتراضيالوصف
positionobject{x: 0, y: 0}إحداثيات X/Y بالبكسل
sizeobjectالعرض والارتفاع بالبكسل
rotationnumber0زاوية الدوران بالدرجات
scaleobject{x: 1, y: 1}مضاعف القياس لمحاور X وY
anchorobject{x: 0.5, y: 0.5}نقطة الارتساء للتحويلات (نطاق 0-1، 0.5 = المركز)
opacitynumber1عتامة الطبقة (0 = شفاف، 1 = معتم)
blendModestring"normal"وضع المزج CSS للتركيب
fromnumber0وقت البدء بالثواني (نسبة إلى بداية المشهد)
durationnumber-1مدة الطبقة بالثواني (-1 = مدة المشهد الكاملة)
filtersarray[]مصفوفة كائنات المرشحات البصرية
styleobject{}خصائص نمط إضافية شبيهة بـ CSS
classNamestring""اسم فئة CSS للتنسيق المخصص

أنواع الطبقات الثمانية

  1. text – يعرض نصاً منسقاً مع تحكم كامل في الخط والحجم واللون والمحاذاة وارتفاع السطر والتباعد بين الحروف وظلال النص والمزيد. يدعم صيغة {{variable}} للمحتوى الديناميكي.

  2. image – يعرض صوراً ثابتة من عناوين URL أو مسارات محلية. يدعم الاقتصاص وأوضاع object-fit ونصف قطر الحدود ومرشحات الصور.

  3. video – يضمن مقاطع الفيديو داخل مشهد. يدعم القص (البداية/النهاية) والتحكم في مستوى الصوت ومعدل التشغيل والتكرار والكتم.

  4. shape – يعرض أشكالاً هندسية بدائية: مستطيلات ودوائر وأشكال بيضاوية وخطوط ومضلعات. يدعم التعبئة والحد ونصف قطر الحدود والتدرجات والظلال.

  5. audio – يضيف مسارات صوتية إلى مشهد. يدعم مستوى الصوت والظهور/الاختفاء التدريجي والقص والتكرار. طبقات الصوت ليس لها تمثيل مرئي.

  6. group – طبقة حاوية تحمل طبقات فرعية. تسمح المجموعات بتطبيق التحويلات والرسوم المتحركة والتأثيرات على طبقات متعددة في وقت واحد.

  7. lottie – يعرض رسوم متحركة Lottie/Bodymovin JSON. يدعم سرعة التشغيل والتكرار والتحكم في القطع لتشغيل نطاقات إطارات محددة.

  8. custom – يحمل مكونات مخصصة مسجلة محددة في حقل customComponents. استخدم هذا لقوالب طبقات قابلة لإعادة الاستخدام ومعلمة.

للحصول على تكوين تفصيلي لكل نوع طبقة، بما في ذلك جميع الخصائص المتاحة وأمثلة التعليمات البرمجية، راجع مرجع مكونات Rendervid .


نظام الرسوم المتحركة

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

تكوين الرسوم المتحركة

{
  "type": "text",
  "text": "Animated Title",
  "animations": [
    {
      "type": "entrance",
      "effect": "fadeInUp",
      "duration": 30,
      "delay": 10,
      "easing": "easeOutCubic",
      "loop": 0,
      "alternate": false
    }
  ]
}

حقول الرسوم المتحركة

الحقلالنوعالافتراضيالوصف
typestringفئة الرسوم المتحركة: entrance، exit، emphasis، keyframe
effectstringاسم الإعداد المسبق (مثل fadeInUp، pulse، bounceOut)
durationnumber30المدة بالإطارات
delaynumber0التأخير قبل بدء الرسوم المتحركة، بالإطارات
easingstring"ease"اسم دالة التسهيل
loopnumber0عدد التكرارات (0 = لا تكرار، -1 = لا نهائي)
alternatebooleanfalseعكس الاتجاه في التكرارات البديلة

رسوم متحركة الدخول (20 إعداداً مسبقاً)

تتحكم رسوم متحركة الدخول في كيفية ظهور الطبقة على الشاشة. تعمل مرة واحدة عند الوصول إلى وقت بدء الطبقة.

الإعداد المسبقالوصف
fadeInتلاشي بسيط للعتامة من 0 إلى 1
fadeInUpيتلاشى أثناء الانزلاق لأعلى
fadeInDownيتلاشى أثناء الانزلاق لأسفل
fadeInLeftيتلاشى أثناء الانزلاق من اليسار
fadeInRightيتلاشى أثناء الانزلاق من اليمين
slideInUpينزلق من أسفل الإطار
slideInDownينزلق من أعلى الإطار
slideInLeftينزلق من الحافة اليسرى
slideInRightينزلق من الحافة اليمنى
scaleInيتوسع من 0 إلى الحجم الكامل
zoomInيقترب من مقياس أصغر مع تجاوز طفيف
rotateInيدور إلى الموضع من زاوية إزاحة
bounceInيرتد إلى الموضع مع تجاوز مرن
flipInXقلب ثلاثي الأبعاد على محور X (قلب أفقي)
flipInYقلب ثلاثي الأبعاد على محور Y (قلب عمودي)
typewriterتظهر الأحرف واحداً تلو الآخر (طبقات النص)
revealLeftكشف القناع ينزلق من اليسار
revealRightكشف القناع ينزلق من اليمين
revealUpكشف القناع ينزلق لأعلى
revealDownكشف القناع ينزلق لأسفل

رسوم متحركة الخروج (9 إعدادات مسبقة)

تتحكم رسوم متحركة الخروج في كيفية اختفاء الطبقة. تعمل في نهاية مدة الطبقة.

الإعداد المسبقالوصف
fadeOutتلاشي بسيط للعتامة من 1 إلى 0
slideOutUpينزلق عبر أعلى الإطار
slideOutDownينزلق عبر أسفل الإطار
scaleOutيتقلص من الحجم الكامل إلى 0
zoomOutيبتعد إلى مقياس أصغر ويتلاشى
rotateOutيدور خارج الموضع إلى زاوية إزاحة
bounceOutيرتد للخارج مع تجاوز مرن قبل الاختفاء
flipOutXقلب ثلاثي الأبعاد للخارج على محور X
flipOutYقلب ثلاثي الأبعاد للخارج على محور Y

رسوم متحركة التأكيد (10 إعدادات مسبقة)

تجذب رسوم متحركة التأكيد الانتباه إلى طبقة بينما تظل مرئية. تعمل بشكل جيد مع التكرار.

الإعداد المسبقالوصف
pulseنبض مقياس إيقاعي (ينمو ويتقلص)
shakeاهتزاز أفقي سريع
bounceحركة ارتداد عمودية
swingتأرجح دوراني يشبه البندول
wobbleتمايل خارج المحور يجمع بين الدوران والترجمة
flashومضات عتامة سريعة
rubberBandتأثير تمدد ومفاجأة مرن
heartbeatإيقاع نبضة قلب مزدوجة
floatحركة طفو لطيفة لأعلى ولأسفل
spinدوران مستمر بزاوية 360 درجة

رسوم متحركة الإطار الرئيسي

للتحكم الإبداعي الكامل، تتيح لك رسوم متحركة الإطار الرئيسي تحديد تغييرات خصائص مخصصة إطاراً بإطار:

{
  "type": "keyframe",
  "keyframes": [
    { "frame": 0, "opacity": 0, "x": -100 },
    { "frame": 15, "opacity": 1, "x": 0 },
    { "frame": 30, "opacity": 1, "x": 0 },
    { "frame": 45, "opacity": 0, "x": 100 }
  ],
  "easing": "easeInOutCubic"
}

يمكن لرسوم متحركة الإطار الرئيسي تحريك أي خاصية رقمية: opacity، x، y، rotation، scaleX، scaleY، والمزيد. كل إطار رئيسي يحدد رقم إطار وقيم الخصائص في ذلك الإطار. يقوم العارض بالاستيفاء بين الإطارات الرئيسية باستخدام دالة التسهيل المحددة.

دمج الرسوم المتحركة

يمكن أن تحتوي طبقة واحدة على رسوم متحركة متعددة. على سبيل المثال، رسوم متحركة دخول متبوعة بحلقة تأكيد، ثم رسوم متحركة خروج:

{
  "animations": [
    {
      "type": "entrance",
      "effect": "fadeInUp",
      "duration": 20,
      "easing": "easeOutCubic"
    },
    {
      "type": "emphasis",
      "effect": "pulse",
      "duration": 30,
      "delay": 20,
      "loop": -1
    },
    {
      "type": "exit",
      "effect": "fadeOut",
      "duration": 15,
      "easing": "easeInCubic"
    }
  ]
}

دوال التسهيل

تتحكم دوال التسهيل في معدل التغيير أثناء الرسوم المتحركة، مما يحدد ما إذا كانت الحركة تبدو خطية أو سلسة أو مرتدة أو مرنة. يتضمن Rendervid أكثر من 30 دالة تسهيل مدمجة.

التسهيل الأساسي

الدالةالوصف
linearسرعة ثابتة من البداية إلى النهاية، بدون تسارع
easeتسهيل افتراضي شبيه بـ CSS مع تسارع وتباطؤ لطيف
easeInيبدأ ببطء، يتسارع نحو النهاية
easeOutيبدأ بسرعة، يتباطأ نحو النهاية
easeInOutيتسارع في النصف الأول، يتباطأ في الثاني

التسهيل التربيعي

الدالةالوصف
easeInQuadتسارع تربيعي (t^2)
easeOutQuadتباطؤ تربيعي
easeInOutQuadتسارع تربيعي ثم تباطؤ

التسهيل التكعيبي

الدالةالوصف
easeInCubicتسارع تكعيبي (t^3) – أكثر وضوحاً من التربيعي
easeOutCubicتباطؤ تكعيبي – توقف سلس وطبيعي
easeInOutCubicتسهيل تكعيبي للدخول والخروج – الأكثر استخداماً

التسهيل الرباعي

الدالةالوصف
easeInQuartتسارع رباعي (t^4)
easeOutQuartتباطؤ رباعي
easeInOutQuartتسهيل رباعي للدخول والخروج

التسهيل الخماسي

الدالةالوصف
easeInQuintتسارع خماسي (t^5) – بداية حادة جداً
easeOutQuintتباطؤ خماسي – توقف حاد جداً
easeInOutQuintتسهيل خماسي للدخول والخروج

التسهيل الجيبي

الدالةالوصف
easeInSineتسارع قائم على الجيب – منحنى التسهيل الأكثر لطفاً
easeOutSineتباطؤ قائم على الجيب
easeInOutSineتسهيل جيبي للدخول والخروج

التسهيل الأسي

الدالةالوصف
easeInExpoتسارع أسي – مسطح تقريباً ثم حاد
easeOutExpoتباطؤ أسي – حاد ثم مسطح تقريباً
easeInOutExpoتسهيل أسي للدخول والخروج

التسهيل الدائري

الدالةالوصف
easeInCircمنحنى تسارع دائري
easeOutCircمنحنى تباطؤ دائري
easeInOutCircتسهيل دائري للدخول والخروج

تسهيل الرجوع

الدالةالوصف
easeInBackيسحب للخلف قليلاً قبل التسارع للأمام (توقع)
easeOutBackيتجاوز الهدف ثم يستقر مرة أخرى (تجاوز)
easeInOutBackتوقع عند الدخول، تجاوز عند الخروج

التسهيل المرن

الدالةالوصف
easeInElasticتمايل مرن عند التسارع – لف يشبه الزنبرك
easeOutElasticتمايل مرن عند التباطؤ – مفاجأة تشبه الزنبرك
easeInOutElasticمرن على كلا الطرفين

تسهيل الارتداد

الدالةالوصف
easeInBounceتأثير ارتداد عند الدخول – مثل كرة سقطت بالعكس
easeOutBounceتأثير ارتداد عند الخروج – مثل كرة تصطدم بالأرض
easeInOutBounceارتداد على كلا الطرفين

اختيار التسهيل المناسب

  • عناصر واجهة المستخدم والنص: easeOutCubic أو easeOutQuart لمداخل ذات شعور طبيعي
  • حركة جذب الانتباه: easeOutElastic أو easeOutBack لتجاوز مرح
  • تكرار سلس: easeInOutSine لحركة لطيفة ومستمرة
  • كشف درامي: easeInExpo للبناء، easeOutExpo لتوقفات سريعة
  • محاكاة فيزيائية: easeOutBounce لتأثيرات تشبه الجاذبية

انتقالات المشاهد

تتحكم الانتقالات في كيفية تدفق مشهد إلى التالي. يوفر Rendervid 17 نوعاً من الانتقالات تتراوح من القطع البسيط إلى التأثيرات السينمائية ثلاثية الأبعاد.

تكوين الانتقال

{
  "name": "scene-two",
  "duration": 10,
  "transition": {
    "type": "fade",
    "duration": 1,
    "direction": "left"
  },
  "layers": [ ... ]
}

يتم وضع كائن transition على المشهد الوارد (المشهد الذي يتم الانتقال إليه). تنطبق خاصية direction فقط على الانتقالات الاتجاهية مثل slide و wipe و push.

جميع أنواع الانتقالات الـ 17

الانتقالالوصف
cutتبديل فوري بدون تأثير بصري (افتراضي)
fadeتلاشي متقاطع بين المشاهد – المشهد الخارج يتلاشى بينما يتلاشى المشهد الوارد
zoomيقترب من المشهد الخارج بينما يظهر المشهد الوارد
slideالمشهد الوارد ينزلق فوق المشهد الخارج من اتجاه قابل للتكوين (يسار، يمين، أعلى، أسفل)
wipeمسح بحافة صلبة يكشف المشهد الوارد، يتحرك عبر الإطار في الاتجاه المحدد
pushالمشهد الوارد يدفع المشهد الخارج خارج الشاشة في الاتجاه المحدد
rotateالمشهد الخارج يدور بعيداً بينما يدور المشهد الوارد
flipانتقال قلب ثلاثي الأبعاد – الإطار يقلب مثل بطاقة للكشف عن المشهد التالي
blurالمشهد الخارج يتشوش بينما يتضح المشهد الوارد
circleقناع دائري يتوسع من المركز (أو نقطة محددة) للكشف عن المشهد التالي
glitchتأثير تشويه رقمي مع انحراف لوني وإزاحة
dissolveحل على مستوى البكسل حيث تنتقل البكسلات الفردية عشوائياً بين المشاهد
cubeدوران مكعب ثلاثي الأبعاد – المشاهد على وجوه متجاورة لمكعب دوار
swirlتشويه حلزوني يدور المشهد الخارج إلى المشهد الوارد
diagonal-wipeمسح بحافة صلبة قطري يتحرك من زاوية إلى الزاوية المقابلة
irisقزحية دائرية تفتح أو تغلق مثل فتحة الكاميرا
crosszoomكلا المشهدين يقتربان في وقت واحد – الخارج يقترب، والوارد يبتعد

أمثلة الانتقالات

تلاشي سينمائي مع تلاشي متقاطع طويل:

{
  "transition": {
    "type": "fade",
    "duration": 2
  }
}

انزلاق من اليمين (شائع للمحتوى المتسلسل):

{
  "transition": {
    "type": "slide",
    "duration": 0.5,
    "direction": "right"
  }
}

دوران مكعب ثلاثي الأبعاد (شعور ديناميكي وحديث):

{
  "transition": {
    "type": "cube",
    "duration": 1
  }
}

تأثير خلل (نشيط، تقني متقدم):

{
  "transition": {
    "type": "glitch",
    "duration": 0.3
  }
}

المؤثرات البصرية

تدعم طبقات Rendervid مجموعة من المؤثرات البصرية من خلال المرشحات وأوضاع المزج والظلال والتحويلات.

المرشحات

يتم تطبيق المرشحات عبر مصفوفة filters على أي طبقة. كل مرشح هو كائن مع type و value:

{
  "filters": [
    { "type": "blur", "value": 5 },
    { "type": "brightness", "value": 1.2 },
    { "type": "contrast", "value": 1.1 },
    { "type": "grayscale", "value": 0.5 },
    { "type": "saturate", "value": 1.5 }
  ]
}
المرشحنطاق القيمةالوصف
blur0+ (بكسل)تشويش غاوسي – القيم الأعلى تنتج مزيداً من التشويش
brightness0+ (مضاعف)0 = أسود، 1 = عادي، 2 = سطوع مزدوج
contrast0+ (مضاعف)0 = رمادي، 1 = عادي، 2 = تباين مزدوج
grayscale0-10 = لون كامل، 1 = غير مشبع بالكامل
hue-rotate0-360 (درجات)يدور الألوان حول عجلة الألوان
invert0-10 = عادي، 1 = ألوان معكوسة بالكامل
saturate0+ (مضاعف)0 = غير مشبع، 1 = عادي، 2 = تشبع مزدوج
sepia0-10 = عادي، 1 = نغمة بنية كاملة

أوضاع المزج

تتحكم خاصية blendMode في كيفية تركيب طبقة مع الطبقات الموجودة تحتها:

{
  "type": "shape",
  "blendMode": "multiply",
  "opacity": 0.8
}

أوضاع المزج المدعومة: normal، multiply، screen، overlay، darken، lighten، color-dodge، color-burn، hard-light، soft-light، difference، exclusion، hue، saturation، color، luminosity.

الظلال

تدعم طبقات النص والأشكال تأثيرات الظل من خلال خاصية style:

{
  "style": {
    "shadow": {
      "color": "rgba(0, 0, 0, 0.5)",
      "offsetX": 4,
      "offsetY": 4,
      "blur": 10
    }
  }
}

دمج التأثيرات

يمكن دمج المرشحات وأوضاع المزج والعتامة والظلال جميعها على طبقة واحدة للحصول على معالجات بصرية متطورة:

{
  "type": "image",
  "src": "{{backgroundImage}}",
  "opacity": 0.7,
  "blendMode": "overlay",
  "filters": [
    { "type": "blur", "value": 3 },
    { "type": "brightness", "value": 0.8 }
  ],
  "style": {
    "shadow": {
      "color": "rgba(0, 0, 0, 0.3)",
      "offsetX": 0,
      "offsetY": 10,
      "blur": 20
    }
  }
}

تكوين الخطوط

يدعم Rendervid كلاً من Google Fonts (أكثر من 100 عائلة مدمجة) والخطوط المخصصة المحملة من عناوين URL خارجية.

Google Fonts

صرح عن Google Fonts في مصفوفة fonts.google:

{
  "fonts": {
    "google": [
      { "family": "Roboto", "weights": [400, 700] },
      { "family": "Open Sans", "weights": [300, 400, 600, 700] },
      { "family": "Montserrat", "weights": [400, 500, 700, 900] },
      { "family": "Playfair Display", "weights": [400, 700] }
    ]
  }
}

كل كائن خط يتطلب:

الحقلالنوعالوصف
familystringاسم عائلة Google Font (مطابقة دقيقة مطلوبة)
weightsarrayمصفوفة الأوزان الرقمية للتحميل (100-900)

أوزان الخطوط الشائعة: 100 (رفيع)، 200 (رفيع جداً)، 300 (خفيف)، 400 (عادي)، 500 (متوسط)، 600 (شبه عريض)، 700 (عريض)، 800 (عريض جداً)، 900 (أسود).

الخطوط المخصصة

حمّل الخطوط من عناوين URL خارجية باستخدام مصفوفة fonts.custom:

{
  "fonts": {
    "custom": [
      {
        "family": "MyBrandFont",
        "src": "https://example.com/fonts/brand-font.woff2",
        "weight": 400,
        "style": "normal"
      },
      {
        "family": "MyBrandFont",
        "src": "https://example.com/fonts/brand-font-bold.woff2",
        "weight": 700,
        "style": "normal"
      }
    ]
  }
}

تنسيقات الخطوط المدعومة: WOFF2 (موصى به لأصغر حجم ملف)، WOFF، TTF، وOTF.

استخدام الخطوط في الطبقات

أشر إلى الخطوط المصرح بها باسم العائلة في أنماط طبقة النص:

{
  "type": "text",
  "text": "{{headline}}",
  "style": {
    "fontFamily": "Montserrat",
    "fontWeight": 700,
    "fontSize": 64,
    "color": "#FFFFFF"
  }
}

يتضمن Rendervid سلاسل احتياطية للخطوط الخاصة بالمنصة لضمان عرض متسق عبر بيئات مختلفة. إذا لم يكن الخط المحدد متاحاً، يتراجع العارض إلى خطوط النظام المطابقة لنفس التصنيف (serif، sans-serif، monospace).


تنسيقات الإخراج

يدعم Rendervid مجموعة واسعة من تنسيقات الإخراج وبرامج الترميز لكل من عرض الفيديو والصور.

تنسيقات الفيديو

التنسيقبرنامج الترميزامتداد الملفالأفضل لـ
MP4H.264.mp4أقصى توافق – الويب، الجوال، وسائل التواصل الاجتماعي
WebMVP8 / VP9.webmتضمين الويب مع أحجام ملفات أصغر
MOVProRes.movسير عمل التحرير الاحترافي، جودة بدون فقدان
GIF.gifرسوم متحركة قصيرة، مشاركة اجتماعية، بريد إلكتروني
MP4H.265 / HEVC.mp4أجهزة أحدث، ملفات أصغر بنسبة 50٪ من H.264 بنفس الجودة
WebMAV1.webmبرنامج ترميز الجيل التالي، أفضل كفاءة ضغط

تنسيقات الصور

التنسيقامتداد الملفالأفضل لـ
PNG.pngجودة بدون فقدان، دعم الشفافية
JPEG.jpgالصور الفوتوغرافية، أحجام ملفات أصغر
WebP.webpالويب الحديث، أفضل توازن بين الجودة والحجم

إعدادات الجودة المسبقة

الإعداد المسبقالوصف
draftعرض سريع مع جودة مخفضة – مثالي للمعاينة
standardجودة وحجم ملف متوازنان – جيد لمعظم حالات الاستخدام
highمعدل بت وجودة أعلى – للتسليمات النهائية
losslessأقصى جودة بدون عيوب ضغط

دعم الدقة

يدعم Rendervid الدقات من الصور المصغرة الصغيرة حتى 8K:

الدقةالأبعادالاستخدام الشائع
SD640 x 480صور مصغرة، معاينات
HD1280 x 720فيديو ويب، بريد إلكتروني
Full HD1920 x 1080YouTube، عروض تقديمية
2K2560 x 1440شاشات عالية الجودة
4K UHD3840 x 2160احترافي، بث
8K7680 x 4320دقة قصوى، مقاومة للمستقبل

معدلات الإطارات من 1 إطار في الثانية (عروض شرائح) إلى 120 إطاراً في الثانية (حركة بطيئة، محتوى ألعاب) مدعومة. الخيارات الشائعة هي 24 إطاراً في الثانية (سينمائي)، 30 إطاراً في الثانية (ويب/اجتماعي)، و60 إطاراً في الثانية (حركة سلسة).


مثال كامل

إليك قالب Rendervid كامل يوضح الميزات الرئيسية لنظام القوالب تعمل معاً: مدخلات ديناميكية، مشاهد متعددة مع انتقالات، تركيبات متعددة الطبقات، رسوم متحركة مع تسهيل، خطوط، ومؤثرات بصرية.

{
  "name": "tech-product-launch",
  "output": {
    "type": "video",
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 20,
    "backgroundColor": "#0A0A0A"
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Product Name",
      "required": true,
      "default": "ProductX"
    },
    {
      "key": "tagline",
      "type": "string",
      "label": "Tagline",
      "required": true,
      "default": "The future is here."
    },
    {
      "key": "heroImage",
      "type": "url",
      "label": "Hero Image",
      "required": true
    },
    {
      "key": "primaryColor",
      "type": "color",
      "label": "Primary Color",
      "default": "#6C63FF"
    },
    {
      "key": "ctaText",
      "type": "string",
      "label": "Call to Action",
      "default": "Learn More"
    }
  ],
  "fonts": {
    "google": [
      { "family": "Inter", "weights": [400, 600, 800] },
      { "family": "JetBrains Mono", "weights": [400] }
    ]
  },
  "composition": {
    "scenes": [
      {
        "name": "intro",
        "duration": 6,
        "layers": [
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 540 },
            "size": { "width": 1920, "height": 1080 },
            "style": {
              "fill": "{{primaryColor}}",
              "opacity": 0.1
            }
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "position": { "x": 960, "y": 400 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 800,
              "fontSize": 96,
              "color": "#FFFFFF",
              "textAlign": "center"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeInUp",
                "duration": 30,
                "delay": 15,
                "easing": "easeOutCubic"
              }
            ]
          },
          {
            "type": "text",
            "text": "{{tagline}}",
            "position": { "x": 960, "y": 520 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 400,
              "fontSize": 36,
              "color": "{{primaryColor}}",
              "textAlign": "center",
              "letterSpacing": 4
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeIn",
                "duration": 25,
                "delay": 40,
                "easing": "easeOutSine"
              }
            ]
          },
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 600 },
            "size": { "width": 80, "height": 3 },
            "style": {
              "fill": "{{primaryColor}}"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "scaleIn",
                "duration": 20,
                "delay": 60,
                "easing": "easeOutQuart"
              }
            ]
          }
        ]
      },
      {
        "name": "product-showcase",
        "duration": 8,
        "transition": {
          "type": "slide",
          "duration": 0.8,
          "direction": "left"
        },
        "layers": [
          {
            "type": "image",
            "src": "{{heroImage}}",
            "position": { "x": 1200, "y": 540 },
            "size": { "width": 800, "height": 800 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "filters": [
              { "type": "brightness", "value": 1.1 },
              { "type": "contrast", "value": 1.05 }
            ],
            "animations": [
              {
                "type": "entrance",
                "effect": "zoomIn",
                "duration": 40,
                "easing": "easeOutBack"
              },
              {
                "type": "emphasis",
                "effect": "float",
                "duration": 120,
                "delay": 40,
                "loop": -1,
                "alternate": true
              }
            ]
          },
          {
            "type": "text",
            "text": "Introducing",
            "position": { "x": 400, "y": 350 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "JetBrains Mono",
              "fontSize": 18,
              "color": "{{primaryColor}}",
              "textTransform": "uppercase",
              "letterSpacing": 6
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "typewriter",
                "duration": 30,
                "delay": 10,
                "easing": "linear"
              }
            ]
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "position": { "x": 400, "y": 430 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 800,
              "fontSize": 72,
              "color": "#FFFFFF"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "revealLeft",
                "duration": 25,
                "delay": 20,
                "easing": "easeOutQuart"
              }
            ]
          },
          {
            "type": "text",
            "text": "{{tagline}}",
            "position": { "x": 400, "y": 520 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 400,
              "fontSize": 24,
              "color": "#CCCCCC",
              "lineHeight": 1.6
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeInUp",
                "duration": 20,
                "delay": 40,
                "easing": "easeOutCubic"
              }
            ]
          }
        ]
      },
      {
        "name": "cta",
        "duration": 6,
        "transition": {
          "type": "fade",
          "duration": 1.2
        },
        "layers": [
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 540 },
            "size": { "width": 1920, "height": 1080 },
            "style": {
              "fill": "{{primaryColor}}",
              "opacity": 0.15
            }
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "position": { "x": 960, "y": 380 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 800,
              "fontSize": 80,
              "color": "#FFFFFF",
              "textAlign": "center"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "bounceIn",
                "duration": 35,
                "easing": "easeOutElastic"
              }
            ]
          },
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 550 },
            "size": { "width": 280, "height": 60 },
            "style": {
              "fill": "{{primaryColor}}",
              "borderRadius": 30
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "scaleIn",
                "duration": 25,
                "delay": 30,
                "easing": "easeOutBack"
              },
              {
                "type": "emphasis",
                "effect": "pulse",
                "duration": 60,
                "delay": 60,
                "loop": -1,
                "alternate": true
              }
            ]
          },
          {
            "type": "text",
            "text": "{{ctaText}}",
            "position": { "x": 960, "y": 550 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 600,
              "fontSize": 22,
              "color": "#FFFFFF",
              "textAlign": "center"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeIn",
                "duration": 20,
                "delay": 40,
                "easing": "easeOutSine"
              }
            ]
          }
        ]
      }
    ]
  }
}

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


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

  • مرجع مكونات الطبقة – غوص عميق في كل من أنواع الطبقات الثمانية مع وثائق كاملة للخصائص وأمثلة
  • تكامل الذكاء الاصطناعي – تعلم كيفية توليد ومعالجة قوالب Rendervid باستخدام الذكاء الاصطناعي، بما في ذلك توليد القوالب المدعوم بـ LLM والعرض الواعي بالمحتوى
  • دليل النشر – إعداد Rendervid للإنتاج: العرض من جانب الخادم، النشر السحابي، المعالجة الدفعية، وتكامل API

الأسئلة الشائعة

ما هو تنسيق قالب Rendervid؟

قوالب Rendervid هي ملفات JSON تحدد البنية والمحتوى والرسوم المتحركة وإعدادات الإخراج للفيديو أو الصورة. يتضمن كل قالب تكوين الإخراج (الأبعاد، معدل الإطارات، المدة)، تعريفات الإدخال للمتغيرات الديناميكية، تركيب مع مشاهد وطبقات، وتكوينات اختيارية للخطوط والمكونات المخصصة.

كيف تعمل متغيرات القالب في Rendervid؟

تستخدم متغيرات القالب صيغة {{variableName}}. تقوم بتعريف المدخلات في مصفوفة inputs الخاصة بالقالب مع مفتاح ونوع (string، number، boolean، color، url، array) وتسمية ووصف وقيمة افتراضية. في وقت العرض، يتم استبدال هذه المتغيرات بالقيم الفعلية، مما يجعل القوالب قابلة لإعادة الاستخدام وديناميكية.

كم عدد الإعدادات المسبقة للرسوم المتحركة التي يحتويها Rendervid؟

يتضمن Rendervid أكثر من 40 إعداد مسبق مدمج للرسوم المتحركة منظمة في أربع فئات: رسوم متحركة للدخول (fadeIn، slideIn، scaleIn، bounceIn، إلخ)، رسوم متحركة للخروج (fadeOut، slideOut، zoomOut، إلخ)، رسوم متحركة للتأكيد (pulse، shake، bounce، swing، heartbeat، إلخ)، ورسوم متحركة قابلة للتخصيص بالكامل بالإطارات الرئيسية مع أكثر من 30 دالة تسهيل.

ما هي انتقالات المشاهد المتاحة؟

يوفر Rendervid 17 نوعاً من انتقالات المشاهد: cut، fade، zoom، slide، wipe، push، rotate، flip (3D)، blur، circle، glitch، dissolve، cube (3D)، swirl، diagonal-wipe، iris، وcrosszoom. يمكن تكوين كل انتقال بمعاملات المدة والاتجاه.

ما هي تنسيقات الإخراج التي يدعمها Rendervid؟

يدعم Rendervid تنسيقات إخراج متعددة بما في ذلك MP4 (H.264)، WebM (VP8/VP9)، MOV (ProRes)، GIF للفيديو، وPNG، JPEG، WebP للصور. كما يتم دعم برامج الترميز المتقدمة مثل H.265/HEVC وAV1. تصل الدقة إلى 8K (7680x4320) مع معدلات إطارات من 1 إلى 120 إطار في الثانية.

هل يمكنني استخدام خطوط مخصصة في قوالب Rendervid؟

نعم، يدعم Rendervid أكثر من 100 خط مدمج من Google Fonts وتحميل الخطوط المخصصة من عناوين URL بتنسيقات WOFF2، WOFF، TTF، وOTF. يمكنك تحديد أوزان الخطوط من 100-900 وتكوين البدائل الخاصة بالمنصة لتوافق عبر البيئات المختلفة.

دعنا نبني فريق الذكاء الاصطناعي الخاص بك

نحن نساعد الشركات مثل شركتك في تطوير روبوتات الدردشة الذكية، وخوادم MCP، وأدوات الذكاء الاصطناعي أو أنواع أخرى من أتمتة الذكاء الاصطناعي لاستبدال البشر في المهام المتكررة في مؤسستك.

اعرف المزيد

مكونات Rendervid - أنواع الطبقات ومكونات React ومحرر مرئي
مكونات Rendervid - أنواع الطبقات ومكونات React ومحرر مرئي

مكونات Rendervid - أنواع الطبقات ومكونات React ومحرر مرئي

استكشف جميع مكونات Rendervid: 8 أنواع طبقات مدمجة (نص، صورة، فيديو، شكل، صوت، مجموعة، lottie، مخصص)، مكونات React جاهزة، محرر القوالب المرئي، ومشغل الفيديو. قم ...

14 دقيقة قراءة
Rendervid Components +3
نشر Rendervid - العرض في المتصفح وNode.js والسحابة وDocker
نشر Rendervid - العرض في المتصفح وNode.js والسحابة وDocker

نشر Rendervid - العرض في المتصفح وNode.js والسحابة وDocker

انشر Rendervid في أي مكان: العرض في المتصفح للمعاينات، Node.js لمعالجة الدفعات من جانب الخادم، أو العرض السحابي على AWS Lambda وAzure Functions وGCP وDocker للح...

19 دقيقة قراءة
Rendervid Deployment +3
Rendervid: البديل المجاني لـ Remotion لإنشاء الفيديو بالذكاء الاصطناعي
Rendervid: البديل المجاني لـ Remotion لإنشاء الفيديو بالذكاء الاصطناعي

Rendervid: البديل المجاني لـ Remotion لإنشاء الفيديو بالذكاء الاصطناعي

اكتشف Rendervid، البديل المجاني مفتوح المصدر لـ Remotion لإنشاء الفيديو البرمجي. تصميم يعتمد على الذكاء الاصطناعي مع تكامل MCP، قوالب JSON، عرض سحابي، وبدون رسو...

14 دقيقة قراءة
Rendervid Video Rendering +3