دليل التثبيت والاستخدام
Quran Resolve Kit، مشروع من 1LineArt
ثلاث خطوات: ثبّت مرة واحدة، وأعطِ الحقيبة تلاوة، ثم اعتمد النتيجة. تجد الحقيبة الآيات وتجلب الترجمة وتثبّت الخط القرآني وتنسّق النصوص لمقاسات 16:9 و9:16 و1:1. ليس عليك إلا المراجعة والاعتماد.
- المخرجات
- 16:9 و9:16 و1:1، طبقات ProRes 4444 وملفات MP4
- النص العربي
- الرسم العثماني من Tanzil دون إعادة كتابته
- الخط
- Amiri Quran
- جُرّبت على
- Linux مع Python 3.13
آلية العمل
ثلاث خطوات، ولا تقرر إلا في النهاية. يأتي النص العربي من ملف موثّق واحد ولا يُحرَّر بيدٍ أبدًا.
١. التثبيت (مرة واحدة)
يثبّت
setupحزم بايثون وChromium وFFmpeg وخط Amiri Quran ثم يفحصها. لا شيء آخر يُثبَّت يدويًّا.٢. الإنتاج make
أعطِ
makeتلاوتك. يصغي إليها ويطابق كلماتها مع نص Tanzil كاملًا ليعرف السورة وأول آية وآخر آية، وهل تبدأ بالاستعاذة والبسملة. ثم يجلب الترجمة، ويقسّم الآيات الطويلة إلى شاشات بقاعدة واحدة في كل المقاسات، ويقدّر زمن كل آية، ويبني الخلفيات والطبقات، ويفحص كل شيء، ويصنع فيديوهات مسودة صغيرة.مراجعتك
افتح
build/review.html: شاهد المسودات الثلاث، وقارن النص العربي بمصحف مطبوع، وصحّح الأزمنة أو النص عند الحاجة.٣. الاعتماد approve
يعيد
approveما غيّرتَه فقط، ويصدّر ملفات MP4 النهائية لـ 16:9 و9:16 و1:1، ويتحقق منها، ويكتب الخطوط الزمنية لـ Resolve.التجميع في Resolve (اختياري)
استورد الخطوط الزمنية بالأمر File › Import › Timeline وأضف شعارك، وصدّر من Resolve إن شئت. ويستطيع Resolve Studio بناء المشروع برمجيًّا.
نماذج من المخرجات



