مرجع الـ storyboard
صيغة storyboard.json: segments وholds وzooms وcaptions وhighlights وnarration وcards وoverlays وmusic وextends وtheme وحجم الخرج، مع مثال كامل.
الـ storyboard ملف JSON يصف المونتاج. يكتبه لك تطبيق الذكاء الاصطناعي، لكن يمكنك قراءته وتعديله وتصييره بنفسك. الأمر screenpilot schema (أو الأداة storyboard_schema) يطبع JSON Schema المعتمد. وتشرح هذه الصفحة كل حقل.
القواعد الثلاث#
- الأزمنة بثواني المصدر. تُحسب من بداية التسجيل الخام، لا من الفيديو المصيَّر. القص وتغيير السرعة لا يحرّكانها. الأمر
screenpilot checkوالأداةcheck_outputوحدهما يستخدمان ثواني الخرج. - المواضع مُطبَّعة بين 0 و1. تُقاس
xمن الحافة اليسرى للتسجيل وyمن حافته العليا. اقرأها من لقطة باستخدامframes --grid. - المسارات نسبية إلى ملف الـ storyboard. ينطبق هذا على
sourceوeventsوextendsوmusic.srcوoverlays[].src.
كل الحقول اختيارية عدا source. نفّذ screenpilot validate storyboard.json بعد كل تعديل. يعرض أخطاء الـ schema والتحذيرات: segments متداخلة، أو عناصر بعد نهاية المصدر، أو views تذكر شاشة غير معروفة، أو callout بلا x وy. ويقدّم أيضًا نصائح أسلوب: انظر تحذيرات الأسلوب.
حقول المستوى الأعلى#
| الحقل | الافتراضي | معناه |
|---|---|---|
version | 1 | إصدار الصيغة. دائمًا 1. |
extends | لا شيء | storyboard أساسي تأخذ منه المظهر. انظر مشاركة المظهر بـ extends. |
source | مطلوب | مسار التسجيل الخام. |
events | لا شيء | ملف events.jsonl الناتج عن record. يفعّل تموّجات النقر. |
keepSourceAudio | false | إبقاء صوت التسجيل. عندها يمكن للـ segments ضبط volume أو mute. |
output | 1920x1080 بمعدل 30 إطارًا | الحجم ومعدل الإطارات. انظر الخرج والصوت. |
theme | القيم الافتراضية | المظهر. انظر القالب. |
voice | القيم الافتراضية | صوت التعليق. انظر الخرج والصوت. |
segments | [] | الأجزاء المحتفَظ بها من المصدر. |
holds | [] | لقطات مجمّدة. |
zooms | [] | تقريبات الكاميرا. |
screens, views | [] | تسجيلات الشاشات المتعددة. انظر الشاشات والزوايا. |
captions | [] | نص على الشاشة. |
highlights | [] | مربعات حول أجزاء من الشاشة. |
narration | [] | أسطر التعليق الصوتي. |
intro, outro | لا شيء | بطاقات العنوان قبل الفيديو وبعده. |
cards | [] | بطاقات فصول في منتصف الفيديو. انظر بطاقات الفصول. |
overlays | [] | صور وفيديو وشعارات فوق الإطار. انظر الـ overlays. |
music | لا شيء | موسيقى خلفية، ويمكن خفضها تحت الصوت. |
Segments#
الحقل segments يسرد الأجزاء المحتفَظ بها من المصدر بالترتيب. كل ما بين segment وأخرى يُقصّ. القائمة الفارغة تُبقي الفيديو كله. ويجب ألا تتداخل الـ segments.
| الحقل | الافتراضي | المعنى |
|---|---|---|
in | مطلوب | البداية بثواني المصدر. |
out | مطلوب | النهاية. يجب أن تكون أكبر من in. |
speed | 1 | سرعة التشغيل من 0.25 إلى 16. استخدم 4 إلى 8 لتسريع التحميل والانتظار. |
volume | 1 | مستوى صوت المصدر في هذا الـ segment، من 0 إلى 4. يحتاج إلى keepSourceAudio. |
mute | false | يُسكت صوت المصدر في هذا الـ segment. مثل volume بقيمة 0. |
إذا وقع سطر تعليق صوتي داخل منطقة مقصوصة، يُحذف مع تحذير. وvolume وmute لهما أثر فقط عندما يبقى صوت المصدر: بدون keepSourceAudio: true وتسجيل فيه صوت، ينبّهك التصيير إلى أنهما بلا أثر.
Holds#
الـ holds تجمّد الفيديو عند إطار واحد، لتعطي caption أو سطرًا صوتيًا وقتًا كافيًا.
| الحقل | المعنى |
|---|---|
at | زمن المصدر الذي يُجمَّد عنده. |
dur | مدة التجميد بالثواني. |
نادرًا ما تحتاج إلى كتابة holds. إذا كان سطر التعليق أطول من مكانه، يضيف التصيير تجميدًا تلقائيًا كي لا تتداخل الأسطر. وتظهر هذه في النتيجة باسم autoHolds.
Zooms#
| الحقل | الافتراضي | المعنى |
|---|---|---|
at | مطلوب | زمن المصدر الذي يكتمل عنده التقريب. |
dur | مطلوب | مدة البقاء مقرَّبًا بالثواني. |
x, y | مطلوب | نقطة التركيز بين 0 و1. |
scale | 1.8 | معامل التقريب من 1 إلى 4. |
Captions#
| الحقل | الافتراضي | المعنى |
|---|---|---|
at | مطلوب | زمن المصدر الذي يظهر عنده الـ caption. |
dur | 3 | الثواني على الشاشة. |
text | مطلوب | النص. استخدم \n لسطر ثانٍ، مثلًا في caption بلغتين. |
position | bottom | bottom أو top أو center. |
style | pill | pill أو title أو callout. |
x, y | لا شيء | نقطة الإشارة في callout، بين 0 و1. |
motion | افتراضي القالب | كيف يدخل هذا الـ caption ويخرج. انظر الحركة. |
أنماط الـ caption#
pill: مربع يشبه الترجمة. استخدمه لمعظم الـ captions.title: نص كبير للحظة تشبه بداية فصل.callout: فقاعة تشير إلىxوy. أعطِ القيمتين دائمًا. بدونهما تشير الفقاعة إلى المنتصف ويحذّركvalidate.
Highlights#
الـ highlight يرسم مربعًا حول جزء من الشاشة.
| الحقل | الافتراضي | المعنى |
|---|---|---|
at | مطلوب | زمن المصدر الذي يظهر عنده. |
dur | 2 | الثواني على الشاشة. |
x, y | مطلوب | الزاوية العليا اليسرى بين 0 و1. |
w, h | مطلوب | العرض والارتفاع بين 0 و1. |
label | لا شيء | نص اختياري على المربع. |
Narration#
يقرأ كل سطر صوتُ الـ storyboard ويُمزج في الفيديو. الافتراضي صوت Edge؛ انظر الأصوات للنماذج المحلية ولبرامجك الخاصة. التعليق الصوتي لا يتداخل أبدًا: إذا تجاوز سطر مكانه، يتجمد الفيديو ليفسح له.
| الحقل | الافتراضي | المعنى |
|---|---|---|
at | مطلوب | زمن المصدر الذي يبدأ عنده السطر. |
text | مطلوب | ما يقوله الصوت. |
voice | voice.name | صوت لهذا السطر وحده، مثل ar-EG-ShakirNeural. يستبدل voice.name ويُبقي voice.provider، فيجب أن يكون صوتًا من المزوّد نفسه. استخدمه للمزج بين لغتين. |
caption | voice.subtitles | إظهار هذا السطر كترجمة أيضًا (true) أو عدم إظهاره (false). |
اعرض الأصوات بالأمر screenpilot voices --lang ar-EG. أمثلة: ar-EG-SalmaNeural وar-EG-ShakirNeural وen-US-AndrewNeural وen-US-AriaNeural.
Intro وoutro#
الحقلان intro وoutro بطاقتا عنوان قبل الفيديو وبعده. لهما الحقول نفسها.
| الحقل | الافتراضي | المعنى |
|---|---|---|
title | مطلوب | النص الرئيسي. |
subtitle | لا شيء | السطر الثاني. |
dur | 3 | الثواني على الشاشة. |
بطاقات الفصول#
الحقل cards بطاقات عنوان في منتصف الفيديو، لبداية فصل جديد. كل بطاقة تجمّد الصورة عند at وتعرض بطاقة كاملة بظهور واختفاء تدريجيين، ثم يكمل الفيديو من الإطار نفسه.
| الحقل | الافتراضي | المعنى |
|---|---|---|
at | مطلوب | زمن المصدر الذي يتجمد عنده الفيديو وتظهر البطاقة. |
dur | 2.5 | الثواني التي تبقى فيها البطاقة. يبقى الفيديو مجمّدًا خلالها. |
title | مطلوب | النص الرئيسي. |
subtitle | لا شيء | السطر الثاني. |
البطاقة التي يقع at الخاص بها في منطقة مقصوصة تُحذف، ويحذّرك validate. وتستخدم البطاقات المظهر نفسه الخاص بـ intro وoutro (theme.motion.cards وـ CSS الخاص بـ .card).
Overlays#
الحقل overlays يضع صورة أو فيديو فوق إطار الخرج: شعارًا، أو علامة مائية، أو مقطعًا صغيرًا داخل الصورة. وعلى خلاف zooms وhighlights، الموضع هنا كسر من إطار الخرج لا من التسجيل، فيبقى الشعار في الزاوية نفسها مهما تحركت الكاميرا.
| الحقل | الافتراضي | المعنى |
|---|---|---|
src | مطلوب | صورة أو فيديو، نسبي إلى الـ storyboard. |
x, y | مطلوب | الحافة اليسرى والعليا، بين 0 و1 من إطار الخرج. |
w, h | مطلوب | العرض والارتفاع، بين 0 و1 من إطار الخرج. يجب أن يكونا أكبر من 0. |
at | لا شيء | زمن المصدر الذي يظهر عنده. |
dur | لا شيء | الثواني التي يبقى فيها. مع at بلا dur يبقى حتى النهاية. ومن دون at وdur يظهر طوال الفيديو. |
fit | contain | القيمة contain تُظهر الصورة كاملة داخل المربع. وcover تملأ المربع وتقصّ الزائد. |
opacity | 1 | من 0 إلى 1. |
radius | لا شيء | نصف قطر الزوايا بالبكسل. |
shadow | لا شيء | يرسم ظلًّا تحته. |
motion | fade | الدخول والخروج. انظر الحركة. القيم words وlines وwipe تعود إلى fade. |
mute | true | للفيديو: القيمة false تشغّل صوته أيضًا. |
loop | false | للفيديو: يعيده حتى ينتهي الـ overlay. |
"overlays": [
{ "src": "assets/logo.png", "x": 0.88, "y": 0.04, "w": 0.08, "h": 0.08, "opacity": 0.8 },
{ "src": "assets/webcam.mp4", "at": 5, "dur": 12, "x": 0.72, "y": 0.66, "w": 0.24, "h": 0.28, "fit": "cover", "radius": 16, "shadow": true }
]
Music#
| الحقل | الافتراضي | المعنى |
|---|---|---|
src | مطلوب | مسار ملف صوتي نسبي إلى الـ storyboard. |
volume | 0.12 | من 0 إلى 1. اجعله منخفضًا كي لا يغطي الصوت. |
duck | لا شيء | يخفض الموسيقى أثناء الكلام. انظر أدناه. |
الـ ducking يجعل الموسيقى أهدأ تحت كل سطر تعليق ثم يعيدها بعده. أعطِ duck أيًّا من الحقول التالية، أو كائنًا فارغًا {} للقيم الافتراضية:
| الحقل | الافتراضي | المعنى |
|---|---|---|
amount | 0.6 | مقدار انخفاض الموسيقى، من 0 إلى 1. القيمة 0.6 تعني انخفاضًا بنسبة 60%. |
attack | 0.2 | الثواني التي تستغرقها الموسيقى لتنخفض، وتنتهي حين يبدأ السطر. من 0 إلى 5. |
release | 0.5 | الثواني التي تستغرقها الموسيقى لتعود بعد السطر. من 0 إلى 5. |
مشاركة المظهر بـ extends#
الحقل extends يشير إلى storyboard أساسي، نسبيًا إلى هذا الملف. استخدمه حين تريد أن تتشابه عدة فيديوهات في المظهر والصوت: يمتد كل منها من الأساس نفسه ويضيف تسجيله الخاص. وبه يأخذ مقطع الميزة مظهر العرض الذي ينضم إليه داخل sequence.
- تُورَّث خمسة حقول:
themeوvoiceوoutputوmusicوkeepSourceAudio. أما الباقي (sourceوsegments وzooms وcaptions وnarration وintro وoutro وغيرها) فلا يُورَّث أبدًا. - الابن يتغلب. الكائنات تُدمج مفتاحًا مفتاحًا، فالابن الذي يضبط
theme.accentفقط يحتفظ بباقي حقول القالب من الأساس. أما المصفوفات فتُستبدل ولا تُدمج، مثلtheme.fonts. - السلاسل تعمل. يمكن للأساس أن يمتد من storyboard آخر. والدورة (cycle) خطأ يذكر السلسلة.
- المسارات تبقى صحيحة. يُعاد كتابة
music.srcالقادم من الأساس ليشير إلى الملف نفسه انطلاقًا من مجلد الابن.
{
"extends": "../demo.json",
"source": "rec.mp4",
"narration": [{ "at": 1, "text": "Invoices can now repeat on a schedule." }]
}
الشاشات والزوايا#
في تسجيل لعدة شاشات، يحدد screens موضع كل شاشة داخل التسجيل، ويحدد views الجزء الذي تعرضه الكاميرا ابتداءً من كل زمن. الأمر init --suggest يملأ الاثنين لك.
| العنصر | الحقول |
|---|---|
screens[] | name (اسم الشاشة، مثل eDP-1) وx وy وw وh (بين 0 و1 من المصدر؛ يجب أن تكون w أكبر من 0) |
views[] | at، ثم واحد فقط من screen (قيمة screens[].name أو "all") أو rect (x وy وw وh، أي منطقة)؛ واختياريًا label وtransition (pan افتراضيًا، أو cut) |
الخرج والصوت#
| الكائن | الحقول والقيم الافتراضية |
|---|---|
output | width 1920 وheight 1080 وfps 30 (من 1 إلى 120) |
voice | provider edge (أو local أو command)، name en-US-AndrewNeural، rate +0% (مثل +10% أو -5%)، subtitles true (إظهار أسطر التعليق كترجمة)، gap 0.3 (أقل صمت بين الأسطر؛ يتجمد الفيديو ليفسح له)، volume 1 (من 0 إلى 4) |
voice.provider | معنى voice.name |
|---|---|
edge (افتراضي) | صوت Edge، مثل ar-EG-SalmaNeural. يحتاج إلى الإنترنت. |
local | نموذج على هذا الجهاز: voicetut أو voicetut:<Voice> مثل voicetut:Sarah أو namaa. الحقل rate يتحول إلى معامل سرعة في voicetut؛ أما namaa فيتجاهله. |
command | مفتاح صوت عرّفته في voices.json. |
الحقل voice الخاص بسطر التعليق يعمل داخل المزوّد نفسه. فمثلًا مع "provider": "local" يمكن لسطر أن يستخدم namaa ولآخر أن يستخدم voicetut:Sarah. الإعداد والحدود والأمثلة في الأصوات.
اختر حجم الخرج بحسب مكان العرض: 1920x1080 ليوتيوب أو README أو الشرائح؛ 1080x1920 لـ Reels وTikTok وShorts؛ 1080x1080 للخلاصات.
القالب (theme)#
يحدد القالب مظهر الفيديو كله. لا يوجد نمط ثابت: اختره بحسب الجمهور، وخذ الألوان والخطوط من المنتج الذي تعرضه.
| الحقل | الافتراضي | المعنى |
|---|---|---|
background | تدرّج من النيلي إلى الأزرق | أي خلفية CSS: لون أو تدرّج أو صورة. |
padding | 0.05 | المسافة حول التسجيل، كنسبة من عرض الخرج (من 0 إلى 0.2). |
radius | 16 | استدارة زوايا التسجيل، من 0 إلى 60. |
shadow | true | ظل تحت التسجيل. |
accent | #facc15 | اللون المميِّز. |
font | Inter وCairo وsystem-ui | عائلة الخط في CSS. |
captionColor | #ffffff | لون نص الـ caption. |
captionBackground | داكن شبه شفاف | لون مربع الـ caption. |
clickRipples | true | يرسم تموّجًا عند كل نقرة مسجَّلة. يحتاج إلى events. |
fonts | [] | خطوط Google إضافية للتحميل، بصيغة css2 مثل "Tajawal:wght@400;700" أو "Space Grotesk:wght@500;700". ثم استخدمها في font أو css. |
css | فارغ | CSS خاص بك، يُطبَّق بعد الأنماط المدمجة. |
motion | {} | حركة النص الافتراضية: captions (الـ captions والترجمات) وcards (intro وoutro). |
CSS مخصص#
العناصر التي يمكنك تنسيقها بـ theme.css:
#root: الإطار كله وخلفيته.#frame: الصندوق الذي يحمل التسجيل..cardو.card-innerو.card h1و.card p: بطاقتا intro وoutro..text: الـ captions. أنواعها.text.pillو.text.subtitleو.text.title. المربع المرئي هو.text.<style> > span، و.text .lnسطر واحد من caption متعدد الأسطر..pos-bottomو.pos-topو.pos-center: مواضع الـ caption..hlو.hl span: الـ highlights..callout span: فقاعات callout..ripple: تموّجات النقر.
الحركة (motion)#
تتحكم الحركة في كيفية دخول النص وخروجه. اضبط الافتراضي في theme.motion.captions وtheme.motion.cards، وتجاوزه بـ motion على caption واحد. كل الحقول اختيارية.
| الحقل | المعنى |
|---|---|
in | نمط الدخول. |
out | نمط الخروج. words وlines يخرجان مثل fade. |
duration | الثواني لكل دخول، من 0 إلى 3. الافتراضي 0.3. |
ease | أي ease من GSAP، مثل "power3.out" أو "back.out(1.7)" أو "expo.out" أو "elastic.out(1,0.5)". |
stagger | الثواني بين الكلمات أو الأسطر في words وlines، من 0 إلى 1. الافتراضي 0.08. |
الأنماط: none وfade وrise وdrop وslide-left وslide-right وpop وzoom وblur وwipe وwords وlines. النمط wipe يكشف النص باتجاه القراءة. وwords يُظهر كلمة كلمة، وlines سطرًا سطرًا؛ وكلاهما يعمل مع أي كتابة، ومنها العربية.
fade وrise. مقاطع التواصل الاجتماعي النشطة يناسبها pop أو words مع ease مرتد. والعناوين يناسبها wipe أو words.مثال كامل#
يحتفظ هذا الـ storyboard بتسجيل واحد، ويسرّع مقطع تحميل، ويقرّب على نقرتين، ويضيف ثلاثة captions وhighlight، وينطق ثلاثة أسطر (الأخير بالعربية). المسارات نسبية إلى ملف الـ storyboard. ينجح في screenpilot validate؛ والتحذير الذي يظهر عند غياب الملفات هو فقط أن فيديو المصدر غير موجود.
{
"version": 1,
"source": "sessions/2026-10-27_14-02/video.mkv",
"events": "sessions/2026-10-27_14-02/events.jsonl",
"output": { "width": 1920, "height": 1080, "fps": 30 },
"voice": { "name": "en-US-AndrewNeural", "rate": "+0%", "subtitles": false, "gap": 0.3 },
"theme": {
"background": "linear-gradient(135deg, #0f172a 0%, #1d4ed8 100%)",
"padding": 0.05,
"radius": 16,
"accent": "#facc15",
"font": "'Space Grotesk', 'Cairo', sans-serif",
"fonts": ["Space Grotesk:wght@500;700"],
"css": ".text.pill > span { letter-spacing: 0.01em; }",
"motion": {
"captions": { "in": "rise", "out": "fade", "duration": 0.35, "ease": "power3.out" },
"cards": { "in": "words", "stagger": 0.08 }
}
},
"intro": { "title": "Acme Invoices", "subtitle": "Send an invoice in 20 seconds", "dur": 3 },
"outro": { "title": "Try it today", "subtitle": "acme.example", "dur": 3 },
"segments": [
{ "in": 0, "out": 6, "speed": 1 },
{ "in": 6, "out": 19, "speed": 6 },
{ "in": 19, "out": 41, "speed": 1 }
],
"holds": [{ "at": 30.5, "dur": 1.5 }],
"zooms": [
{ "at": 2.5, "dur": 3, "x": 0.18, "y": 0.22, "scale": 2 },
{ "at": 24, "dur": 4, "x": 0.82, "y": 0.9, "scale": 1.8 }
],
"captions": [
{ "at": 1, "dur": 3, "text": "Start from the dashboard", "position": "bottom", "style": "pill" },
{ "at": 22, "dur": 3, "text": "One click to send", "style": "callout", "x": 0.82, "y": 0.9 },
{ "at": 36, "dur": 3, "text": "Done", "position": "center", "style": "title", "motion": { "in": "pop", "ease": "back.out(1.7)" } }
],
"highlights": [{ "at": 31, "dur": 2.5, "x": 0.3, "y": 0.4, "w": 0.3, "h": 0.12, "label": "Total" }],
"narration": [
{ "at": 1, "text": "We start on the dashboard." },
{ "at": 22, "text": "One click and the invoice is sent." },
{ "at": 36, "text": "هذا كل شيء.", "voice": "ar-EG-SalmaNeural", "caption": true }
],
"music": { "src": "assets/bgm.mp3", "volume": 0.12 }
}
caption: true، بينما voice.subtitles معطّل للأسطر الأخرى. النقرة عند الثانية 24 تأخذ zoom وcallout؛ أما الـ highlight فعند لحظة أخرى، فلا تحمل نقرة واحدة كل المؤثرات.تحذيرات الأسلوب#
الأمر validate (والأداة storyboard_validate) يحذّر أيضًا حين يخالف الـ storyboard إرشادات الأسلوب أدناه. هذه تحذيرات فقط: لا تمنع التصيير أبدًا. وتذكر كل رسالة العنصر، مثل captions[2].
| التحذير | الحد |
|---|---|
| تعليق صوتي طويل | أكثر من 12 كلمة في السطر. |
| تعليق صوتي سريع | أكثر من 3 كلمات في الثانية تقريبًا قبل السطر التالي. سيجمّد التصيير الفيديو ليتسع له. |
| caption طويل | أكثر من 6 كلمات. |
| captions متداخلة | captionان في الموضع نفسه في الوقت نفسه. الـ callouts مستثناة من هذا الفحص. |
| zooms متداخلة | zoomان في الوقت نفسه. |
| مقياس zoom | خارج المدى 1.4 إلى 2.5. |
| تأثيرات مكدّسة | zoom وhighlight وcallout على النقطة نفسها خلال ثانية واحدة. |
| سرعة segment | فوق 8x. اقصصه بدلًا من ذلك. |
| طول الفيديو | خرج أطول من 90 ثانية أو أقصر من 15 ثانية. |
| بطاقات في مناطق مقصوصة | بطاقة فصل يقع at الخاص بها في جزء مقصوص. |
إرشادات الأسلوب#
- التعليق الصوتي: جملة واحدة، أقل من 12 كلمة تقريبًا، وفكرة واحدة. قل ما يراه المشاهد أو لماذا يهم، لا أي زر يُضغط. اجعل الأسطر قصيرة: السطر الطويل يجمّد الفيديو.
- الـ zooms: قرّب على ما سيُنقر عليه. ابدأ التقريب قبل النقرة بنحو نصف ثانية، وأبقِه من 2 إلى 4 ثوانٍ، واستخدم scale بين 1.6 و2.2. خذ
xوyمن لقطة--grid. ارجع إلى المشهد الكامل بين التقريبات، ولا تقرّب عندما تهم الشاشة كلها. - الـ captions: من 2 إلى 6 كلمات، وفكرة واحدة لكل caption. استخدم
calloutفقط للإشارة إلى عنصر صغير واحد، وtitleللحظات الشبيهة ببدايات الفصول، وpillلما عدا ذلك. لا تكرر في caption ما يقوله التعليق. - وقت الخمول: اقصصه أو سرّعه من 4 إلى 8 مرات. التحميل والانتظار والأخطاء لا مكان لها بالسرعة العادية.
- الإيقاع: ابدأ سطر التعليق مع الحدث الذي يصفه، واترك نحو 0.3 ثانية بين الأسطر. استهدف من 30 إلى 90 ثانية في المجموع.
- لا تكدّس المؤثرات: zoom وhighlight وcallout على نقرة واحدة كثير. اختر ما يشير أفضل.
- الـ captions بلغتين: استخدم caption واحدًا بسطرين (
"English\nعربي"). تجنّب حرف الواو وحده بين كلمات لاتينية؛ استخدم فاصلة عربية بدلًا منه.
-q draft، وراجعها بـ check، ثم أضف zooms وcaptions. غيّر نوعًا واحدًا من الأشياء في كل مرة.