---
name: atmata-libyan-montage
description: Full video-montage skill from atmata (@atmata.ly) — Claude sets up its own Remotion + ffmpeg + whisper studio, understands Libyan Arabic (Tripoli dialect) and writes captions exactly as spoken, searches the web for images and B-roll, picks transitions for cinematic / normal / spontaneous videos, mixes audio so the voice never breaks, and renders 4K vertical Reels/TikToks/Shorts. Use for any مونتاج / منتج / منتجلي / كابشن / ترجمة / تلوين / انتقالات / ساوند request on a talking video, or when the user drops a raw video and says what style he wants.
---

# مهارة المونتاج من أتمتة — «يا كلود، منتجلي الفيديو»

> صنعها **atmata** (atmataly.com · @atmata.ly) من شغل مونتاج حقيقي على فيديوهات ليبية: كل قاعدة هني طالعة من غلطة صارت واتصلحت.
> مجانية للاستعمال الشخصي والتجاري.

---

## الجزء 0 — أول ما توصلك المهارة (اعمل هذا بروحك)

انت Claude، والمستخدم بعتلك الملف هذا. **ما تطلبش منه خطوات تقنية.** اعمل الآتي بروحك، وخبّره بسطر قصير بالليبي بعد كل مرحلة:

1. **ركّب المهارة عندك باش تبقى دايمة:** انسخ الملف هذا كما هو لـ:
   - Windows: `%USERPROFILE%\.claude\skills\atmata-libyan-montage\SKILL.md`
   - Mac/Linux: `~/.claude/skills/atmata-libyan-montage/SKILL.md`
2. **تأكد من الأدوات:** `node -v` (لازم 18+)، و`ffmpeg -version`. لو واحدة ناقصة، قوله في سطر وحيد شن ناقص، واعطيه أمر التثبيت المناسب لنظامه (Windows: `winget install OpenJS.NodeJS.LTS` و`winget install Gyan.FFmpeg` · Mac: `brew install node ffmpeg`). ثبّت انت لو عندك صلاحية تشغيل الأوامر.
3. **ابني الاستوديو** في فولدر اسمه `مونتاج-كلود` في المكان اللي هو فيه (ولا Desktop لو ما حددش):
   ```
   مونتاج-كلود/
   ├─ 00-الخام/           ← هني يحط فيديوهاته
   ├─ 01-النهائي/          ← هني تطلع الفيديوهات الجاهزة
   ├─ 02-النصوص/           ← التفريغ والنص المصحح لكل فيديو
   └─ studio/              ← مشروع Remotion (أسماء إنجليزية بس جوا هذا)
   ```
4. **جهّز مشروع Remotion يدوياً** (أضمن من القوالب التفاعلية) جوا `studio/`:
   ```bash
   npm init -y
   npm i remotion @remotion/cli @remotion/media @remotion/captions @remotion/install-whisper-cpp @remotion/google-fonts @remotion/noise react react-dom
   npm i -D typescript @types/react
   ```
   واكتب: `src/index.ts` (`registerRoot(Root)`)، و`src/Root.tsx` (Composition لكل فيديو، 1080×1920)، و`tsconfig.json` (`"jsx": "react-jsx"`, `"resolveJsonModule": true`, `"strict": true`)، و`remotion.config.ts` (`Config.setVideoImageFormat('jpeg')`).
5. **جهّز Whisper** (التفريغ بتوقيت كل كلمة، محلي ومجاني). مرة وحدة، ويحمّل حوالي 1.6GB:
   ```js
   // studio/scripts/setup-whisper.mjs
   import {installWhisperCpp, downloadWhisperModel} from '@remotion/install-whisper-cpp';
   await installWhisperCpp({to: './whisper.cpp', version: '1.7.6'});
   await downloadWhisperModel({folder: './whisper.cpp', model: 'large-v3-turbo'});
   ```
   ⚠️ لو مسار الفولدر فيه حروف عربية وwhisper ما يقراش، اعمل رابط بمسار إنجليزي (Windows: `mklink /J C:\mc-whisper <المسار>`) واستعمله.
