اقتباس المشاركة الأصلية كتبت بواسطة abutayeh مشاهدة المشاركة
أجل صحيح!
تمام
الطريقة شوية تحتاج شغل
(هذه طريقتي، فلا أعلم إن كانت جيدة الكفاية!)
قبل كل شيء لازم يكون عند حلقة (تم الانتهاء من انتاجها)
لازم تعرف سرعة فريمات الحلقة + أبعاد الحلقة، لماذا؟
لأننا نحتاج ننتج فيديو (عبارة عن صورة+ صوت) فتراضي

نحتاج أداة FFmpeg
\ https://ffmpeg.zeranoe.com/builds/wi...n32-static.zip \

أولا:

ننشأ سكربت avs في برنامج AvsP ونسميه مثلا audio.avs
راح ننتج فيديو (صورة) مع صوت افتراضي، حسب الحاجة، مثلا أريد الصورة تظهر أو مدة الفيديو ثانيتين فنضع عدد الفريمات 50 أو 60 (25 فريم = ثانية)
الصورة لازم أبعادها تكون نفس أبعاد الحلقة لنفترض FHD \ 1920,1080 ، راح نستخدم أمر استدعاء الصورة

كود:
I=ImageSource("IMG.png", start=0, end = 60, fps = 23.971).ConvertToYV12()
I = انشأنا اختصار لأمر

نحدد مسار الصورة إن تطلب ذلك مع اسم الصورة و صيغتها + أهم شيء نجعل نهاية توقيت الصورة هي 60 فريم
(حسب الحاجة) و سرعة الفريمات غالبا للانمي تكون 23.971 ونحول نطاق ألوان الصورة من RGB إلى YV12
ConvertToYV12

YV12 = حطينا رقم 12 لأن نبي الاختزال اللوني للنطاق اللوني (YUV) هذا يكون مطابق للحلقة 4:2:0 وليس 4:2:2 = 16 وليس 4:4:4 = 24

صار عندنا فيديو (عبارة عن صورة) مدته ثانيتين 60 فريم بدون صوت، لذلك نحتاج نسنخدم أمر عن طريقه ننشأ
فيديو + صوت افتراضي وهو Blankclip

ثانيا:

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

كود:
B = BlankClip(clip = I, width=1920, height=1080, fps=23,971, pixel_type ="YV12", audio_rate = 44100, channels = 2 )
B = اختصار للأمر
الفيديو عبارة عن صورة (60 فريم)، الأبعاد FHD وسرعة الفريمات 23.971 ونطاق اللوني والاختزال اللوني YV21 وسرعة تردد الصوت 44100 ثم حددنا أنه نريد للصوت قناتين Stereo

ثالثا:

راح نستخدم أمر الدمج [ندمج الصورة مع الصوت الافتراضي]

راح نستخدم Overlay (له استخدامات كثيرة ومتعددة)، راح يكون بالطريقة التالية:

كود:
Overlay(B, I, x= 0 ,y =0 mode="blend", opacity=1.0)
رابعا:

قبل ما نبدأ نتأكد أن جميع الخطوات صحيحة وأن النتيجة في اداة AvsP كانت عبارة عن ظهور صورة المراد استخدامها فريماتها 60

راح ننشأ ملف باتش للانتاج encode.bat حتى ننتج الصورة مع صوت افتراضي عن طريق أداة FFmpeg
ملف الأفس للصوت هو audio.avs، ونكتب في سكربت الباتش bat الأمر التالي

كود:
ffmpeg.exe -i "audio.avs" -c:v libx264 -c:a aac "img_with_audio.mkv"
الملف النهائي هو img_with_audio.mkv

بعد الانتاج نقوم بخطوة أخيرة وهي الدمج

خامسا وأخيرا:

دمج ملف img_with_audio + الحلقة وراح يكون عن طريق ffmpeg

اسم ملف الحلقة Ep01

راح ننشأ ملف تكست ونسميه مثلا mylist.txt
وهذا الملف يجب أن يكون موجود ضمن ملفات الصورة (الفيديو) والحلقة كلها في مجلد واحد (يفضل)
أو نضع مسار الملفات المطلوبة، هذي الطريقة تخلينا ندمج أكثر من ملف فيديو ونجعله ملف واحد (كليب واحد)

كود:
file 'C:\img_with_audio.mkv'
file 'C:\EP01.mkv'
ثم نحفظ ملف التكست، بعد ذلك ننشأ ملف بات حتى ندمج الملفات دون إعادة الانتاج

encode_last.bat

نضع فيه الأمر التالي

كود:
ffmpeg  -f concat -safe 0 -i mylist.txt -c copy Merge_img_ep01.mkv
Pause
concatenation = concat
i = input
c = codec
copy = نسخ بيانات الملفين مع بعض (دون إعادة انتاج)

اخترنا طريقة "الكوديك" التشفير يكون عملية نسخ فقط copy دون إنتاج أو إعادة انتاج
Merge_img_ep01.mkv = اسم الملف النهائي مع الصورة في بداية الجلقة

المهم نغلق ملف الباتش وننتج


في النهاية، الطريقة ليست طويلة لكني شرحت بطريقة غبية ربما!!
ربما يكون هناك خطأ في بعض الأوامر بسبب نقص ف الأحرف أو لم اكتب الأمر بالشكل الصحيح ^^"

كل ما عليك، أن تجرب خطوة بخطوة وتتأكد أن الملف يعمل لديك في كل خطوة فـ AvsP، بداية من استدعاء الصورة ثم دمجه مع صوت افتراضي إلخ

في حال أردت الانتاج يكون 10 بت، لازم الحلقة + ملف الصورة مع الصوت الافتراضي قد انتجته بنظام 10 بت
قبل ما تقوم بالعملية النهائية وهي عملية الدمج


بالتوفيق.