كيفية عمل screencast باستخدام ffmpeg

بالنسبة لأولئك الذين لا يعرفون ، أ سكرينكست إنه تسجيل رقمي لإخراج شاشة الكمبيوتر ، يحتوي أحيانًا على سرد صوتي.

En لينكس، هناك العديد أدوات للقيام به التسجيل. ومع ذلك ، أولئك الذين يفضلون القيام بذلك يستهلك الحد الأدنى من الموارد لا يمكنهم التوقف عن قراءة هذا المقال.


باستخدام أداتين (ffmpeg لالتقاط الشاشة و xwininfo للحصول على إحداثيات وأبعاد النافذة المراد تسجيلها) تمكنت من إنشاء لقطات الشاشة باستخدام الحد الأدنى من الموارد والحصول على أفضل النتائج.

البرنامج النصي لبدء التسجيل الرقمي للشاشة

#! / بن / باش

# احصل على إحداثيات وحجم النافذة المحددة
# هذا لا يشمل زخرفة النوافذ.
  unset xywh
  Eval $ (xwininfo -frame |
    sed -n -e "s / ^ + مطلق أعلى اليسار X: + ([0-9] +). * / x = 1 / p"
           -e "s / ^ + مطلق أعلى اليسار Y: + ([0-9] +). * / y = 1 / p"
           -e "s / ^ + العرض: + ([0-9] +). * / w = 1 / p"
           -E "s / ^ + الارتفاع: + ([0-9] +). * / h = 1 / p")
$ w = $ w + $ w٪ 2 # أن العرض من مضاعفات 2 ، وإلا فإن ffmpeg يشكو
WIN_XY = $ x "،" تنسيق $ y # تنسيق XY
WIN_GEO = حجم نافذة تنسيق $ w "x" $ h #
# notify-send سيعرض رسالة تشير إلى بدء التسجيل الرقمي للشاشة.
# قم بتشغيل ffmpeg باستخدام المعلمات التي تناسب التكوين الخاص بك.
notify-send "بدء screencast ..." && ffmpeg -f alsa -i hw: 0 -f x11grab -r 25 -s $ WIN_GEO -i: 0.0 + $ WIN_XY -acodec libmp3lame -async 1 -vcodec libx264 -preset فائق السرعة - crf 0 -threads 0 save.mp4

ليس عليك أن تفهم تمامًا كل ما يفعله هذا النص. مجرد اتباع التعليقات يكفي. ومع ذلك ، فمن المحتمل جدًا أن تضطر إلى تغيير بعض المعلمات في السطر الذي يتم فيه تنفيذ ffmpeg لضبطها وفقًا لتكوين جهازك.

هندسة الصوت

1) إذا كنت تستخدم OSS ، فاستبدل -f alsa -i hw: 0 بـ -f oss -i / dev / dsp

2) إذا كنت تستخدم ALSA فقط ، فيجب عليك استخدام المعلمات التي تأتي في البرنامج النصي (-f alsa -i hw: 0). لتحديد الرقم بعد hw: يمكنك تشغيل aplay -l واختيار رقم بطاقة الصوت المناسب.

3) إذا كنت تستخدم Pulse Audio (تستخدم Ubuntu ومشتقاته) ، فاستخدم المعلمات -f alsa -ac 1 -i pulse.

FPS

-r 25 يشير إلى عدد الإطارات في الثانية (الإطارات في الثانية أو الإطارات في الثانية) التي تريد التسجيل بها. 25 خيار جيد.

ترميز الصوت والفيديو والمزامنة

-acodec libmp3lame هو برنامج ترميز الصوت. اخترت تسجيله بتنسيق mp3. يمكنك استخدام أي شيء آخر.

-async 1 يسمح بمزامنة الصوت مع الفيديو.

-VCodec libx264 -preset فائق السرعة -crf 0 -threads 0 ، يخبر ffmpeg أن برنامج ترميز الفيديو المراد استخدامه هو x264 وأن الإعداد المسبق فائق السرعة (هناك سريع ، بطيء ، إلخ) ، وإلا فلن يتم التسجيل بشكل صحيح بالمقدار المطلوب من fps. تشير المعلمة -crf 0 إلى مستوى الضغط (كلما انخفض الضغط ، انخفض الضغط). أخيرًا ، تشير الخيوط 0 إلى عدد الخيوط التي يجب استخدامها ، عند تمرير 0 ffmpeg يحسبها تلقائيًا. كما هو الحال مع إعدادات الصوت ، يمكنك اختيار خيارات أخرى.

كل هذه الإعدادات هي التي أعطتني أفضل النتائج: ملف صغير نسبيًا ، جودة فيديو جيدة ، مع صوت متزامن وبدون تأخير. ومع ذلك ، أوصيك بالغوص في وثائق ffmpeg لاكتشاف الآخرين.

البرنامج النصي لإنهاء التسجيل الرقمي للشاشة