6. **مؤثرات صوتية أساسية**: نزّلها لـ`studio/public/sfx/` من [mixkit.co/free-sound-effects](https://mixkit.co/free-sound-effects/) و[pixabay.com/sound-effects](https://pixabay.com/sound-effects/) (بلا ذكر مصدر). ابدا بـ: شتر كاميرا (camera shutter)، whoosh ناعم، قلب ورق، رايزر سينمائي (cinematic riser)، إطفاء تلفاز (tv shut down)، كليك. رابط ملف Mixkit المباشر: `https://assets.mixkit.co/active_storage/sfx/<id>/<id>.wav`، والـid تلقاه في صفحة التصنيف (`data-audio-player-preview-url-value`).
7. **آخر حاجة**، قوله بالحرف تقريباً:
   > «تمام، الاستوديو جاهز ✅ حط فيديوك الخام في فولدر **00-الخام** وقولي: منتجلي الفيديو **سينمائي** ولا **عادي** ولا **عفوي**، وكان عندك فيديو مرجعي تبيني نقلده حطه معاه.»

---

## الجزء 1 — قوانين ما تتكسرش

1. **رد بالليبي ديما** («توا نبدا»، «خلص الرندر»، «شن رايك؟»). الكود والأوامر بالإنجليزي عادي.
2. **بلا موسيقى أبداً** إلا لو طلبها بالاسم. «ساوند» عنده = مؤثرات، مش موسيقى.
3. **صوته مقدس:** قطعة وحدة من الملف الأصلي بكسب ثابت، وتتخلط في ffmpeg مش في Remotion. هكي الصوت ما ينكسرش (القسم 6).
4. **الكابشن بحروفه ولهجته بالضبط.** Whisper للتوقيت بس، لأنه يغلط في الليبي ويترجم للفصحى. أي كلمة مش متأكد منها علّمها `؟؟` واسأله. ما تخمّنش.
5. **ما تفتعلش شي في الوقت:** لا تجميد، لا تبطيء، لا قطع ولا زوم وسط سكتة طبيعية. لو سكت لوهلة، خليها، وخدم فوقها بالصوت (رايزر) لو تبي.
6. **ما تسلّمش شي ما شفتهوش:** `npx remotion still` على كل لحظة حساسة قبل الرندر، وفريمات من الملف النهائي بعده. شوفها بعينك.
7. **التعديل بالحرف وبلا زيادة.** لو قال «الباقي جميل حافظ عليه»، ما تلمسش الباقي. وتعديل صغير = رندر الفريمات اللي تغيرت بس (القسم 8).
8. **التلوين خفيف ومحايد.** ممنوع vibrance وتشبع يغمّق البشرة، وممنوع تسحق الأسود.
9. **المؤثر الصوتي قبل الكلمة بفريمين**، مش فوق أول حرفها.
10. **أصوات الحدث بعلوها الأصلي:** التنهيدة، السوستة، التصفيق، الكيبورد. تعطي حياة، فما تخنقهاش.
11. **ما تمسحش ملفاته.** القديم انقله لفولدر `للحذف` وخليه هو يمسح.
12. **ابعت تحديثات قصيرة** وهو يستنى، ولما يقول «استنى» وقّف فوراً.

---

## الجزء 2 — اللهجة الليبية (طرابلسية)

### قواعد الكابشن
- **اكتب اللي انقال، مش السكربت.** لو السكربت يقول «سحبت اللاب» وهو قال «جبدت اللاب»، اكتب «جبدت اللاب».
- **إملاؤه يبقى كما هو** لو كتبلك نص: «الي»، «علي»، «هوا»، «اتمته»، «هلبا»، «متعرفش». ما تصلحش الهمزات ولا تفصّحها.
- **المدّ التعبيري يبقى:** «لااااا»، «قاعد بعيييييد».
- **اللاتيني والأرقام جوا العربي** (`AI`، `3D`، `GPT 5`، `iPhone`) تتلف بعوازل `\u2066 … \u2069` باش ما تتقلبش.
- **التقسيم حسب الستايل** (الجزء 4): جملة كاملة حسب النفَس، ولا 2–3 كلمات. وكلمة الضربة لحالها («لا»، «زود»، «أكيدة»).

### معجم

| الكلمة | المعنى | مثال |
|---|---|---|
| شن / شني | ماذا / ما | «شني تخصصك؟» · «شن صار» |
| باهي | طيب | «باهي تستخدم الذكاء الاصطناعي ولا لا؟» |
| هلبا / هلبة | كثير | «عندهم هلبا كروت» |
| توا | الآن | «توا نوريك» |
| دير / يدير / ديروا | افعل / يعمل | «دير متابعة» · «يدير في تكتلات» |
| خش / نخش | ادخل | «لازم نخش عليه قبل يفوتني القطار» |
| راه / را / ترى | توكيد وتنبيه | «راه فايت عليك هلبا» |
| أملا | إذن | «أملا شني تبي؟» |
| نبي / تبي / يبي | أريد / تريد / يريد | «ما نبيش نقولك» |
| ما…ش | النفي | «متعرفش» · «ميقصرش» · «معنداش» · «منعاودش» |
| حـ + فعل | المستقبل | «حيفيدك» · «حنجيبولك» · «حتستفيد» |
| بش | لكي / سوف | «بش تقدر تحصلها» |
| كان | إذا | «وكان استفدت نستاهلوا متابعة» |
| لين | حتى / إلى أن | «صححتله لين طلعلي بنتيجة» |
| قتله / قالي | قلت له / قال لي | «قالي زود زود، قتله ان شاء الله خير» |
| جري | بسرعة | «جري جبدت الشنطة» |
| جبدت | أخرجت / سحبت | «جبدت اللاب» |
| طول | فوراً | «وطول درت ملف» |
| زود زود | على مهلك | «قالي زود زود» |
| طمّن | اطمئن | «قالي طمن» |
| من الاخير | باختصار وبصراحة | «من الاخير معش فيها كيف» |
| معش فيها كيف | ما عاد فيه حل | — |
| عالطاير | بسرعة الفهم | «بش يفهمني عالطاير» |
| مليحة | جيدة | «والنتيجة مش مليحة» |
| حايسة | فوضى | «متخليش الدنيا حايسة» |
| يهدرز / هدرزة | يتكلم / كلام | «يسمع هدرزته» |
| هني / وين | هنا / أين | «لو وصلت لهني» |
| زي | مثل | «مش زي الانسان» |
| هكي | هكذا | «معناها هكي» |
| وهي ماشي | وخلاص | «دير متابعة وهي ماشي» |
| يبارك فيك | شكراً | — |
| فايت عليك | سابقك | «راه فايت عليك هلبا» |
| صاير | حاصل | «صاير منافسة شرسة» |
| يخدم | يشتغل | «يخدم بدلي» |
| ديما / ديم | دائماً | «حنجيبولك ديم الأخبار» |
| مواكب | متابع للجديد | «انت مش مواكب» |
| بتقعد التالي | تبقى متأخر | «بتقعد التالي هلبا» |
| طاسة | كوب | «طاسة قهوة» |
| كاشيك | ملعقة | — |
| خيرك؟ | ما بك؟ (انزعاج) | — |
| تعالى / تعالوا | هيا | «تعالوا نحكيلكم شن صار» |

### أخطاء Whisper المتكررة في الليبي

| Whisper يكتب | الصح |
|---|---|
| الدكال / الدكاء | الذكاء |
| سوف / الذي (فصحى) | بش / الي (كلمته) |
| هنديروا / هيفيدني | حنديروا / حيفيدني |
| سيفي / الاي اي | CV / الـAI |
| يكرر جملة مرتين | شيلها وتأكد من الصوت |
| يدمج جملتين | افصلهم حسب السكتة |
| «ترجمة نانسي قنقر» وكلام غريب في الآخر | هلوسة على صمت، احذفها |

**التوقيت:** Whisper يطلع مبكر بحوالي فريم، ويلصق السكتة ببداية الكلمة اللي بعدها. صحّح بداية كل كلمة لأول صوت مسموع: قيس RMS لكل فريم (`astats` بـ`asetnsamples=1600` لـ48k/30fps)، وخذ أول فريم فوق العتبة بعد بداية Whisper.

**كيف تصحح النص:** اعرض عليه التفريغ مقسوم جمل، وعلّم المشكوك بـ`؟؟`. هو يرد بالجمل الصح، وكل سطر يبعته = كابشن لحاله حرفياً.

### كيف يعطيك ملاحظاته
- قائمة «اولا… ثانيا…»: كل بند تعديل إلزامي.
- «صدّر» = رندر نهائي. «الكتات» = القصّات. «تغذية بصرية» = فيديوهات مرجعية.
- «مشبع» ولا «مبالغ» = ارجع للمحايد. «حيوي» = وضوح وحدة بلا تشبع. «نضيف» = نظيف بلا زحمة.
- «غير سلس» = الانتقال فيه قفزة أو منحنيات مختلفة.
- «توقف منك» = فيه قطع أو زوم أو تجميد في سكتة.
- «ضعيف / غير ظاهر» عن صوت = علّيه ورجعه لعلوه الأصلي.
- «؟؟؟» المتكررة = منزعج، فرد فوراً وبالليبي.

---

## الجزء 3 — خط الشغل لكل فيديو

1. **افحص الخام:** `ffprobe` (المقاس، الفريمات، الدوران، المدة). فيديو الموبايل غالباً فريماته متغيرة (VFR) ومدوّر.
2. **نسخة تحرير ثابتة:** فريم ثابت، وkeyframe كل نص ثانية، وإلا الرندر يطيح بـ`Timeout while extracting frame`:
   ```bash
   ffmpeg -i "00-الخام/X.mp4" -vf "fps=30,scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920" \
     -c:v libx264 -preset veryfast -crf 16 -g 15 -tune fastdecode -pix_fmt yuv420p -c:a pcm_s16le studio/public/v/edit.mkv
   ```
   لو عدة كليبات: اجمعهم **بترتيب أسماء الملفات** بـ`concat`.
3. **القص:** شيل حركة مسك الموبايل في البداية والنهاية، والسكتات الطويلة (أكثر من 0.25 ث بين الجمل). حدد الكلام بـRMS لكل 50ms، واترك هامش 0.08 ث قبل و0.12 بعد. ما تقصش وسط كلمة. بعد القص، ابعت فريم من بداية كل مقطع وشوفه.
4. **التفريغ** على الصوت المقصوص (16kHz mono) → `words.json`، وصحّح النص معاه (الجزء 2).
5. **الخطة:** ملف وحيد `studio/src/<video>/plan.ts` (أو سكربت يولّد JSON). فيه **كل رقم**: الجمل والقطع والزوم والانتقالات والمؤثرات والصور. الصورة والصوت يقروا من نفس الخطة.
6. **المكوّن** `Video.tsx`: الصورة بس. يترندر `--muted`.
7. **الصوت** بـffmpeg من نفس الخطة (الجزء 6).
8. **فحص:** stills على كل انتقال ونص ومؤثر.
9. **الرندر** (الجزء 7)، وتركيب الصوت، وفحص الملف النهائي.
10. **سلّم:** في `01-النهائي/` باسم واضح، ولخّص له في سطور قصيرة شن درت، وشن محتاج تأكيده.

---

## الجزء 4 — الستايلات الثلاثة (اسأله لو ما حددش)

### ① عفوي (ستايل كاب كات النضيف) — الأنجح في الأرقام غالباً
**متى:** «عفوي»، «نضيف»، «بلا مؤثرات»، «زي فيديو تيك توك عادي»، كلام سريع للكاميرا.
- **القطع:** jump cuts تشيل السكتات وحركة الموبايل بس. **بلا انتقالات وبلا زوم مبرمج.** حركة الكاميرا الطبيعية تبقى، لأنها تعطي عفوية.
- **الكابشن:** **2–3 كلمات** في المرة، أبيض، خط عربي عريض مدوّر (Cairo 800 أو Rubik 800 من `@remotion/google-fonts`، أو الخط اللي يعطيك اسمه)، بحجم حوالي 90 على 1080، تحت الوجه (`top ≈ 1480`). ظل غامق مزاح `-2px 5px 0 rgba(28,28,36,.9), 0 3px 12px rgba(0,0,0,.4)`.
- **التوقيت:** المجموعة تبدا مع أول كلمة فيها، وتبقى لين اللي بعدها.
- **التلوين:** طبيعي، وفتح خفيف لو التصوير غامق (`brightness(1.1) contrast(.97)`).
- **الصوت:** صوته بس، بلا مؤثرات.

### ② عادي (معتدل)
**متى:** «عادي»، شرح، معلومة، مراجعة أداة.
- **القطع:** jump cuts على بدايات الجمل، والزوم يتناوب **1.00 ↔ 1.08** باش القفزة ما تبانش. **Punch-in 1.12** قطع مباشر على الكلمة القوية، ومعاه شتر كاميرا خفيف.
- **الانتقالات** بين المقاطع المختلفة (مش بين jump cuts): **whip** (8–10 فريمات: الطالع ينسحب بـblur أفقي والداخل يدخل منه)، أو **zoom-through** (الطالع يكبر لـ1.3 بـblur، والداخل يبدا 0.85 ويرجع 1). نفس المنحنى للطالع والداخل، وإلا يطلع «غير سلس».
- **الكابشن:** جملة قصيرة كاملة (3–6 كلمات)، أبيض، الكلمة المهمة بلون الهوية، سطر واحد.
- **الموشن:** صور وبطاقات تدخل بـ`spring` (damping 12–14) لما يذكر حاجة (القسم 5).
- **الصوت:** whoosh للانتقالات، وشتر للزوم، وكليك للبطاقات. كله قبل الكلمة بفريمين.

### ③ سينمائي / ستوري تيلينق (زي محمد حسان والدحيح وجو حطاب)
**متى:** «سينمائي»، «قصة»، «ستوري تيلينق»، فيديو يحكي فيه تجربة.
- **التلوين:** «نضيف»، مخبوز بـffmpeg:
  `curves=master='0/0.05 0.25/0.25 0.5/0.5 0.75/0.76 1/0.965',hue=s=0.82,colorbalance=rs=-0.02:gs=0.005:bs=0.03:rm=0.01:rh=0.035:gh=0.015:bh=-0.03,eq=contrast=0.97:gamma=1.03,unsharp=5:5:0.5:3:3:0`، وفوقه حبيبات خفيفة وڤينييت.
- **الكابشن:** أبيض صافي **بلا كبسولة ولا ألوان**، خط عربي أنيق ثقيل (مثلاً Reem Kufi أو IBM Plex Sans Arabic Bold، أو اللي يحدده) حجم حوالي 62، تحت الوجه (`top ≈ 1165`)، ظل خفيف `0 2px 3px rgba(0,0,0,.45), 0 4px 20px rgba(0,0,0,.38)`، **جملة كاملة حسب نفَسه**، تطلع بـblur-in 5 فريمات قبل صوتها بفريم.
- **القطع:** jump cuts على بدايات الجمل، زوم يتناوب 1.00 ↔ 1.07 مع انجراف بطيء +0.01، وpunch-in 1.13 على الجمل القوية.
- **الانتقالات: Film Burn / Light Leak حقيقية.**
  1. نزّل فيديوهات «film burn» أو «light leak» مجانية (Pixabay Videos، Mixkit Video: `mixkit.co/free-stock-video/light-leak/`).
  2. قلبها طولي 1080×1920.
  3. قيس لكل واحدة الفريمات اللي تغطي فيها الشاشة ≥90% (متوسط السطوع بـ`signalstats`).
  4. حط **منتصف التغطية على فريم القطع**: `start = cut − منتصف التغطية`، بـ`mixBlendMode: 'screen'`، وبصوتها لو عندها صوت (وإلا whoosh ناعم).
  - ⚠️ ممنوع `backdrop-filter` على الشاشة كاملة، لأنه يعكس الحواف ويطلع «كاليدوسكوب». الحرق المبرمج بديل ضعيف، فاستعمله بس لو ما لقيتش فيديو.
- **الكلمات المتكدسة:** لما يعدّد أشياء، كل كلمة تطلع وسط الشاشة وتتكدس (حجم 100)، ولكل وحدة صوت تصوير مختلف (شتر، كاميرا فيلم، قلب ورق).
- **B-roll:** لقطات إضافية من آخر الخام على الجمل اللي تحتاجها، **بصوتها الأصلي** (J-cut: الصوت يبدا قبل الصورة بـ2–3 فريمات، وفيد 2–6 فريمات).
- **الرايزر:** قبل لحظة قوية، يبدا واطي مع الكلمة وقمته على الضربة. السكتة بعده تبقى طبيعية.
- **النهاية:** **إطفاء تلفاز CRT** بعد آخر كلمة مباشرة:
  1. الصورة تنضغط عمودياً وتبيض (`scaleY` = 1, 1.03, .92, .7, .4, .12, .006 على 7 فريمات).
  2. خط أبيض متوهج ينكمش أفقياً (6 فريمات).
  3. نقطة تومض (3 فريمات).
  4. توهج يطفى (10 فريمات).
  - ومعاها صوت tv shut down. بلا فيد وبلا شعار.
- **بلا موسيقى.** بس مؤثرات سينمائية: ممنوع pop وhit وding الكرتونية.

### لو عطاك فيديو مرجعي («زيه بالضبط»)
1. حلله: `ffmpeg -vf "fps=2,scale=200:-1,tile=16x4"` لصورة كاملة، و`select='gt(scene,0.18)'` للقطعات، وفرّغه.
2. افصل حركة الكاميرا الحقيقية عن المؤثرات المبرمجة. كثير من «الانتقالات» في المراجع مجرد حركة موبايل.
3. قيس الخط ومكانه وحجمه وظله من فريم مكبّر. لو ما عرفتش الخط، اسأله عن اسمه، ودوّر عليه في `C:\Windows\Fonts` و`%LOCALAPPDATA%\Microsoft\Windows\Fonts` وحمّله بـ`FontFace` + `delayRender`.
4. طبّق أسلوبه **بنسبة 100%** قبل ما تزيد من عندك.

---

## الجزء 5 — الصور والمواد من الإنترنت (ابحث بروحك)

لما يذكر حاجة تحتاج صورة (شخصية، منتج، مكان، أكلة، شعار، رسم بياني)، دوّر عليها انت، وما تطلبهاش منه:

1. **ابحث** بأداة البحث (WebSearch) وافتح الصفحات بـWebFetch أو curl. الأولوية للمصادر اللي رخصتها واضحة:
   - **Wikimedia Commons** (`commons.wikimedia.org`، شوف الرخصة في صفحة الملف) للأشخاص والأماكن والتاريخ.
   - **Pexels / Pixabay / Unsplash** للصور ولقطات الفيديو العامة (مجانية تجارياً).
   - **المواقع الرسمية** للشعارات وصور المنتجات (من صفحة الـpress/brand لو موجودة).
   - **بيانات الأسعار والأرقام** من مصادر رسمية فقط، واكتب المصدر في ملف المصادر.
2. **نزّل** بـ`curl -L -A "Mozilla/5.0"` لـ`studio/public/img/<video>/` **بأسماء إنجليزية** (المسار العربي يرد 404 في سيرفر الرندر).
3. **افحصها بعينك** (Read للصورة): الجودة، والمحتوى الصح، وما فيهاش علامة مائية.
4. **نزع الخلفية** للستيكرات: `pip install rembg` ثم `rembg i in.jpg out.png` (لو Python موجود)، ولا اختار صورة PNG شفافة أصلاً.
5. **سجّل المصدر والرخصة** في `02-النصوص/<video>-مصادر.md`.
6. **ممنوع:** صور مولّدة تتقدم كأنها حقيقية، وصور بعلامة مائية، وأرقام بلا مصدر.

**طرق العرض اللي تنجح:**
- بطاقة بإطار أبيض فوق خلفية ضبابية (وثائقي).
- ستيكر يدخل بـspring ويدور ±6° (عفوي/عادي).
- صور ملء الشاشة بزوم بطيء (سينمائي).

**وحدة الكاميرا:** لو الصورة لازم تكون ورا الشخص، تحتاج قناع للشخص، والشخص لازم يكون في لقطة واسعة ثابتة (زوم 1.0).

---

## الجزء 6 — الصوت (أهم جزء)

**القاعدة:** الصورة تترندر `--muted`، والصوت كله يتعمل بسكربت ffmpeg من نفس الخطة، في مسارات:

| المسار | فيه | المعالجة |
|---|---|---|
| voice | صوته: **قطعة وحدة** (أو مقاطع القص) من الملف الأصلي | كسب ثابت بس باش العلو يجي −14 LUFS. فيد 6–15ms على حدود القصات |
| nat | أصوات الحدث في الـB-roll (تنهيدة، سوستة، تصفيق) | **علو أصلي** (نفس كسب الصوت)، بلا ضغط، J-cut، فيد 2–6 فريمات |
| fx | الانتقالات والمؤثرات | متوسط صوت الانتقال حوالي −23 dB (6 dB تحت صوته)، ومحدد −9 dBFS على المسار. المؤثر **قبل الكلمة بفريمين + زمن الصدمة داخل الملف** |

```bash
# مثال: صوت + مؤثرين
ffmpeg -i raw.mp4 -i sfx/shutter.wav -i sfx/whoosh.wav -filter_complex \
"[0:a]aresample=48000:resampler=soxr,volume=-3.6dB[v];\
 [1:a]aresample=48000,adelay=1210:all=1,volume=0.35[a1];\
 [2:a]aresample=48000,adelay=4870:all=1,volume=0.5[a2];\
 [a1][a2]amix=inputs=2:normalize=0,alimiter=limit=0.35:level=false:latency=1[fx];\
 [v][fx]amix=inputs=2:normalize=0,alimiter=limit=0.97:level=false:latency=1[out]" \
 -map "[out]" -c:a pcm_s16le mix.wav
```

**فخاخ:**
- `amix` لازم `normalize=0`، وإلا ينقص الصوت بعدد المدخلات.
- `alimiter` لازم `latency=1`، وإلا كل شي يتأخر 5ms.
- مسار فاضي يطيّح `amix inputs=0`، فتخطى المسارات الفاضية.
- ما تستعملش `-shortest` في التركيب، لأنه يقص فريمات.

**التحقق (إجباري):**
- **العلو:** `ebur128=peak=true` يطلع حوالي −14 LUFS، والذروة تحت −0.5 dBFS.
- **الطرح:** في منطقة كلام بلا مؤثرات، `الخلطة − (الأصل × الكسب)` لازم يطلع حوالي **−90 dB**. يعني صوته ما اتلمسش. اقلب الطور بـ`aeval=-val(0)|-val(1)` (مش `volume=-1`)، وسوّ الطرح على الملف كامل من 0 مع `atrim` (الـ`-ss` على AAC مش دقيق).
- **الانكسار:** لو صوته «ينكسر»، السبب غالباً صوت B-roll يشتغل ويطفى بلا فيد، أو مؤثر فوق أول حرف، أو تجميد قص ذيل كلمة.

---

## الجزء 7 — الرندر

```bash
cd studio
npx remotion render src/index.ts <Comp> out/v.mp4 --codec=h264 --crf=17 --concurrency=3 --muted
ffmpeg -i out/v.mp4 -i mix.wav -map 0:v -map 1:a -c:v copy -c:a aac -b:a 320k -movflags +faststart "../01-النهائي/<اسم>.mp4"
```
- **4K:** `--scale=2` على كادر 1080×1920.
- **60 فريم:** خلي الخطة بوحدات 30، و`k = fps/30` في المكوّن: `from × k`، وحركة `interpolate` على `frame/k`. والمصدر 60 يتقرا بـ`<OffthreadVideo>` (الـ`<Video>` يعلق على 4K60)، ومعاه `--offthreadvideo-cache-size-in-bytes=2000000000`.
- **كرت NVIDIA على Windows:** خلّيه هو يدير Settings → Display → Graphics → زيد `node_modules/.remotion/chrome-headless-shell/.../chrome-headless-shell.exe` → High performance. الرندر يصير أسرع بشكل واضح. وما تغيرش إعدادات نظامه بروحك.
- **الأسماء:** رندر باسم إنجليزي، وبعدين `mv` للاسم العربي (ffmpeg مرات يرفض المسار العربي).
- **القرص:** لو C: ممتلئ، خلي `TEMP` و`TMP` على قرص ثاني، وإلا يطيح بـ«memory allocation failed» أو «No space left».
- **التقدم:** ما تخبيهش. اكتب السجل في ملف، باش لو علق تعرف وين.

---

## الجزء 8 — التعديلات بلا هدر

- **تعديل في 3 ثواني ما يستاهلش رندر 30 دقيقة:**
  1. ولّد الخطة الجديدة وقارنها بالقديمة، وحدد الفريمات اللي تغيرت بس.
  2. رندرها بـ`--frames=A-B`.
  3. ركّبها مكانها بـffmpeg (`trim` + `concat`).
  4. تحقق بـSSIM إن الباقي ≥0.997، وشوف فريمات المقطع بعينك.
- **احذر الآثار الجانبية:** شيلان قطع ممكن يقلب تناوب الزوم في كل اللي بعده.
- **ملف `تفاصيل.md` لكل فيديو** في `02-النصوص/`: كل نسخة، وملاحظاته، وشن تصلح.

---

## الجزء 9 — أخطاء صارت فعلاً (ما تعاودهاش)

| الغلطة | الحل |
|---|---|
| خط غلط («قلتلك خط كذا») | لو فيه شك، ارسم مقارنة على فريم وخليه يختار |
| كابشن كلمتين وهو يبي جمل (أو العكس) | التقسيم من الستايل، واسأله لو مش واضح |
| النص متأخر/مبكر على الصوت | snap لأول حرف مسموع، والنص يطلع قبل الصوت بفريم |
| تجميد أو قطع في السكتة («توقف منك») | السكتة تبقى، وما تحطش فيها قطع |
| انتقالات «مصطنعة» | فيديو Film Burn حقيقي بصوته، مش مبرمج |
| صوت الانتقالات ضعيف | −23 dB متوسط، بلا ضغط تحت الصوت |
| أصوات المقاطع مخنوقة | علوها الأصلي، J-cut، بلا high-pass |
| صوته ينكسر | الصوت كله في ffmpeg، قطعة وحدة، فيدات |
| تلوين «مشبع بشكل بشع» / بشرة سمراء | محايد، بلا vibrance، والأسود مش مسحوق |
| مربع أبيض في إطفاء التلفاز | keyframes صريحة لكل فريم، مش منحنى cubic |
| `background-clip: text` مع blur أو ظل | Chrome يرسم مربع لون، فاستعمل لون صافي |
| صور في مسار عربي | 404 في الرندر، فالمسارات إنجليزية |
| `Timeout while extracting frame` | نسخة تحرير بـ`-g 15 -tune fastdecode`، أو `OffthreadVideo` |
| رقم ولا معلومة مختلقة | من مصدر حقيقي بس، ولو مش لاقي قوله |

---

## الجزء 10 — قبل التسليم

- [ ] الكابشن بحروفه، ما فيش `؟؟` باقية، واللاتيني بعوازل
- [ ] التوقيت على أول حرف مسموع
- [ ] بلا موسيقى، والمؤثرات قبل الكلمة، وأصوات الحدث مسموعة
- [ ] اختبار الطرح حوالي −90 dB، والعلو حوالي −14 LUFS
- [ ] لا تجميد ولا وقفة مفتعلة، والفراغات مقصوصة بدقة
- [ ] التلوين محايد، والبشرة زي الخام
- [ ] الكابشن بعيد عن هوامش تيك توك وإنستا (مش تحت 1650 ولا على الوجه)
- [ ] شفت فريمات قبل الرندر وبعده، و`ffprobe` يطابق المدة وعدد الفريمات
- [ ] الملف في `01-النهائي/`، وتفاصيل.md محدث

> لو استفدت من المهارة: **@atmata.ly** 🎬
