محاضرات فيديو: طريقة يونكس


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

نحتفل طريقة تسجيل "التعليقات الصوتية" في PowerPoint وتصدير العرض التقديمي في الفيديو على أنه تافه ولا نعطي عشر الإمكانيات اللازمة لفيديو رائع حقًا.

بادئ ذي بدء ، سنقرر الإطارات التي نحتاجها:

  1. في الواقع شرائح مع تعليق صوتي
  2. تغيير الشريحة
  3. يقتبس المقاطعة من الأفلام الشعبية
  4. عدد قليل من الإطارات مع علم الفراغ للمحاضر والقط المفضل (اختياري)


إنشاء بنية دليل


.
├── clipart
├── clips
├── rec
├── slide
└── sound

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

عمل عرض تقديمي بالصور


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

pdftocairo -png -r 128 ../lecture.pdf

إذا لم يكن هناك مثل هذا الأمر ، فقم بتثبيت حزمة poppler-utils (تعليمات لـ Ubuntu ؛ إذا كان لديك Arch ، فأنت تعرف بالفعل ما يجب فعله بدوني).

فيما يلي ، أعتقد أن الفيديو يتم تحضيره بتنسيق HD Ready ، أي 1280 × 720. عرض تقديمي بحجم أفقي 10 بوصات يعطي هذا الحجم بالضبط عند التفريغ (انظر الخيار -r 128).

نحن نعد النص


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



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

شرائح السبر


ما الذي يمكنني قوله - قم بتشغيل الميكروفون والكتابة :)

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

للتسجيل ، استخدمت مسجل الصوت - تطبيق تسجيل بسيط للغاية. يمكنك أخذه على سبيل المثال هنا:

sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder

الشيء الرئيسي في هذه الخطوة هو تسمية الملف المناسبة. يجب أن يتكون الاسم من رقم شريحة ورقم جزء. يتم ترقيم الأجزاء بأرقام فردية - 1 ، 3 ، 5 ، إلخ. لذلك ، للحصول على شريحة ، يظهر نصها في الصورة ، سيتم إنشاء ملفين : 002-1.mp3 و 002-3.mp3 .

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

mp3gain -r *.mp3

لسبب ما ، فإن أدوات mp3gain ليست في المستودعات القياسية ، ولكن يمكنك الحصول عليها هنا:

sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain

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

بكرات انهيار الطبخ


كل شيء هنا محدود فقط بخيالك. يمكنك استخدام محرر Avidemux لتحرير الفيديو . بمجرد أن كانت في مستودعات قياسية ، ولكن لسبب ما تم نشرها. هذا لن يوقفنا:

sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5

تعليمات للعمل مع هذا المحرر على البحر ، نعم ، من حيث المبدأ ، كل شيء بديهي هناك. من المهم مراعاة عدة شروط.

أولاً ، يجب أن تتطابق دقة الفيلم مع الدقة المستهدفة للفيلم. للقيام بذلك ، في "فيديو للخروج" ، تحتاج إلى استخدام مرشحين: swsResize لتغيير الدقة و "إضافة الحقول" لجعل الفيلم السوفياتي "التنسيق الضيق" تنسيقًا واسعًا. جميع المرشحات الأخرى اختيارية. على سبيل المثال ، إذا لم يفهم أحد ما عبارة السيد شاريكوف في الجزء قيد المناقشة ، باستخدام فلتر "إضافة شعار" ، يمكنك إضافة شعار PostgreSQL أعلى "قلب الكلب".

ثانيًا ، يجب أن تستخدم جميع الأجزاء معدل الإطارات نفسه. أستخدم 25 إطارًا في الثانية ، لأن الكثير يعطي الكاميرا والأفلام السوفيتية القديمة. إذا تم تصوير الفيلم الذي قمت بقص الإطار منه بسرعة مختلفة ، فاستخدم مرشح "Resample Video".

ثالثًا ، يجب ضغط جميع الأجزاء بنفس برنامج الترميز وتعبئتها في نفس الحاويات. لذلك ، في Avidemux للتنسيق ، حدد الفيديو - " Mpeg4 AVC (x264) " ، والصوت - " AAC (Faac) " ، تنسيق الإخراج - " MP4 Muxer ".

رابعا ، من المهم تسمية المقاطع المقطوعة بشكل صحيح. يجب أن يتكون اسم الملف من رقم شريحة ورقم جزء. يتم ترقيم الأجزاء بأرقام زوجية ، بدءًا من 2. لذا ، بالنسبة للإطار قيد المناقشة ، يجب تسمية المقطع الذي يحتوي على التقطيع 002-2.mp4

بعد أن تكون المقاطع جاهزة ، يجب عليك نقلها إلى الدليل باستخدام الأجزاء. تختلف إعدادات avidemux عن إعدادات ffmpeg الافتراضية من خلال المعلمات الغامضة tbr و tbn و tbc. لا تؤثر على التكاثر ، لكنها لا تسمح بلصق البكرات. لذلك ، نكرر:

for f in ???-?.mp4;
do
  ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done

نقوم بإزالة شاشات التوقف


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

ffmpeg -y -i source_file -r 25 -vcodec libx264 -pix_fmt yuv420p -profile:v high -coder 1 -s 1280x720 -ar 44100 -ac 2 ../clips/xxx-x.mp4

إذا كنت تخطط لبدء الفيديو بخطابك ، فقم بتسمية هذا الجزء 000-1.mp4

