المشاركة الأصلية كتبت بواسطة 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 بت
قبل ما تقوم بالعملية النهائية وهي عملية الدمج
بالتوفيق.
المفضلات