#! / بن / باش
أخطر إرسال "Finishing screencast ..." && killall ffmpeg

لكي يعمل كلا البرنامجين ، يجب أن يكون لديك برنامج إعلام-إرسال مثبت. يجب أن تأتي جميع التوزيعات المشتقة من Ubuntu مع هذه الأداة المثبتة. في القوس والمشتقات: sudo pacman -S libnotify.

Ffcast

أبحث عن معلومات لكتابة النصوص ، اكتشفت أن لدى شخص ما فكرة مشابهة جدًا لفكرتي. Ffcast هو برنامج نصي يستخدم نفس الأدوات (ffmpeg و xwininfo). أذكره لأن البعض قد يجده أكثر ملاءمة لاستخدام هذا البرنامج النصي.

في Arch والمشتقات ، فتحت محطة وركضت:

yaourt -S ffcast

الباقي ، يمكنك التنزيل من هنا.

إلى النهاية…

بمجرد إنشاء وحفظ البرامج النصية المحفوظة في مجلد HOME الخاص بك ، يجب عليك منحها أذونات التنفيذ. بافتراض استدعاء start_screencast و finish_screencast ، قم بتشغيل الأوامر التالية في Terminal:

chmod + x start_screencast
chmox + x terminate_screencast

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


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

12 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   مايكل سب قال

    منذ أن تعرفت على Linux ، سألت نفسي بالضبط نفس الشيء الذي تم تفصيله للتو في هذا التعليق. سيكون مشروعًا طموحًا.

  2.   pfme قال

    أعتقد أن البرنامج التعليمي جيد ، لكن كيف تقول شيئًا سهلًا للمستخدمين المبتدئين؟ حسنًا ، أفضل ما يبدو لي هو KAzam ، فهو سهل الاستخدام ولا يستهلك الكثير في رأيي !!!!! في صحتك

  3.   لنستخدم لينكس قال

    ليس كل شيء. بالإضافة إلى ذلك ، أعتقد بصدق أنه لا توجد واجهة جيدة للتسجيل الرقمي للشاشة (تحتوي على كل ما أحتاجه) ، والتي تعمل مع التنسيقات التي أريدها وتستهلك القليل من الموارد.

    في حالتي ، فإن الجهاز هو الخيار الأفضل. أنا لا أدعي أنه متاح للجميع ، لكن من الجيد مشاركة ما يتعلمه المرء ، أليس كذلك؟

    في صحتك! بول.

  4.   خورخي روشا قال

    من الخطأ إذا أردنا توسيع نظام التشغيل تحت جنو / لينكس ، فإننا ننصح المستخدمين بالقيام بهذا النوع من الأشياء في المحطة ، يريد الناس شيئًا سهلًا وعمليًا

    تضمين التغريدة

  5.   Whysoyjuan قال

    على مستوى الخادم ، أستخدم أيضًا وحدة التحكم فقط ، ولا توجد بيئة رسومية ... إنها الأكثر عملية وأنا أفعل كل شيء من هناك (أتمتة النسخ الاحتياطية على سبيل المثال كما تقول جيدًا ...) ، ولكن ، على جهاز لديك مثل خادم ... لماذا تريد أن تفعل screencast عليه؟ hehe..ffmpeg صالح جدًا ولكن أعتقد أن مشكلة وحدة التحكم يجب أن تنتقل إلى الخلفية اعتمادًا على التوزيعات.
    نظرًا لأن لدينا مجموعة متنوعة من التوزيعات في عالم Linux ، ووحدة التحكم متقنة بما يكفي للعمل بشكل صحيح في جميع المواقف (إنها معصومة تقريبًا ..) ، يجب أن نبدأ في تحسين التطبيقات للجمهور ، والبدء في التلميع ، والتعليمات البرمجية والجانب البياني ... وهو ما هو مطلوب اليوم.
    لدينا مشاريع Linux قديمة ومهجورة ، نعلم جميعًا أن ... مثال جيد ، بالنسبة لي ، هو سبب عدم وجود تنسيق ملف قابل للتنفيذ يسمح لك بأخذ برنامج على pendrive وببساطة نقرة مزدوجة وبساطة التثبيت بصرف النظر عن طلب المستودعات (وبالتالي الشبكة) .. لا يوجد APTonCD ، هذا قديم أيضًا .. نحتاج إلى معيار أو ".tux" أو شيء مشابه لـ ".exe" من Windows. هل هي مسألة مساحة؟ .. في Windows ، يشغل ملف Gimp القابل للتنفيذ 72 ميجابايت ونفس الملف لنظام Linux (.deb) يحتل 4,2 ميجابايت ... لماذا هذا؟ حسنًا ، نظرًا لأن برنامج Gimp نفسه ، في Windows يكون مصحوبًا بجميع المكتبات للتأكد من أن البرنامج يعمل عند تثبيته ... في Linux يمكن أن يكون لدينا شيء مماثل ، سيشغل الملف التنفيذي المزيد ، وسنفقد ميزة الحجم ولكننا نكتسب في قابلية النقل (والمزيد مع الذكريات الكبيرة جدًا لدرجة أننا نحملها اليوم في جيوبنا ... ما الفرق الذي يحدثه حمل 4 ميجابايت من 72 ميجابايت إذا كان كل منا تقريبًا يحمل محركات أقراص 8 جيجابايت؟)
    كل هذه الأشياء يجب أن تكون مصقولة ... النظام مستقر ، لديه دعم كبير وتوافق مع السائق ... لماذا لا نقوم بتحسين ما هو موجود؟ ... إذا تم تشجيع شخص ما ، نبدأ المشروع القابل للتنفيذ الكالينجيون.!

  6.   هيدابي قال

    Uhm ... حسنًا ، الأشخاص الذين يحبون وحدة التحكم لا يحبونها لأن صديقي العزيز يحبونها لأنه معها يمكن أتمتة العديد من الأشياء ، على سبيل المثال ، على مستوى الخادم (على الرغم من أن هذا ليس هو الحال).

  7.   Whysoyjuan قال

    بصراحة ، وحدة التحكم مفيدة جدًا ... ولكن هناك برامج بها بعض واجهة المستخدم الرسومية التي تستخدم ffmpeg وهي أكثر جاذبية وبناءة لمستخدمي Linux الجدد المحتملين ... أوصي بـ RecordMyDescktop الموجود في مستودعات جميع التوزيعات تقريبًا. أعرف هناك العديد من الأشخاص الذين يحبون وحدة التحكم ، ولكن يجب إنهاء ذلك بأكبر قدر ممكن ... يجب أن يركز Linux على سطح المكتب والمستخدم النهائي المحتمل الذي يريد ذلك بشكل أساسي ، واجهة رسومية ، وإذا أمكن ، جميلة وعملية ... هل هو صعب للغاية؟ لا يمكننا أن نتدخل .. لينكس لديه إمكانات هائلة ويجب أن نضغط عليها!
    بالرغم من كل شيء ، فهو برنامج رائع! منشور جيد ^^

  8.   Whysoyjuan قال

    الحقيقة هي ، نعم ، من الرائع مشاركة ما يتعلمه المرء ... هذا ليس نقدًا بمعنى التقليل من قيمة المنشور ، ولكنه نقد لسبب عدم استخدام المزيد من الأشخاص لنظام Linux ... ومهما قالوا ، يجب اختزال وحدة التحكم إلى مستوى ثانٍ لإفساح المجال للمرافق الرسومية (هذا لا يعني أن إمكانية القيام بالأشياء بواسطة وحدة التحكم مستبعدة ، ولكن من يريد استخدامها ومن لا يفعل ذلك ، حسنًا ، لا ..)
    في نهاية المطاف ، ما يباع ، والمذهل هو سهولة تشغيل نظام تشغيل ... لا يمكن إيقاف Linux داخليًا ، ولكن إذا أضفنا إلى سهولة الاستخدام والواجهات البديهية ... فإننا نفوز بالمستخدمين وهذا يفيد تطوير المجتمع ، والبرامج المختلفة ، والدعم من شركات ألعاب الفيديو ، وبالتالي أجهزة معينة (مثل بطاقات الرسومات ..) ، وإنشاء برامج متخصصة موجودة حاليًا فقط على Windows / Mac ... لا أعرف ، على ما أعتقد هذا في خطة 15 مليونًا ... كل شيء جميل جدًا ولكن حان الوقت الآن لتغيير المسار قليلاً ... وأقول قليلاً!

    حسنًا ، لا يزال المشروع القياسي القابل للتنفيذ في Linux قائمًا ، إذا قرأه شخص ما وأراد منا أن نبدأ في التعاون ، فإليك بريدي الإلكتروني ، أنا لا أخفي ههه (whysoyjuan@gmail.com)

    تحياتي و اتمنى ان ارى المزيد من التعليقات هنا ... سواء كانت انتقادات او مدح الحقيقة انه علينا التحدث.

  9.   لنستخدم لينكس قال

    حسن! مساهمة جيدة.
    عناق! بول.

  10.   جيراردو قال

    عن ماذا يدور هذا البرنامج ... كن حذرًا ، لست على دراية بهذا الأمر!

    1.    دعنا نستخدم لينكس قال

      بشكل عام ، يتم استخدامه لتحويل مقاطع الفيديو. في هذه الحالة ، نوضح كيفية استخدامه لتسجيل سطح المكتب الخاص بك وعمل فيديو تعليمي ، على سبيل المثال.
      عناق! بول.

  11.   Tarribalis قال

    شكرا. في الدقة ، على سبيل المثال 1280X800 ، يجب كتابة X بأحرف كبيرة حتى يعمل الأمر ffmpeg.