نصنع إطارات من صور ثابتة


حان الوقت لتحميل المقاطع من الصور الثابتة والصوت. يتم ذلك باستخدام هذا البرنامج النصي:

#!/bin/bash

for sound in sound/*.mp3
do
  soundfile=${sound##*/}
  chunk=${soundfile%%.mp3}
  clip=${chunk}.mp4
  pic=slide/${chunk%%-?}.png

  duration=$(soxi -D ${sound} 2>/dev/null)
  echo ${sound} ${pic} ${clip} " - " ${duration}

  ffmpeg -hide_banner -y -loop 1 -i ${pic} -i ${sound} -r 25 -vcodec libx264 -tune stillimage -pix_fmt yuv420p -profile:v high -coder 1 -t ${duration} clips/${clip}
done

يرجى ملاحظة أنه أولاً يتم تحديد مدة ملف الصوت بواسطة الأداة المساعدة soxi ، ثم يتم تحميل الفيديو بالطول المطلوب. جميع التوصيات التي وجدتها أبسط: بدلاً من علامة -t $ { Duration } ، يتم استخدام العلامة الأقصر . في الواقع ، يحدد ffmpeg طول mp3 تقريبًا تقريبًا ، وأثناء التثبيت ، يمكن أن يكون طول المسار الصوتي مختلفًا جدًا (من ثانية إلى ثانيتين) عن طول مسار الفيديو. لا يهم إذا كان الفيديو بأكمله يتكون من إطار واحد ، ولكن عند لصق مثل هذا الفيلم مع فاصل عند الحدود ، تحدث تأثيرات غير سارة للغاية مع التلعثم.

طريقة أخرى لتحديد مدة ملف mp3 هي استخدام mp3info . هي أيضا مخطئة ، وأحيانايقدم ffmpeg أكثر من mp3info ، وأحيانًا العكس ، وأحيانًا يكذبان - لم ألاحظ أي أنماط. لكن سوكسي تعمل بشكل صحيح.

لتثبيت هذه الأداة المفيدة ، قم بما يلي:

sudo apt-get install sox libsox-fmt-mp3

عمل انتقالات بين الشرائح


الانتقال - مقطع فيديو قصير تتحول فيه شريحة إلى أخرى. لإنشاء مقاطع فيديو من هذا القبيل ، خذ شرائح في أزواج واستخدم imagemagick لتحويل أحدهما إلى الآخر:

#!/bin/bash

BUFFER=$(mktemp -d)

for pic in slide/*.png
do
  if [[ ${prevpic} != "" ]]
  then
    clip=${pic##*/}
    clip=${clip/.png/-0.mp4}
    #
    #  
    #
    ./fade.pl ${prevpic} ${BUFFER} 1280 720 5 direct 0
    ./fade.pl ${pic} ${BUFFER} 1280 720 5 reverse 12
    #
    #   
    #
    ffmpeg -y -hide_banner -i "${BUFFER}/%03d.png" -i sound/silence.mp3 -r 25 -y -acodec aac -vcodec libx264 -pix_fmt yuv420p -profile:v high -coder 1 -shortest clips/${clip}
    rm -f ${BUFFER}/*
  fi
  prevpic=${pic}
done

rmdir ${BUFFER}

لسبب ما، كنت أرغب في الانزلاق إلى أن تنتشر، ثم الشريحة التالية تم تجميعها من النقاط، ولهذا كتبت السيناريو دعا fade.pl بعد يماغيماغيك ، فإن Linuxoid حقيقية تعمل من أجل أي تأثير خاص، ولكن اذا كان هناك من يحب فكرتي المستطير، هنا هو السيناريو:

#!/usr/bin/perl

use strict;
use warnings;
use locale;
use utf8;
use open qw(:std :utf8);
use Encode qw(decode);
use I18N::Langinfo qw(langinfo CODESET);

my $codeset = langinfo(CODESET);
@ARGV = map { decode $codeset, $_ } @ARGV;

my ($source, $target, $width, $height, $pixsize, $rev, $file_no) = @ARGV;

my @rects;
$rects[$_] = "0123456789AB" for 0..$width*$height/$pixsize/$pixsize/12 - 1;

for my $i (0..11) {
  substr($_,int(rand(12-$i)),1) = "" for (@rects);
  my $s = $source;
  $s =~ s#^.*/##;
  open(PICTURE,"| convert - -transparent white PNG:- | convert \"$source\" - -composite \"$target/".substr("00".($file_no+$i),-3).".png\"");
  printf PICTURE ("P3\n%d %d\n255\n",$width,$height);
  for my $row (1..$height/$pixsize/3) {
    for my $j (0..2) {
      my $l = "";
      for my $col (1..$width/$pixsize/4) {
        for my $k (0..3) {
          $l .= (index($rects[($row-1)*$width/$pixsize/4+$col-1],sprintf("%1X",$j*4+$k))==-1 xor $rev eq "reverse") ? "0 0 0\n" : "255 255 255\n" for (1..$pixsize);
        }
      }
      print PICTURE ($l) for (1..$pixsize);
    }
  }
  close(PICTURE);
}

قم بتثبيت الأسطوانة النهائية


الآن لدينا كل الأجزاء. نذهب إلى دليل المقاطع ونجمع الفيلم النهائي بأمرين:

ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4

استمتع بمشاهدة طلابك بالامتنان!

All Articles