السلام عليكم و رحمة الله و بركاته
يسعدني اليوم أن أقدّم درسا متواضعا الهدف منه تدريب المنتجين العرب على إستخدام راوات الــ TS في
إنتاجاتهم من أجل إصدارات عربيّة ذات جودة أفضل
سنقسّم الدّرس إلى ستّة مراحل بإذن الله
و لكن قبل ذلك أفضّل أن أبدأ بــتعريفات بسيطة حول:
*ماهو الـ TS ؟
الـ TS أو الـ Transported stream يتممّ تسجيله مباشرة من التلفاز
بواسطة أجهزة خاصّة داعمة للـ HD يكون حجمه كبيرا نسبيّا
حوالي مابين 2 إلى 3 جيغا بالنسبة لحلقة الأنمي ذات مدّة 23 دقيقة
أمّا أبعاده فستكون 1440*1080 بترميز 3:4
( طبعا هاته الخصائص خاصة بالأنمي المسجّل من القنوات اليابانيّة)
*لمَ أنتج إنطلاقا من TS ؟
عندما تنتج إنطلاقا من workedraw فإنّ الناتج سيكون أقلّ جودة من لو أنّك إعتمدت على TS مباشرة
و هذا راجع إلى كون الـ workedraw قد تمّ ضغطه مرّة من إنطلاقا من الـ TS ثمّ تأتي
أنت و تضغطه مرّة ثانيّة و المعروف أنّه عند ضغطنا للفيديو فإنّنا سنفقد بعض التفاصيل لذا فالناتج دائما يكون
أقلّ جودة من الفيديو الأصلي لأن الضغط يتسبّب في فقدان نسبة من البيانات ترتبط قيمتها بالإعدادات التي وضعتها
*من أين أحصل على الـ TS ؟
يمكنكم الحصول على راوات الـ TS إمّا من مواقع التورنت كـ nyaa.eu
أو برامج مشاركة الملفّات كـ perfect dark و share2x
أو من موقع jpddl.com
أيضا هناك من يبيعه على النت مقابل مبلغ يتراوح ما بين 3 إلى 5 دولارات للحلقة الواحدة
الآن بعد هاته التعريفات البسيطة سننطلق لشرح طريقة الإنتاج مباشرة من الــ TS و سنبدأ بــ:
------------------------------------------------------------------
*المرحلة الأولى :
أوّلا و قبل كلّ شيء إفتح مجلدّا جديدا في مكان ما داخل حاسوبك
لكي يكون ورشة لعملك وضع فيها راو الـ TS ثمّ حمّل هذا البرنامج
DGMPGDec
بعد التحميل قم بفكّ الضغط عن الملف داخل ورشة العمل
الآن قم بنسخ هذا الملّف DGDecode.dll
و ضعه في مجلّد الـ plugins الخاص ببرنامج avisynth
الموجود في هذا المسار
بالنسبة لمستخدمي windows xpكود الـ PHP:C:\Program Files\AviSynth 2.5\plugins
أو في هذا المسار
بالنسبة لمستخدمي windows 7كود الـ PHP:C:\Program Files (x86)\AviSynth 2.5\plugins
الآن عد إلى ورشة العمل الخاصة بك و قم بفتح برنامج DGMPGDec بالضغط على هذه الأيقونة
فتظهر لك واجهة البرنامج كما توضّحه الصورة
إضغط على
file>open
ثم إستدع الراو ts الذي تريد العمل عليه ثم إضغط على ok
الآن إضغط على
video>field operation>Honor Pulldown Flags
مثلما توضّحه الصورة في الأسفل
أيضا إضغط على
audio>Output Method>Demux All Tracks
مثلما توضّحه الصورة في الأسفل
الآن و بعد القيام بكلّ هذا إضغط على
File > Save Project
و حدّد مكان الحفظ في مجلّد ورشة العمل التي فتحتها في البداية
مثلما توضّحه الصورة في الأسفل
فسيظهر لك هذا الجدول
إنتظر أن يكتب لك finish في الخانة المحدّدة بالأصفر ثم أغلقه
الآن توجّه إلى مجلّد ورشة العمل ستلاحظ ظهور ملفّين جديدين
أحدهما بإمتداد d2v. يحتوي على جميع المعلومات الخاص بفك تشفير ملّف الـ TS
و الثاني هو بإمتداد aac. عبارة عن ملفّ الصّوت
مثلما توضّحه الصورة في الأسفل
بهذا نكون قد أنهينا المرحلة الأولى و ننتقل الآن إلى :
-----------------------------------------------
*المرحلة الثانيّة:
في هذه المرحلة سنقوم بتحويل ملّف الصّوت إلى wav لتسهيل عمليّة قصّه
فيما بعد لذا قم بتحميل هذا الملّف
ثم قم بفكّ الضّغط عنه داخل ورشة العمل
ستظهر لك هاته الملفّات المبيّنة في الصورة أسفله
الآن قم بسحب ملّف ملفّ الصّوت ذو الإمتداد aac.
الذي حصلنا عليه في المرحلة الأولى إلى هذه الأيقونة faad.exe
هنا ستظهر شاشة سوداء مثل هاته
إنتظر إلى أن تختفي بعدها ستلاحظ ظهور ملفّ جديد بإمتداد wav. حجمه حوالي 300 ميغا
و بهذا نكون قد أنهينا المرحلة الثانيّة و ننتقل إلى :
---------------------------------------------
*المرحلة الثالثة:
هنا تبدأ مرحلة الجّد، أوّلا حمّل هذا الملّف
ثمّ فكّ الضغط عنه في مكان ما بعد ذلك من الملفّات التي ستظهر لك
قم بنسخ هذا الملّف TIVTC.dll
و ضعه في مجلّد الـ plugins الخاص ببرنامج avisynth
الموجود في هذا المسار
بالنسبة لمستخدمي windows xpكود الـ PHP:C:\Program Files\AviSynth 2.5\plugins
أو في هذا المسار
بالنسبة لمستخدمي windows 7كود الـ PHP:C:\Program Files (x86)\AviSynth 2.5\plugins
أيضا حمّل برنامج
avsp
و فكّ عنه الضّغط في أي مكان تريده من حاسوبك ثم إفتحه ستكون واجهته هكذا
إضغط على
file>save --SS-- as
سمّ الملّف loseless و إحفظه في ورشة العمل
الآن بعد ذلك و في برنامج الـ avsp أكتب داخله السطر الآتي:
كود الـ PHP:MPEG2Source("*****.d2v")
طبعا مكان النجوم ضع إسم الملّف الذي إستخرجته في المرحلة الأولى
الآن إضغط على F5
ستلاحظ ظهور الحلقة التي تعمل عليها مثلما توضّحه الصورة في الأسفل
حرّك المؤشّر في الأسفل للتجوّل بحريّة بين مشاهد الحلقة
لابّد انّك ستلاحظ هذا العيب :
هذا ما يسمّى بالـ combing (التمشيط بالعربيّة ) و هذا راجع إلى كون العرض في شاشة التلفاز يكون بنظام interlaced
بحيث يتّم تحديث الصورة على جزئين يتمّ عرضهما بفارق زمنّي بينهما
مثال على ذلك في هاته الصورة
لاحظوا جيّدا الصورة الأصلية و كيف يتمّ تقسيمها إلى جزئين
و عند العرض يتّم أولا عرض الخطوط الحمراء ( أو الزرقاء ) ثمّ يتّم عرض الخطوط الزرقاء ( او الحمراء )
و لأخذ نظرة عن كيف يتم ذلك فلاحظوا حركة الكرة أسفله
فهي تبيّن لنا كيف يكون البث بنظام interlaced
الآن قد يتبادر إلى ذهنكم السؤال التالي :
لماذا الحلقة تظهر بشكل طبيعي في التلفاز و لا تظهر لنا هاته العيوب إلاّ في شاشة الحاسوب ؟
الجواب هو ان شاشات الحواسيب تعرض بنظام progressive بحيث يكون يتمّ تحديث الصورة كاملة
مثلما تظهره الصورة في الأسفل
لاحظ كيف الكرة تتحرّك كاملة على المجال الزمني طبعا هذا في حالة كان الفيديو المعروض عليها بنظام prgressive
أمّا في حالة كان بنظام Interlaced فإنّ العرض سيكون مثلما توضّحه الصورة أسفله
كان هذا بين قوسين أتمنّى أن اكود قد وفّقت في شرح نقطة التداخل للأمانة فقط فالصور فوق ليست من صنعي بل أخذتها
من مقالة على النت لمن أراد الإطلاع عليها
الأن كيف السبيل للقضاء على هذا العيب
أضيفوا هذا السطر لسكريبت الـ avs الخاص بكم
طبعا مكان النجوم ضع إسم الملّف الذي إستخرجته في المرحلة الأولىكود الـ PHP:TFM(d2v="*****.d2v")
الآن إضغط على F5 و ستلاحظ ظهور الصورة كاملة و قد إختفى عيب الـ combing
طيّب مالذي حصل ؟ و أين ذهب ذلك العيب ؟
نحن طبّقنا فلتر TFM وظيفته هي تجميع كلّ فريم مع الفريم الذي يوافقه بحيث تصبح الصورة كاملة
الآن ننتقل إلى المرحلة التالية
نضيف هذه السطور
ليصبح السكريبت من الشكل التاليكود الـ PHP:video = last
WAVSource("***** PID 112 DELAY -398ms.wav")
DelayAudio(-398./1000)
AudioDubEx(video, last)
الأوامر الثلاثة الأخيرة هي لإستدعاء ملّف الصّوتكود الـ PHP:MPEG2Source("*****.d2v")
TFM(d2v="*****.d2v")
video = last
WAVSource("***** PID 112 DELAY -398ms.wav")
DelayAudio(-398./1000)
AudioDubEx(video, last)
الآن سنقوم بقصّ الإعلانات فكما سبق و ذكرت الـ TS يتمّ تسجيله مباشرة من شاشة التلفاز
لذا تكون فيه إعلانات تلفزيونيّة نحن لانحتاجها لذا سنقوم بقصّها بإستخدام الأمر trim
بحيث يكون الأمر على هذا الشّكل
ركزّوا معي جيّدا هذا الأمر يعني المقطع الذي تريد إنتاجه و ليس قصّهكود الـ PHP:trim(بداية الفريم , نهاية الفريم ) + trim(بداية الفريم , نهاية الفريم ) + trim(بداية الفريم , نهاية الفريم )
بمعنى آخر عندما أضع أمرا مثل هذا
فهذا معناه أنّني سأنتج المقطع الذي يبتدئ من الفريم 936 و ينتهي عند 4382كود الـ PHP:trim(936,4382)+trim(6181,22364)+trim(24164,48887)+trim(50686,51285)
إضافة إلى المقطع الذي يبتدئ من الفريم 6181 نتهي عند 48887 ...إلخ
أرجو ان تكون الفكرة قد وصلت الآن السؤال المهّم كيف نقوم بتحديد الفريمات
الأمر سهل يمكنكم ذلك بطريقتين إمّا عن طريق الميغوي أو عن طريق برنامج Avsp
سأشرح طريقة واحدة فقط بواسطة برنامج Avsp أما الميغوي فهي نفس الطريقة
إتجّه إلى البرنامج Avsp الذي كتبت فيه هاته الأوامر من قبل
و إضغط على F5 ستظهر لك فيديو الحلقة الآن بواسطة المؤشر التي تبيّنه الصّورةكود الـ PHP:MPEG2Source("*****.d2v")
TFM(d2v="*****.d2v")
video = last
WAVSource("***** PID 112 DELAY -398ms.wav")
DelayAudio(-398./1000)
AudioDubEx(video, last)
قم يتقديم الحلقة أو تأخيرها إلى أن تصل إلى الإعلانات
الآن بواسطة هذين الزّرين قم بالتقديم فريم فريم إلى أن تصل إلى بداية أو نهاية الإعلان ثم ثم بنسخ تلك الأرقام عندك
الآن ضعها في هذا الأمر و تذكّر شيئا مهمّا
فريم نهاية الإعلان هو فريم بداية الحلقة لذا إنتبه عندما تقوم بكتابتها داخل السكريبت
كمثال بسيط في الأمر trim(936,4382)
الفيديو الذي عندي يبتدئ بإعلان هذا الغعلان ينتهي عند الفريم 936
لذا فإنني سأضعه هو الاوّل في أمر الـ trim أمّا الرّقم 4382 فهو يمثّل نهاية المقطع الذي سأنتجه و بداية إعلان آخر
الآن بعد أن شرحنا هاته النقطة نضيف في الأخير هذا الأمر
قد تتسألون ما وظيفة هذا الأمركود الـ PHP:TDecimate()
ببساطة هو سيقوم بحذف جميع الفريمات المكرّرة التي نتجت عن شبك الفريمات بواسطة الأمر TFM
الآن و بعد أنهينا هاته المرحلة صار عندنا سكريبت من هذا الشّكل
كود الـ PHP:MPEG2Source("*****.d2v")
TFM(d2v="*****.d2v")
video = last
WAVSource("***** PID 112 DELAY -398ms.wav")
DelayAudio(-398./1000)
AudioDubEx(video, last)
trim(بداية الفريم , نهاية الفريم ) + trim(بداية الفريم , نهاية الفريم ) + trim(بداية الفريم , نهاية الفريم )
TDecimate()
الآن نتّجه إلى :
----------------------------------------------------------
* المرحلة الخامسة :
في هاته المرحلة سنقوم بإنتاج اللوزليس ولكن قبل أن نبدأ بإنتاجها سأشرح معناها و فائدتها
اللوزليس هي إنتاج فيديو من دون ضغط ما يعني من دون فقدان بيانات لانّنا و كما نعلم فضغط الفيديو يفقده بعض البيانات
ما الفائدة منها : إنتاح اللوزليس سيكون سريعا يتراوح بين 15 إلى 30 دقيقة حسب قوّة الحاسوب
المدّة قد تزيد في حال كانت هناك فلاتر كثيرة و معقّدة و قد تصل إلى 24 ساعة أو أكثر
و لكنّها تبقى أسرع من أن تنتج مباشرة لأنّها تسمح لك بتصليح الأخطاء فمثلا
لو انّك نسيت إعلانا لم تقم بقصّه او كان هناك في تحديد الفريمات أو ظهر مشكل تداخل
فإنه يمكنك تفادي ذلك ضف إلى ذلك انّ الإنتاج النهائي سيكون أسرع نسبيا عندما تنتجه من اللوزليس
عن ذلك الذي تنتجه مباشرة من الـ TS
المهّم الآن نتّجه إلى الطريقة لإنتاج اللوزليس هناك عدّة طرق إمّا عن طريق برنامج virtualdub عن طريق Huffyuv أو Lagarith
أو عن طريق الأنكودر x264 مباشرة و هذا الأخير هو ما سأشرحه
قم بإنشاء ملّف txt جديد داخل ورشة العمل و أكتب فيه الأمر التالي
الآن قم بحفظه ثم عدّل إمتداد الملّف من txt إلى .batكود الـ PHP:x264.exe --qp 0 --output "loseless.mp4" "loseless.avs"
pause
قم بتحميل الأنكودر x264 منها
وضعه داخل مجلّد ورشة العمل ، الآن قم بعمل دبل كليك على ملّف bat و ستلاحظ ظهرو شاشة سوداء مثل
هاته تبيّن بداية إنتاج اللوزليس
![]()
كلّ ما عليك الآن هو الإنتاظار إلى أن ينتهي لتحصل في الأخير على ملّف بحجم كبير نسبيّا يتراوح ما بين 5 إلى 20 جيغا
حسب نوع و مدّه الفيديو الذي تعمل عليه
أودّ أن أشير إلى نقطة مهمّة ألا و هي أن الملف الناتج سيكون بدون صوت
الآن و بعد أن أنهينا هاته المرحلة نتّجه إلى :
--------------------------------------------------------------
* المرحلة الأخيرة :
في هاته المرحلة سنقوم بالإنتاج النهائي
أوّلا قم بتحميل هذا الملّف
و قم بفك الضّغط عنه داخل ورشة العمل بعده ستظهر لك عدّة ملفّات
قم بنسخ هاذين الملفّين FFMS2.avsi و ffms2.dll داخل المسار
بالنسبة لمستخدمي windows xpكود الـ PHP:C:\Program Files\AviSynth 2.5\plugins
أو في هذا المسار
بالنسبة لمستخدمي windows 7كود الـ PHP:C:\Program Files (x86)\AviSynth 2.5\plugins
الآن قم بسحب ملفّ اللوزلس الذي أنتجته داخل هذا الملّف ffmsindex.exe
بنفس الطريقة التي إعتمدناها مع ملفّ الصّوت سابقا
سيظهر عندك ملف جديد بهذا الإمتداد .ffindex و نفس إسم ملف اللوزليس
الآن قم بإنشاء ملفّ avs جديد سمّه ما شئت
داخله أكتب الأوامر التالية
إضافة إلى أوامر إستدعاء كلّ من ملفّات الترجمة و مقاطع الأفتر و غيرها من الأمور التيكود الـ PHP:Import("loseless.avs")
video = FFVideoSource("loseless.mp4")
AudioDubEx(video, last)
تريد إنتاجها مع الفيديو إن كنت تريد الإنتاج Hardsub
و الآن بعد ان تكمل إعمل حفظ و قم بالإنتاج بطريقتك العاديّة سواء عن طريق الدوس او بواسطة أحد البرامج
في الأخير أرجو ان أكون قد وفّقت في الشّرح و في حال وجدت أي أسئلة فأنا هنا
أريد فقط و قبل أن أختم الدّرس أن انوّه لبعض النقاط المهمّة
الطريقة المشروحة فوق لن تكون صالحة إلاّ في حالة كان الخام خاليا من العيوب
أمّا في حالة العكس فهنا الأمر يستوجب الفلترة
و هي أمر يتطلّب درسا آخر لا أعلم إن كنت سأضعه أنا او يسبقني إليه شخص ما
شيء آخر قد تكون هناك بعض الأخطاء فوق عن غير قصد لأن كل ما كتبته مبنيّ على
ما فهمته في منتديات أجنبيّة لذا في حال كان هناك خطأ فيرجى التنبيه لذلك ليتم التدارك
بعيدا عن التهجّم و التجريح و دمتم بودّ ^^


























اضافة رد مع اقتباس















المفضلات