إطارات من تجربة اختبارية بتوقيتات وترجمة تجريبية. تعتمد مخرجاتك على نصك وصوتك وقالبك.
المتطلبات
كل ما هنا مجاني عدا DaVinci Resolve Studio، ولا تحتاج إليه إلا لبناء المشروع برمجيًّا. يثبّت setup الباقي عنك؛ تحتاج فقط إلى بايثون.
Python 3.9 أو أحدث
جُرّبت الحقيبة على Python 3.13. يثبّت setup الحزم المذكورة في requirements.txt (Playwright وPillow وfaster-whisper وstatic-ffmpeg) في .venv خاص.
Chromium وFFmpeg والخط
يثبّتها setup: يشكّل Chromium الحروف العربية، ويرمّز FFmpeg الفيديو (تُجلب نسخة جاهزة إن لم تكن لديك)، ويُنزَّل خط Amiri Quran ويُفحص ويُثبَّت إن كان ناقصًا.
الإنترنت في المرة الأولى
للحزم ولنموذج التعرّف على الكلام (مئات الميغابايتات، عند أول make فقط) ولنص Tanzil وللترجمة. بعد ذلك يمكن إعادة بناء المشروع دون اتصال.
DaVinci Resolve
تصلح أي نسخة لاستيراد الخطوط الزمنية. تحتاج طبقات ProRes إلى Resolve 19.1.4 أو أحدث في Windows وLinux. البناء التلقائي يحتاج Studio.
تلاوتك
ملف MP3 أو WAV أو M4A. لا شيء غيره: تُوجد الآيات والنص والترجمة والأزمنة عنك.
التثبيت (الخطوة ١)
فك ضغط الحقيبة وشغّل setup. ينشئ بيئة بايثون خاصة ويثبّت الحزم وChromium، ويجلب FFmpeg والخط القرآني إن كانا مفقودين، ثم يفحص كل شيء.
فك ضغط الحقيبة
انقر بزر الفأرة الأيمن على
quran-resolve-kit.zipواختر Extract All، ثم افتح الطرفية داخل المجلد الجديد.cd quran-resolve-kitشغّل setup
أمر واحد. ينشئ مجلد
.venvداخل الحقيبة ويثبّت فيه كل شيء، ويجلب FFmpeg والخط، ثم يجري الفحوص. لا شيء يحتاج إلى تفعيل: تستخدمه الأوامر اللاحقة تلقائيًّا.py quran_kit.py setup
فك ضغط الحقيبة
فك ضغط الملف، ثم افتح Terminal وانتقل إلى المجلد الجديد بالأمر
cd. استخدم أحدث نسخة من الحقيبة: إن لم يظهرsetupفي نص المساعدة فهذه نسخة قديمة.unzip quran-resolve-kit.zip cd quran-resolve-kitشغّل setup
أمر واحد. ينشئ مجلد
.venvداخل الحقيبة ويثبّت فيه كل شيء، ويجلب FFmpeg والخط، ثم يجري الفحوص. لا شيء يحتاج إلى تفعيل: تستخدمه الأوامر اللاحقة تلقائيًّا.python3 quran_kit.py setup
فك ضغط الحقيبة
فك ضغط الملف ثم افتح الطرفية داخل المجلد الجديد.
unzip quran-resolve-kit.zip cd quran-resolve-kitشغّل setup
أمر واحد. ينشئ مجلد
.venvداخل الحقيبة ويثبّت فيه كل شيء، ويجلب FFmpeg والخط، ثم يجري الفحوص. لا شيء يحتاج إلى تفعيل: تستخدمه الأوامر اللاحقة تلقائيًّا. على Debian أو Ubuntu، إن قال Chromium إن مكتبات ناقصة فشغّل الأمر الثاني. وإن كانتvenvمفقودة فشغّل أولًاsudo apt install python3-venv.python3 quran_kit.py setup # only if Chromium then reports missing system libraries: sudo .venv/bin/playwright install-deps chromium
python3 في macOS وLinux وpy في Windows في كل أمر بهذا الدليل (يكتب الدليل python). يُظهر python quran_kit.py doctor ما هو جاهز، ويعيد doctor --fix جلب FFmpeg والخط.مشروع يدوي (اختياري)
لا تحتاج إلى هذا القسم إن استخدمت make، فهو ينشئ مجلد المشروع ويجلب النص والترجمة ويجد الآيات بنفسه. اقرأه حين تريد تحرير project.json أو تقديم أزمنتك أو العمل دون التعرّف على الكلام.
أنشئ مجلد المشروع
شغّل
initمن داخل مجلد الحقيبة. ينشئproject.jsonوtimings.csvوdata/وmedia/. اضبط السورة ونطاق الآيات على تلاوتك. ضع المسار بين علامتي اقتباس دائمًا.python quran_kit.py init "../my-surah" --surah 112 --from 1 --to 4 --fps 25نزّل نص القرآن من Tanzil
في الصفحة tanzil.net/download اختر نوع القرآن Uthmani والإخراج Text (with aya numbers)، وأبقِ علامات الوقف وعلامات السجدة، واحفظ الملف باسم
data/quran-uthmani.txt. اقرأ شروط Tanzil: يجب أن يبقى النص دون تعديل، وأن يُنسب إلى مصدره.أضف الترجمات (اختياري)
تستخدم الترجمات من tanzil.net/trans التنسيق
surah|ayah|text، وكذلك ملف النص العادي من The Clear Quran (انظر «مصادر قرآنية»). احفظ كل ترجمة فيdata/وأدرجها ضمنtranslationsفيproject.json.أضف التلاوة
ضع ملف MP3 أو WAV في
media/. والأفضل ملف WAV للمونتاج.اكتب أو قدّر التوقيتات
افتح
timings.csvواستعن بالمثال أدناه. الآية 0 هي البسملة، وتُستخدم فقط إذا تضمنتها التلاوة ولم تكن السورة الفاتحة أو التوبة. أضف صفوفًا برقمword(يبدأ من 1) للحصول على توقيت دقيق للكلمات؛ وبدونها تُوزَّع أوقات الكلمات تقريبيًا ويُنبَّه إلى ذلك. أو تخطَّ ذلك: يقدّرrun --also align --apply-alignأزمنة الآيات من تسجيلك (استخدم ayah -1 للاستعاذة إن بدأت بها التلاوة، واضبطistiadhaعلى true). راجع النتيجة وصحّحها قبل النشر.راجع project.json
افتحه في محرر شيفرة وتأكد من أسماء الملفات ومعدل الإطارات. استخدم معدل إطارات مصدر التلاوة، ولا تخلط بين المعدلات. انظر العمل مع ملفات JSON أدناه.
تحقق من النص
شغّله مع وضع المسار بين علامتي اقتباس. توقع أن يعرض الأمر السورة وعدد الآيات والبصمة. إن لم يوجد ملف النص حاول الأمر تنزيله، وإلا طبع خطوات التنزيل اليدوي.
python quran_kit.py text -c "../my-surah/project.json"
-c نسبةً إلى هذا المجلد، والمسار الذي يحتوي مسافات يحتاج علامتي اقتباس.my-surah/
project.json
timings.csv
data/
quran-uthmani.txt
eng-ummmuhammad.txt (translation fetched by make)
media/
recitation.wav
build/ (created by the kit){
"name": "Surah_Ikhlas",
"surah": 112,
"ayah_start": 1,
"ayah_end": 4,
"text_file": "data/quran-uthmani.txt",
"audio": "media/recitation.wav",
"timing_input": "timings.csv",
"fps": 25,
"formats": ["16x9", "9x16", "1x1"],
"istiadha": false,
"highlight": "progressive",
"ayah_marker": true,
"translation_mode": "overlay",
"translations": [
{"id": "en", "file": "data/eng-ummmuhammad.txt", "label": "Saheeh International", "lang": "en", "dir": "ltr", "enabled": true}
],
"caption_chunks": "auto",
"align": {"backend": "auto"},
"audio_enhance": {"enabled": false, "preset": "recitation"},
"export": {"video_bitrate_mbps": {"16x9": 12, "9x16": 12, "1x1": 10}, "audio_kbps": 192},
"corrections": "corrections.json",
"theme": "theme.default.json",
"out_dir": "build"
}# ayah -1 = isti'adha, 0 = Basmala. Or let the kit estimate this file: run ... --also align --apply-align
surah,ayah,start,end,word
112,0,0.000,3.000,
112,1,3.400,7.000,
112,2,7.400,10.000,
112,3,10.400,14.000,
112,4,14.400,19.000,العمل مع ملفات JSON
- ما هو. ملف JSON نص عادي بترميز UTF-8 وامتداده
.json. والملفproject.jsonوملف القالب كلاهما بهذه الصيغة. - الفتح والتحرير. اسحب الملف إلى أي محرر شيفرة: Visual Studio Code أو Sublime Text أو Notepad++. وفعّل تلوين صيغة JSON أثناء التحرير.
- التحقق. قبل تشغيل الحقيبة، افحص تعديلك بأداة JSONLint أو JSON Editor Online أو منسّق محررك المدمج. يكفي نقص فاصلة أو علامة اقتباس ليصبح الملف غير صالح، فتحقق دائمًا.
master_text.json هو النص العربي الوحيد الذي تعرضه الحقيبة. لا تلصق نصًا عربيًا من أداة توقيت أو من صفحة ويب في المشروع أبدًا.الإنتاج والاعتماد (الخطوتان ٢ و٣)
ينفّذ make كل شيء حتى مراجعتك، ويُتمّ approve العمل. وبقية الأوامر تعيد مرحلة واحدة. تُتخطى المراحل المنتهية التي لم تتغير مدخلاتها؛ أضف --force للإعادة. استبدل NAME باسم مشروعك.
| الأمر | وظيفته | المخرجات |
|---|---|---|
setup | تثبيت لمرة واحدة: .venv خاص والحزم وChromium وFFmpeg وخط Amiri Quran، ثم الفحوص. | .venv with the packages, Chromium, ffmpeg and the font (once) |
make RECITATION [--translation ur --reciter NAME --portrait FILE --fps 24 --formats 9x16] | الخطوة ٢. تدخل التلاوة. يثبّت ما ينقص، ويجد الآيات بالإصغاء، وينزّل نص Tanzil والترجمة (الافتراضية Saheeh International؛ وتستطيع --translation ur أو en.clear أو ar.jalalayn وغيرها)، وينسّق النصوص، ويبني الخلفيات والطبقات، ويفحصها، ويكتب المسودات وصفحة المراجعة. --surah N --from A --to B يتجاوز الإصغاء. | projects/NAME/: project.json, CREDITS.txt, build/review.html, build/preview/NAME_preview_*.mp4 |
approve [PROJECT] | الخطوة ٣. بعد مراجعتك: يصدّر ملفات MP4 ويتحقق منها ويكتب الخطوط الزمنية لـ Resolve. يلتقط ما غيّرتَه في صفحة المراجعة. --package يضغط المشروع أيضًا. | build/final/NAME_*.mp4 and build/NAME_*.fcpxml |
translations [LANGUAGE] | يعرض الترجمات وكتب التفسير التي يقبلها --translation، مثل translations urdu. | the list of translation and tafsir editions |
run [--from X --to Y --only X --also align --force] | ينفّذ المراحل بالترتيب ويتوقف عند أول إخفاق. يضيف --also align التوقيت التلقائي، ويضيف --also export --also verify ملفات MP4. | all stages up to check; finished stages are skipped |
status | يعرض المراحل المحدّثة وغير المحدّثة وغير المنفَّذة. | which stages are up to date |
text | يتحقق من ملف Tanzil ويبني النص المرجعي لمدى آياتك، مع SHA-256 لكل آية. | build/master_text.json |
enhance [--compare --bypass] | تحسين صوت اختياري لا يمسّ الأصل. يكتب --compare ملف مقارنة A/B، ويُبقي --bypass الصوت الأصلي. | build/NAME_enhanced.wav, NAME_ab_compare.wav |
align [--apply] | أزمنة الآيات: من أزمنة كلمات مُعرِّف الكلام حين تطابق النص (auto وهو الافتراضي)، وإلا فتقدَّر من الوقفات (energy)؛ ومنها أيضًا asr-json وwhisper. ينسخ --apply النتيجة إلى timings.csv مع نسخة احتياطية. هو تقدير: استمع إلى كل آية. | build/timings.auto.csv |
review | يبني صفحة دون اتصال فيها الموجة الصوتية وتعديل زمن كل آية ونصها وموضعها ومحاذاتها وقائمة بكل التصحيحات. صدّر منها timings.csv وcorrections.json. | build/review.html (with the draft videos) |
timing [--snap] | يستورد CSV أو SRT عربيًا ويتحقق منه ويكتب ملفات SRT. ينقل --snap حدود الآيات إلى أقرب صمت. | build/timing.json, NAME_arabic.srt, NAME_en.srt, timing_report.txt |
background / bgpreview | يولّد حلقة خلفية متكررة بكل نسبة (40 ثانية افتراضيًا). يعرض bgpreview صورًا لكل زخرفة دون ترميز فيديو. | build/NAME_bg_16x9.mov, _9x16, _1x1 / preview PNGs |
render | يرسم كل حالة نصية في Chromium ويبني الطبقات الشفافة مضبوطة على الإطار لكل نسبة. | build/NAME_overlay_16x9.mov, _9x16, _1x1 |
preview [--full] | يصنع مسودات H.264 صغيرة لكل مقاس من أجل المراجعة. --full للحجم الكامل. | build/preview/NAME_preview_16x9.mp4, _9x16, _1x1 |
check | يتحقق من بصمات النص وترتيب الآيات والأزمنة والتباين والخطوط وعدد إطارات الطبقة. يخرج بخطأ إن أخفق شيء. | build/check_report.txt |
export | يكتب ملف MP4 النهائي لكل نسبة: H.264 وAAC بسرعة 192 كيلوبت، و10–12 ميغابت/ث افتراضيًا، ومعدل الإطارات مثل المشروع. | build/final/NAME_16x9.mp4, _9x16, _1x1 |
verify [--file X --format F] | يفحص ملف MP4: الحاوية والترميز والحجم ومعدل الإطارات وعددها وطول الصوت وإزاحته وظهور النص وتباينه، مع صفحة لقطات. يفحص --file فيديو صُدّر من Resolve. | build/final/NAME_FORMAT_verify.txt, contact sheet |
timeline | يكتب خطًّا زمنيًّا FCPXML لكل نسبة لاستيراده عبر File › Import › Timeline في Resolve (يعمل في الإصدار المجاني). | build/NAME_16x9.fcpxml, _9x16, _1x1 |
resolve [--dry-run] [--render] | يبني مشروع Resolve بالبرمجة (Studio فقط). يطبع --dry-run الخطة. | Resolve project (Studio only) |
package [--with-video --drb F] | يضغط كل ما يلزم لإعادة فتح المشروع وإعادة تصديره، مع قائمة SHA-256. | NAME_project_bundle.zip |
audio / rendertest / svgpage | أدوات مساعدة: قائمة الصمت، ومعاينة H.264 سريعة، وورقة تشكيل للمقارنة مع Text+، وصفحات المصحف من Quran SVG. | helpers: silences, shaping sheet, mushaf pages |
python quran_kit.py setup
python quran_kit.py make recitation.mp3
python quran_kit.py approvemake نموذج التعرّف على الكلام أيضًا. يمكنك تركه يعمل.الحصول على توقيتات دقيقة
الأتمتة تقترح أرقامًا، ولا تقدّم كلمات أبدًا. استمع دائمًا إلى بداية كل آية ونهايتها.
المحاذاة المدمجة
يجد align الوقفات ويلائم أطوال الآيات فيعمل دون اتصال. أعطى على الفاتحة أزمنة معقولة، لكنه تقدير مع درجة ثقة لكل آية. أزمنة الكلمات مستنتَجة.
صفحة المراجعة
تعرض review الموجة وكل آية. اسحب الأزمنة أو اكتبها، واستمع إلى كل آية، وصحّح النص أو الموضع، ثم صدّر الملفات. لا يُطبَّق شيء حتى تحفظ وتعيد التشغيل.
Quran Caption
تطبيق مكتبي مجاني ومفتوح المصدر. يذكر ملف README الخاص به تقسيم التلاوة آية بآية، واكتشاف الصمت والبسملة، وقصّ الترجمة بحسب المقطع. راجع وثائقه لمعرفة تصدير SRT، فلم أتمكن من تأكيده.
AyahFlow
خدمة ويب تعلن اكتشاف الآيات تلقائيًا ومزامنة الكلمات. لم أتمكن من التحقق من دقتها ولا من صيغ التصدير، فقارن نتائجها بسمعك على سورة واحدة أولًا.
- يُطابَق ملف SRT العربي مع الآيات بمقارنة هياكل الحروف. وتُسرد المطابقات الضعيفة أو المفقودة في التقرير.
- بدون صفوف
wordتُوزَّع أوقات الكلمات على الآية بحسب عدد الحروف. وهي تقريبية ويُنبَّه إلى ذلك. - تُوقف أخطاء التوقيت خط المعالجة: آيات متداخلة، أو آية تتجاوز نهاية الصوت، أو آية أقصر من إطارين، أو آية ناقصة، أو كلمات غير مرتبة.
- يطابق
asr-jsonكلمات مُعرِّف الكلام بكلمات Tanzil. اختُبر على نصوص تجريبية فقط، ولم يُشغَّلwhisperهنا. - استخدم
ayah = -1للاستعاذة و0للبسملة. نص الاستعاذة ثابت داخل الحقيبة وليس من Tanzil: قارنه بمصحف مطبوع.
مصادر قرآنية
مصادر للحصول على النص والترجمات والبيانات لاستخدامها مع الحقيبة. اقرأ شروط كل موقع قبل استخدام نصه أو صوته أو بياناته.
Tanzil: تنزيل نص القرآن
النص العثماني الموثّق الذي تعتمد عليه الحقيبة في كل ما هو عربي. اختر Uthmani وText (with aya numbers)، وأبقِ النص دون تعديل.
نزّل نص القرآنQUL: المكتبة القرآنية الشاملة
مركز مفتوح المصدر من Tarteel للمواد القرآنية الرقمية: نصوص بالرسم العثماني والمدني موحّدة، ومخططات للمصحف، وتسجيلات صوتية بتوقيتات زمنية، ومجموعات بيانات في قواعد اللغة القرآنية، متاحة بصيغتي JSON وSQLite.
استخدم نصوصه وتوقيتاته للمقارنة، أو مصدرًا ثانيًا للتوقيتات. تقرأ الحقيبة ملفات CSV وSRT، فحوّل التوقيتات إلى التنسيق المعروض في تجهيز مشروع. افحص صيغة كل ملف أولًا؛ فلم تُجرَّب بيانات QUL مع الحقيبة.
زيارة qul.tarteel.aiThe Clear Quran
ترجمة إنجليزية حديثة معتمدة من العلماء، للدكتور مصطفى خطاب، مع سرد صوتي إنجليزي خاشع للترجمة، ودروس قائمة على التفسير.
ملفات النص العادي بتنسيق surah|ayah|text الذي تقرؤه الحقيبة: احفظ أحدها في data/ وأدرجه في project.json. لا يذكر الموقع ترخيصًا لإعادة استخدام نصه أو صوته، فاحصل على إذن أو راجع شروطه قبل استخدام الترجمة في فيديو.
التنزيلات
Quran JSON
نص القرآن وحروفه اللاتينية (transliteration) وترجماته بصيغة JSON، في حزمة npm.
مفيد للمقارنة أو للترجمات. تقرأ الحقيبة ملفات نصية بتنسيق Tanzil، فحوّل JSON أولًا، وخذ النص العربي نفسه من Tanzil وحده.
عرض على npmالتجميع في DaVinci Resolve
استورد الخطوط الزمنية التي تكتبها الحقيبة، أو ابنِ المشروع برمجيًّا مع Resolve Studio.
اسمح بالبرمجة النصية الخارجية
في Resolve افتح Preferences › System › General واضبط External scripting using على Local. يذكر دعم Blackmagic أن هذه الميزة خاصة بإصدار Studio. أبقِ Resolve قيد التشغيل.
عاين الخطة
يطبع التشغيل التجريبي ما سيُنشأ ويسرد الملفات الناقصة. إن لم يُعثر على Resolve فاضبط
RESOLVE_SCRIPT_APIعلى مجلد البرمجة النصية فيه.python quran_kit.py resolve -c ../my-surah/project.json --dry-run python quran_kit.py resolve -c ../my-surah/project.jsonexport RESOLVE_SCRIPT_API="/path/to/Developer/Scripting"ابنِ المشروع
تنشئ الحقيبة خطًا زمنيًا لكل نسبة، وتستورد الملفات إلى مجلدات، وتضع المقاطع، وتضيف علامة عند بداية كل آية. إذا كان اسم المشروع موجودًا أُضيفت إليه لاحقة، فلا يُستبدل شيء. أضف
--renderلوضع مهام التصدير في الطابور.راجع
شغّل كل خط زمني بالصوت وقارن كل علامة بالتلاوة.
التصدير
تحاول الحقيبة أيضًا حفظ ملف مشروع
.drbوضبط صوت AAC ومعدل البت لكل مهمة تصيير. إعدادات Deliver هذه غير مؤكدة: إن رفض Resolve أحدها أخبرتك الحقيبة وضبطته أنت في صفحة Deliver.
الأسرع: استورد الخط الزمني
شغّل
timelineثم استخدم File › Import › Timeline واختر ملف.fcpxmlلنسبتك. يضع حلقات الخلفية والطبقة والصوت وعلامة عند كل آية. لم يُجرَّب في Resolve حقيقي: إن رُفض فاتبع الخطوات التالية.أنشئ المشروع
افتح Project Settings › Master Settings واضبط دقة الخط الزمني على 1920 × 1080 (أو 1080 × 1920) ومعدل الإطارات على قيمة
fpsفيproject.json.استورد الملفات
استخدم File › Import › Media لاستيراد الصوت وحلقة الخلفية والطبقة النصية لنسبتك، وكلها من مجلد
build.ضع المقاطع
ضع الصوت على المسار A1، وكرر حلقة الخلفية على V1 حتى ينتهي الصوت، وضع الطبقة النصية على V2 من أول إطار.
أضف مسارات الترجمة (اختياري)
إذا ضبطت
translation_modeعلىsubtitle_trackفاستورد ملف SRT للترجمة بـ File › Import › Subtitle.أنشئ النسبة الثانية
كرّر الخط الزمني، وألغِ تحديد Use Project Settings في إعدادات الخط الزمني، وغيّر الدقة، ثم بدّل الخلفية والطبقة بملفات النسبة الأخرى.
إن تعذّر استيراد الطبقة
لا تقرأ الإصدارات القديمة من Resolve على Windows وLinux صيغة ProRes. حوّل الطبقة إلى سلسلة صور PNG واستوردها بوصفها سلسلة صور.
ffmpeg -i build/NAME_overlay_16x9.mov build/overlay_16x9/%06d.png
تضم الحقيبة الملف examples/Quran Resolve Kit.drb، وهو مشروع DaVinci Resolve جاهز لسورة الفاتحة بثلاثة خطوط زمنية ممتلئة: أفقي (1920 × 1080) وعمودي (1080 × 1920) ومربع (1080 × 1080). في كلٍّ منها خلفية وصورة شخصية وعنوان سورة وتسعة عناوين عربية وتسعة إنجليزية (والآية 7 مقسومة على شاشتين) والتلاوة ومقطعا شعار. صُدّر من Resolve 21.1.1 فقد ترفضه الإصدارات الأقدم. لم أستطع فتحه في Resolve هنا؛ هذا الوصف من قراءة الملف. ويبني الأمر make التخطيط نفسه تلقائيًّا.
استورد المشروع
في Resolve افتح Project Manager وانقر بزر الفأرة الأيمن على مساحة فارغة واختر Import Project ثم حدّد
Quran Resolve Kit.drb. أو من القائمة: File › Import Project.افتحه وأعد ربط الوسائط
انقر نقرًا مزدوجًا على المشروع. ستظهر التلاوة والصورة ومقطعا الشعار غير متصلة لأن الملف حُفظ على جهاز Mac بمجلدات أخرى. في Media Pool حدّدها وانقر بالزر الأيمن Relink Selected Clips واختر المجلد الذي فيه نسخك. لا صورة لديك؟ احذف ذلك المقطع.
تأمّل طريقة بنائه
افتح كل واحد من الخطوط الزمنية الثلاثة. العناوين الفرعية نصوص مكتوبة يدويًّا، وهذه الطريقة اليدوية. وتحمل بعض أسماء المقاطع وحقول النص العادي هفوات (
المغبوببدلالمغضوب)، ولذلك لا تعيد الحقيبة كتابة العربية أبدًا.اصنع الشيء نفسه بالحقيبة
شغّل الأمرين أدناه بتلاوتك، وانظر في
build/review.html. ثم استوردbuild/NAME_16x9.fcpxmlو_9x16و_1x1بالأمر File › Import › Timeline. وأضف شعارك فوق الطبقة إن أردت مقطعي البداية والنهاية.python quran_kit.py make recitation.mp3 python quran_kit.py approveأو أعد استخدام المثال
أبقِ مشروع المثال واستبدل عناوينه المكتوبة فقط: احذف مقاطع
Ar_SubtitleوEn_Subtitle، واستوردbuild/NAME_overlay_16x9.movوbuild/NAME_bg_16x9.movوضعهما فوق التلاوة. وكرّر ذلك لملفي9x16و1x1.
تخطيط الخط الزمني
| المسار | المحتوى |
|---|---|
V2 | الطبقة النصية الشفافة NAME_overlay_16x9.mov |
V1 | حلقة الخلفية NAME_bg_16x9.mov |
A1 | التلاوة NAME_audio_48k.wav |
.drb واستيراد FCPXML على نسخ محاكاة أو ملفات سليمة البنية، لا على Resolve حقيقي. شغّل التجربة أولًا وراقب أول بناء. الطريقة اليدوية تعمل دائمًا.rendertest والصق نصًا من الورقة في Text+ بخط Amiri Quran، وقارن اتصال الحروف والتشكيل وترتيب الكلمات بالصورة. ويذكر أحد منشورات المنتدى أن النص العربي قد يختفي من مسارات الترجمة عند تفعيل الحد الخارجي (الموضوع). وإذا اختلف أي شيء فاستمر في استخدام الطبقة المولَّدة.تخصيص المظهر
انسخ config/theme.default.json واحتفظ فيه بما غيّرته فقط، ثم وجّه theme في project.json إلى ملفك. يُدمج فوق الافتراضيات. كل المفاتيح مذكورة في docs/CONFIG.md.
{
"arabic": {
"color": "#FFFFFF",
"sizes": { "16x9": 110, "9x16": 96, "1x1": 92 }
},
"animation": { "style": "elastic", "in_frames": 14, "out_frames": 14 },
"background": {
"layers": { "a": { "pattern": "khatam", "rotation": { "enabled": true, "degrees_per_second": 2 } } }
}
}| الإعداد | ما يتحكم فيه | القيمة الافتراضية |
|---|---|---|
highlight (project.json) | تظليل verse أو word أو progressive. | progressive |
arabic.sizes | حجم الخط العربي بالبكسل لكل نسبة. تصغر الآيات الطويلة تلقائيًا. | 16x9: 124, 9x16: 108, 1x1: 104 |
captions.auto_max_letters | عدد الحروف العربية في الشاشة الواحدة عند تقسيم الآيات الطويلة (القاعدة نفسها لكل مقاس). وتُقسَّم الترجمة في الموضع المقابل. | 16x9: 36, 9x16: 26, 1x1: 30 |
header.enabled | صندوق العنوان: اسم السورة بالعربية ونقله الحرفي ومعناه (واسم القارئ إن أعطيته). enabled: false يزيله. | true (title box with the surah name) |
arabic.color / highlight_color | لون النص، ولون الكلمة التي تُتلى. | #F6EFD9 / #FFD36B |
arabic.upcoming_opacity | مدى خفوت الكلمات التي لم تُتلَ بعد (من 0 إلى 1). | 0.6 |
translation.size_ratio | حجم الترجمة كنسبة من حجم العربية. | 0.38 |
translation.position / align | موضع الترجمة (below أو above) ومحاذاتها. يمكن لكل ترجمة تجاوزهما وإيقافها بـ enabled. | below / center |
layout.16x9.margin_x | الهامش الجانبي كنسبة من عرض الإطار. الإزاحة الرأسية والمحاذاة تُضبطان لكل نسبة في الكتلة نفسها. | 0.10 |
animation.style | نمط الدخول والخروج: elastic أو fade أو rise أو none. | elastic |
animation.in_frames / out_frames | مدة الدخول والخروج بالإطارات. | 14 / 10 |
background.layers.a.pattern | زخرفة الطبقة A: octagram أو khatam أو rosette أو lattice أو interlace. الطبقة B مستقلة. | octagram |
background.layers.a.opacity | مدى ظهور الزخرفة. اللون والمقياس والإزاحة والمحاذاة تُضبط لكل طبقة. | 0.16 |
background.layers.a.rotation | سرعة الدوران واتجاهه. تقرّب الحقيبة السرعة إلى أقرب قيمة تتكرر بلا فاصل وتخبرك بذلك. | off (degrees_per_second, direction) |
background.gradient | تدرّج لوني اختياري خلف الزخارف، أو مقطعك الخاص عبر background.footage. | off (from, to, angle) |
background.balance.caption_scrim | منطقة داكنة ناعمة خلف النص تُبقيه مقروءًا فوق الزخرفة. التعتيم وظهور الزخرفة يُضبطان في الكتلة نفسها. | on |
background.loop_seconds | ثواني كل حلقة خلفية. يتحرك التمرير عددًا صحيحًا من البلاطات في كل حلقة. | 40 |
marker.color | لون علامة نهاية الآية. | #C9A24B |
صفحات المصحف (اختياري)
يجلب الأمر svgpage صفحات من Quran SVG ويزيل لون خلفية الصفحة الفاتح لتستقر الصفحة فوق خلفيتك. الصفحات مسارات مفرَّغة، فيمكن تغيير ألوانها لكن لا يمكن تنسيقها كنص. راجع شروط استخدام الرسوم قبل أي استعمال تجاري.
الفحص والتصدير
شغّل check ثم راجع هذه القائمة. ضع علامة على البنود أثناء العمل؛ وتبقى علاماتك محفوظة في هذا المتصفح.
0 / 10
التصدير والتحقق
- شغّل
export: يكتب MP4 (H.264 وAAC) بمقاسات 1920 × 1080 و1080 × 1920 و1080 × 1080 بمعدل إطارات المشروع. نطاق شائع للعمل هو 10–16 ميغابت/ث؛ وهو عادة لا قاعدة منصة، فراجع نصيحة منصتك الحالية. - شغّل
verify. يفحص الحاوية والترميز والحجم وعدد الإطارات وإزاحة الصوت وظهور كل آية، ثم يكتب صفحة لقطات. اقرأ العربية على الصفحة بنفسك. - تصدّر من Resolve بدلًا من ذلك؟ استخدم صفحة Deliver بـ H.264 في MP4 وصوت AAC ومعدل إطارات الخط الزمني والمقاسات نفسها، ثم شغّل
verify --file FILE.mp4 --format 16x9. - شغّل
packageلحفظ المشروع القابل للتحرير والصوت الأصلي والمعالَج والنص وملفات SRT والطبقات والخلفيات والقالب والخطوط والإعدادات والتقارير معًا.
حل المشكلات
الملف ليس نص الرسم العثماني مع أرقام الآيات، أو أن بعض الأسطر ناقصة. نزّله من Tanzil مرة أخرى بالخيارات الواردة في قسم تجهيز مشروع، وأبقِ الملف دون تعديل.
يسرد الأمر text كل حرف خارج نطاقات الحروف العربية. افحص ملف المصدر. لا تحذف أحرفًا من النص المرجعي؛ بل أصلح المصدر.
اقرأ build/timing_report.txt. الأخطاء هي آيات متداخلة، أو آية تتجاوز نهاية الصوت، أو آية أقصر من إطارين، أو آية ناقصة، أو أوقات كلمات غير مرتبة. أصلح ملف CSV أو SRT ثم شغّل timing من جديد.
أوقات الكلمات مُوزَّعة بحسب عدد الحروف ما لم تقدّم صفوف word. أضف توقيتات حقيقية للكلمات، أو اضبط highlight على verse.
هذه هي الملاءمة التلقائية، ويبلّغ عنها الأمر render. ارفع arabic.sizes إن سمحت الشاشة، أو قلّل الهوامش، أو قسّم الآية عند وقفة طبيعية.
تحتاج ProRes إلى Resolve 19.1.4 أو أحدث على Windows وLinux. وإلا فحوّل الطبقة إلى سلسلة صور PNG بالأمر أدناه واستوردها بوصفها سلسلة صور.
تحتاج النصوص البرمجية الخارجية إلى Resolve Studio، مع ضبط External scripting using على Local وتشغيل Resolve. وفي الإصدار المجاني استخدم الطريقة اليدوية.
تعتمد معالجة العربية في Resolve (وصل الحروف والتشكيل) على إصداره. استخدم الطبقة المولَّدة للنص العربي، واستخدم نص Resolve نفسه للترجمات فقط.
شغّل python quran_kit.py setup من جديد: يعيد تثبيت Chromium في .venv الخاص بالحقيبة ثم يشغّل doctor. وعلى Debian أو Ubuntu شغّل أيضًا أمر install-deps الظاهر تحت «التثبيت».
شغّل python quran_kit.py doctor --fix: يجلب نسخة FFmpeg جاهزة إلى بيئة الحقيبة. وإن تعذّر ذلك (لا إنترنت، أو نظام غير مدعوم) فثبّت FFmpeg بنفسك: brew install ffmpeg في macOS (وHomebrew من brew.sh)، أو winget install Gyan.FFmpeg في Windows (ثم افتح طرفية جديدة)، أو sudo apt install ffmpeg في Linux. واستنساخ شيفرة FFmpeg بـ Git لا يثبّت شيئًا.
أنت تشغّل نسخة قديمة من الحقيبة. نزّل أحدث ملف ZIP وفك ضغطه، ثم شغّل python quran_kit.py --help؛ يجب أن تظهر فيها الأوامر setup وmake وdoctor.
لُصق محتوى ملفات في الطرفية فنُفّذ كل سطر منه كأنه أمر. أنشئ ملفات مثل project.json وtimings.csv في محرر نصوص أو محرر شيفرة، لا في الطرفية أبدًا. اكتب أو الصق فقط الأوامر الواردة في صناديق الشيفرة.
هذا المتغير اختياري ولا يُستخدم إلا مع Resolve Studio. لا تضبطه على المسار الوهمي الوارد في الأمثلة. ألغِ ضبطه بالأمر unset RESOLVE_SCRIPT_API أو وجّهه إلى مجلد Scripting الحقيقي.
المسار الذي يلي -c لا يشير إلى ملف موجود. يُقرأ المسار نسبةً إلى المجلد الذي تشغّل منه الأمر. أسهل حل هو make الذي ينشئ projects/NAME/project.json عنك. وإلا فشغّل init (الخطوة 1 في «تجهيز مشروع»)، ثم مرّر المسار الكامل لملف project.json الجديد، بين علامتي اقتباس إن احتوى اسم أي مجلد مسافات.
قصّر مقاطع الفيديو أو أطلها، ولا تغيّر سرعة الصوت أبدًا. أبقِ الصوت والطبقة على مساريهما، ثم شغّل render من جديد إن تغيرت التوقيتات.
align تقدير من الوقفات وطول الآيات. شغّل review واستمع إلى كل آية وصحّح الأزمنة وصدّر timings.csv ثم شغّل timing وrender من جديد. تُعاد المراحل المعتمدة على التغيير فقط.
تتتبع المراحل الملفات والإعدادات التي تستخدمها. شغّل status لترى المراحل التي أصبحت قديمة، أو أضف --force لإعادة مرحلة.
تُرسم كل طبقة دوّارة في كل إطار. استخدم loop_seconds أقصر، أو تمريرًا بدل الدوران، أو bgpreview لتحكم على الشكل أولًا. تُتخطّى الخلفيات التي لم تتغير في التشغيلات اللاحقة.
تأكد أن معدل إطارات الخط الزمني يساوي fps وأن الحجم يطابق النسبة. شغّل verify --file FILE.mp4 --format 16x9 واقرأ الرسالة: تسمّي الخاصية المختلفة.
تصغي الحقيبة بنموذج كلام وتطابق الكلمات مع القرآن. قد تفشل التسجيلات المشوشة أو القصيرة جدًّا؛ عندها تخبرك وتعرض درجة ثقتها. استخدم نموذجًا أكبر (--model medium) أو أعطِ الآيات بنفسك: make recitation.mp3 --surah 1 --from 1 --to 7. وراجع النطاق دائمًا في صفحة المراجعة.
ينزّل التشغيل الأول نموذج الكلام ونص Tanzil والترجمة. يحتاج إلى الإنترنت ومساحة قرص؛ أعد الأمر نفسه بعد انقطاع الشبكة. وإن تعذّر الوصول إلى Tanzil تطبع الحقيبة خطوة التنزيل اليدوي.
شغّل python quran_kit.py doctor --fix. يفحص أن ملف Amiri Quran يرسم الحروف العربية والعلامات القرآنية، وينزّله ويثبّته من جديد إن لم يفعل. أعد تشغيل Resolve بعد ذلك إن كنت تستخدم الخط في Text+.
ffmpeg -i build/NAME_overlay_16x9.mov build/overlay_16x9/%06d.pngهل أنت مستعد لكتابة أول سورة؟
نزّل الحقيبة واتبع خطوات التثبيت وشغّل خط المعالجة على سورة قصيرة أولًا.