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

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

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

أولاً، دعونا نقرر ما هي الإطارات التي نحتاجها:

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

إنشاء هيكل الدليل

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

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

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

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

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

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

وهنا وأبعد من ذلك، أعتقد أن الفيديو تم إعداده بتنسيق HD Ready، أي 1280x720. العرض التقديمي ذو الحجم الأفقي 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

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

تحضير فيديوهات المقاطعة

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

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

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

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

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

ثالثا، يجب ضغط جميع الأجزاء بنفس برنامج الترميز وتعبئتها في نفس الحاويات. لذلك في افيديمو للتنسيق، حدد الفيديو – "MPEG4 ايه في سي (x264)"، صوتي - "الجميح للسيارات (FAAC)"، تنسيق الإخراج - "MP4 موكسر".

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

بعد أن تصبح مقاطع الفيديو جاهزة، تحتاج إلى نقلها إلى الدليل مع الأجزاء. إعدادات افيديمو تختلف عن الإعدادات فمبيج بشكل افتراضي مع المعلمات الغامضة 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

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

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

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

sudo apt-get install sox libsox-fmt-mp3

إجراء انتقالات بين الشرائح

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

#!/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 نأخذ يماغيماغيك، سيقوم مستخدم Linux الحقيقي بإنشاء أي تأثير خاص، ولكن إذا أعجب شخص ما فكرتي بالتشتت، فإليك البرنامج النصي:

#!/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 ("P3n%d %dn255n",$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 0n" : "255 255 255n" 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

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

المصدر: www.habr.com

إضافة تعليق