و الصلاة و السلام على سيدنا محمد و على آله و صحبه أجمعين.
ترددت كثيراً حول طرح هذا الدرس كونه نوعاً ما بسيط، لكن ما شجعني على طرحه هو كثرة المشاكل و الاستفسارات التي تتعلق بما سيتم شرحه هنا إن شاء الله.
هذا الدرس بعون الله سيكون بسيط في مفاهيمه (أصلاً لا توجد مفاهيم) و مفيد للغاية خصوصاً أنه شامل لكل ما نفعله في الفانسب تقريباً من إنتاج فيديو و صوت و تجميع (mux) و غيرها...
لمن لم يعرف مضمون الدرس سأكتبه بجملة بسيطة: الهدف هو أن تستخدم الإنكودر x264 مباشرة دون أدوات لا داعي لها و دون واجهات رسومية (GUI) و هي الطريقة الأفضل و الأسهل و الأصح (نعم الأصح) لاستخدامه، هي الطريقة الرسمية التي اعتمدها مبرمجوه و مطوروه.
هذا من ناحية x264... لكن هناك أيضاً إنتاج الصوت في Nero AAC أو Vorbis أو غيرها و هناك أيضاً عمل تجميع (Mux) للمسارات في حاوي MP4 (فيديو و صوت تضعهم في MP4) و هنا بإمكانك استخدام VFR بسهولة تامة مع MP4. أيضاً الحاوي MKV بكل ميزاته المدعومة من الـ GUI (الـ GUI الخاصة به فعلاً متطورة).
و الأدوات المتفرقة هنا و هناك مثل أدوات قص الصوت (Split_aud.pl و vfr.py). استخراج صوت WAV من أي حاوي كان من خلال أدوات الـ Piping، أيضاً أذكر لكم الأداة الخارقة eac 3to التي تجعلك تستخرج و تتحكم بمحتويات أقراص البلوراي و هي مشهورة في التعامل مع الصوت... و غيرها الكثير و الكثير مما يسهل عليك العمل و يقلل من عدد البرامج على جهازك.
يبدو أن شرح مضمون الدرس لم يكن جملة. على العموم سنتكلم كثيراً في هذا الموضوع على ما يبدو.
[ ما هو الـ CLI؟ ]
كلمة CLI اختصار لـ Command Line Interface... سنستخدم هنا الـ CMD أو ما يطلق عليه الـ "دوس" أو DOS و هو أحد أنواع الـ CLI. ليست لدي خلفية علمية عن الـ CLI لكن هو أي برنامج أو أداة تستخدمها عن طريق إدخال أوامر نصية مثل أن تفتح الأداة و تكتب أوامرها الخاصة لأداء وظيفة معينة. عكسها الـ GUI و هي اختصار لـ Graphical User Interface و هي الأدوات أو البرامج التي تستخدمها عن طريق واجهة رسومية فيها أزرار و Text Box و غيرها.
أمثلة لأدوات و برامج من عالم الفانسب:
الـ CLI: الإنكودر x264 - أداة split_aud لقص الصوت.
الـ GUI: برنامج MeGUI للإنتاج - برنامج x264GUI للإنتاج بالإنكودر x264 - برنامج MKV Merge.
كما قلت لا خلفية "علمية" لدي حول "تعريف" الـ CLI الـ "علمي" لذا المهم أكثر هو الفائدة.
مثال سريع لاستخدام x264 لإنتاج سكربت AVS اسمه script و ملف الفيديو الناتج اسمه out-vid و امتداده MKV:
كما لاحظتم الاستخدام بسيط. لا تلقي بالاً للمكتوب فوق مثل ref و غيرها لأن الشرح لم يبدأ بعد.كود:x264.exe --preset slow --crf 18 --ref 9 --bframes 8 --input-res 1280x720 --fps 24000/1001 --output "out-vid.mkv" "script.avs"
[ ماذا أستفيد من استخدام الـ CLI خصوصاً في إنتاج الفيديو بـ x264؟ ]
ما خطر ببالي هو التالي:
1- لأنها الطريقة الرسمية التي اعتمدها مطوري الإنكودر و مصصميه، هذه النقطة وحدها تكفي. يعني لما صمموا الإنكودر صمموه ليتم استخدامه بهذه الطريقة، هل وصلت الفكرة؟
2- استخدامك لأي GUI قد ينتج لديك أخطاء لا دخل لك بها (لم ترتكبها!) و لا دخل للإنكودر الرائع x264 بها أيضاً. فما ذنبك؟ لماذا يتأخر إصدارك؟ لماذا تعاني بسبب أن البرنامج الفلاني لا يتوافق مع شيء عندك أو أن به خلل لا سبب واقعي له؟ طيب لو معه حالة نفسية شو ذنبك؟!!
3- الـ GUI مثل MeGUI يعمل حاجز أو محطة أو عائق بين الإنكودر و المنتج، و هذه المحطة غير ضرورية بغض النظر عنها.
4- هذه النقطة هي الأهم بنظري مع أن النقاط السابقة في غاية الأهمية. هذه النقطة تقول بأنك لو أصبحت تستخدم الـ CLI مثلاً في x264 فإنك ستتعلم أوامر الإنكودر و مزاياها و وظائفها رغماً عن أنفك! هذا شيء إيجابي و ليس سلبي!!!! نعم، لا نريد بروفايلات جاهزة (خصوصاً إن كانت خارقة) كبسة زر ثم ينتج مخلوق غريب! نريد المنتج أن ينتج فيديو بقدرته و فهمه لحقيقة ما يجري و ليس شخص يضغط بعض الأزرار و ينتظر.
ملاحظة أرجو أن تتذكروها: ليس كل من يضغط فيديو منتج.
5- تقلل من عدد الأدوات و البرامج الموجودة عندك (أحياناً العكس). مثلاً بدل ما أنصب الميجوي اللي فيه عدد فلكي من الأدوات عديمة الجدوى (أو حتى K-Lite Mega فالأمر سيان لكن هناك في الـ Decoding) و يكون لدي برامج أخرى مثل Virtual Dub و غيرها... أكتفي هنا بتحميل ما يلزمني فقط مثل الإنكودر x264 و إنكودرات الصوت مثل Nero AAC و aoTuv و أيضاً أدوات MKV و متفرقات أخرى خفيفة. هل تبدو الفكرة منطقية؟ (ركز على مبدأ أن ما لا تحتاجه لا يلزمك).
[ استخدام الإنكودر x264 ]
انتهينا من الكلام النظري و الآن إلى العمل. حمل الإنكودر من موقعه الرسمي هنا [ www.x264.nl ] كما يوجد له العديد من الـ Builders الذين يعملون نسخ معدلة منه و يضيفون لها ميزات أخرى مختلفة... لا يفرق أي نسخة تستعملها.
لديه نوعان: 8 بت و 10 بت، استخدامهما واحد لذا سأشرح على 8 بت و أنصحكم باستخدامه في التجارب كونه أسرع من 10 بت.
كما قلنا سنستعمل الـ CMD... النقاط الثلاثة التالية هي نفس الطريقة لكن بأشكال مختلفة لا أكثر:
أولاً: تشغيل cmd و الذهاب إلى مكان الإنكودر:
نبحث في قائمة Start عن كلمة cmd فيظهر ثم نفتحه (موجود في مجلد System32). يظهر لنا المسار الافتراضي لكن الإنكودر مثلاً يكون في المسار التالي عندنا:
كود:F:\Other\Encoding\X264
طيب كيف ننتقل إلى ذاك المجلد كي نستخدم الإنكودر؟ في البداية نكتب F: و نضغط Enter... الآن أصبحنا داخل الـ Partition المسمى F.
نكتب الآن التالي:
كود:cd Other\Encoding\X264
الآن نحن داخل المجلد X264 الموجود في المسار F:\Other\Encoding\X264... هذا المجلد يحتوي على الإنكودر x264 (اسمه و امتداده x264.exe) كما يحتوي على سكربت الإنتاج أو فيديو الحلقة الخام لو بدون سكربت (طبعاً ليس ضروري ممكن يكونوا على D:\ و تستطيع استعمالهم). أي أن أمر cd هو للانتقال داخل المجلدات الفرعية.
نكتب اسم الأداة المراد استخدامها و هي هنا x264.exe و بعدها نكتب الأوامر الخاصة بهذه الأداة ثم نضغط Enter فتبدأ العملية! هذه هي العملية فقط.
الآن ما هذه الأوامر و كيف أحصل عليها و و و ... هذه تختلف من أداة لأخرى لكن في حالة x264 اذهب إلى مدونتي في قسم الدروس تجد بعض الدروس التي تشرح لك أوامر الإنكودر بالتفصيل.
أيضاً أي أداة تقريباً يأتي معها معلومات مساعدة مختصة بها... اكتب مثلاً:
كود:x264.exe --fullhelp
ثم Enter تجده سرد لك الكثير و الكثير من الأوامر...
السطر التالي بإمكانك اعتباره الـ General Formula لأوامر x264:
كود:x264.exe --OPTIONS --output "outfile.xxx" "infile.yyy"
التفصيل:
x264.exe: اسم ملف الإنكودر و امتداده... ممكن أنت تسميه عندك x264-encoder عندها تكتب x264-encoder.exe... في أغلب الأحيان يكون لديك إنكودر 8 بت اسمه x264.exe و آخر 10 بت تسميه x264-10bit.exe.
OPTIONS: أي إعدادات/أوامر للإنكودر! هذه ليست موضوعنا هنا فهي عالم أو كون بأسره! يعني مثال عليها --ref 9 --bframes 8 . في مدونتي روابط لبعض الدروس المفيدة في أوامر الإنتاج بهذا الإنكودر أو بإمكانك الدخول إلى صفحة بالإنجليزي تشرح تلك الأوامر هنا. سبب وضعي لرابط المدونة هو تسهيل نشر الموضوع في كل المنتديات أي لا أريد وضع روابط دروس من منتديات حتى لا تحدث مشاكل.
output: أمر يحدد فيه ملف المصدر و الملف الناتج. المصدر اسمه infile و امتداده yyy، هذا يمكن يكون سكربت AVS أو أي ملف فيديو مثل MP4. الملف الناتج اسمه outfile و امتداده xxx، هذا ممكن يكون MKV و هو الأفضل.
ملاحظات عامة:
1- عندما تكتب output "outfile.mkv" "infile.avs" فإن ملف المصدر و الملف الناتج سيتم تخزينهما في نفس مجلد الإنكودر، بينما لو أردت استدعاء السكربت من المسار D:\ و تخزين الملف الناتج في F:\Videos اكتب التالي:
كود:--output "F:\Videos\outfile.mkv" "D:\infile.avs"
2- أوامر x264 تبدأ دائماً بـ -- .
3- بإمكان ملف المصدر لديك أن يكون فيديو مثل invideo.mp4... يعني استخدام avs ليس شرطاً و ليس محبباً أصلاً.
4- في تحديد المسار وضعت المسار بين علامتي اقتباس " " و هذا بسبب أن الـ cmd لا يقبل أن توجد مسافات في أسماء المجلدات مثل F:\Tools\Audio Encoding، لو كتبتها بدون علامات اقتباس سيعتبر الأمر خاطئاً في الغالب. هذا طبعاً في أوامر x264 أما عند استخدام الـ cmd لفتح أي مجلد بأمر cd فعادي تضعه بلا علامات اقتباس، هنا يأتي دور التجربة.
5- للانتقال إلى أي مجلد فرعي ضع الأمر cd و اكتب اسم المجلد الفرعي بعده.
6- الـ cmd يدعم عملية اللصق يعني انسخ الإعدادات ثم اضغط بالزر الأيمن داخل الـ cmd ثم اختر Paste. لكن اختصار اللصق Ctrl+v لن ينفع معك.
إلى هنا ينتهي شرح استخدام الإنكودر مباشرة بالـ cmd.
ثانياً: عمل ملف امتداده bat:
طريقة أسرع نوعاً ما و هي التي أستعملها... ملخصها كالتالي: افتح المفكرة ثم احفظ الملف باسم مثل encode و لكن بامتداد bat مثل encode.bat. ثم كبسة يمين على هذا الملف النصي و اختر edit... الآن اكتب ما تريد فيه و سيتم كتابة محتوياته في الـ cmd!
يمكنك هذا الملف من تعديل إعداداتك بشكل أسرع دون الحاجة إلى كتابتها مرة أخرى. ما يقوم به هو عند الضغط عليه مرتين يفتح لك الـ cmd و يتوجه إلى المسار الموجود فيه و يكتب الأوامر. انظر إلى المثال التالي و ستعرف.
الملف encode.bat يحتوي على:
كود:x264.exe --preset slow --output "out.mkv" "in.avs"
هذا الملف موجود في المسار F:\Tools. إن ضغطت عليه مرتين سيفتح لك cmd و يتوجه إلى F:\Tools ثم يكتب فيه:
كود:x264.exe --preset slow --output "out.mkv" "in.avs"
و يطبقها!
إن استعملت ملف الـ bat هذا تأكد من أن تضع أمر pause في آخره لأن الـ cmd ما إن يطبق لك الأوامر سيغلق نفسه أما إن وضعت هذا الأمر يبقى فاتح حتى تضغط أنت أي زر و تغلقه... يعني من أجل رؤية النتيجة.
ثالثاً: فتح الـ cmd و إدراج مسار أي مجلد تلقائياً:
مثل F:\Tools فيه الإنكودر لكن أنت ليس لديك إعدادات و لا ملف bat تريد أن تفتح هذا المجلد و تبدأ بالكتابة... افعل التالي:
اضغط على Shift و استمر بالضغط، اضغط على المجلد بالزر الأيمن ثم اختر Open Command Window Here... فيفتح لك الـ cmd و يكون مسار المجلد مدرج فيه. الآن اكتب ما تشاء من إعدادات.
_____
الطرق الثلاثة الأخيرة هذه (أولا، ثانياً، ثالثاً) هي طريقة واحدة فقط لكن بأكثر من أسلوب... أكرر هي طريقة واحدة فقط و هي تستخدم فيها الإنكودر مباشرة.
ألاحظ البعض أصبح يسمي الإنتاج بهذه الطريقة "الإنتاج بواسطة ملف bat" و هي تسمية خاطئة و في الحقيقة مزعجة. أنت تنتج مباشرة لا من خلال ملف بات لذا ابتعدوا عن هذه المسميات.
المفضلات