سخنرانی های ویدئویی: راه یونیکس

سخنرانی های ویدئویی: راه یونیکس
قرنطینه زمان فوق العاده ای برای یادگیری چیزی است. با این حال، همانطور که می دانید، برای اینکه کسی چیزی یاد بگیرد، باید کسی تدریس کند. اگر ارائه‌ای دارید که می‌خواهید به میلیون‌ها مخاطب ارائه دهید و شهرت جهانی کسب کنید، این مقاله برای شما مناسب است. در اینجا دستورالعمل های گام به گام در مورد نحوه ساخت یک ویدیو از ارائه خود را خواهید یافت.

ما مسیر ضبط «نظرات صوتی» در پاورپوینت و صادر کردن ارائه به ویدیو را بی‌اهمیت می‌دانیم و یک دهم قابلیت‌های مورد نیاز برای یک ویدیوی واقعاً جذاب را ارائه نمی‌کنیم.

ابتدا بیایید تصمیم بگیریم به چه قاب هایی نیاز داریم:

  1. اسلایدهای واقعی با صداگذاری
  2. تغییر اسلاید
  3. به نقل از فیلم های محبوب
  4. چندین فریم با چهره استاد و گربه مورد علاقه او (اختیاری)

ایجاد ساختار دایرکتوری

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

هدف دایرکتوری ها به ترتیب فهرست: فیلم هایی که از آنها نقل قول ها را می گیریم (کلیپرت)، قطعاتی از ویدیوی آینده خود (کلیپ ها)، فیلم ها از دوربین (rec)، اسلایدهایی به شکل تصویر (اسلاید)، صدا (صدا).

ارائه به صورت تصویری

برای یک کاربر واقعی لینوکس با چشم قرمز، ارائه ارائه به صورت عکس هیچ مشکلی ایجاد نمی کند. فقط به شما یادآوری می کنم که یک سند با فرمت pdf را می توان با استفاده از دستور به تصاویر تجزیه کرد

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

اگر چنین دستوری وجود ندارد، خودتان بسته را نصب کنید poppler-utils (دستورالعمل برای اوبونتو؛ اگر 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

خدمات رفاهی mp3 دوباره به دلایلی در مخازن استاندارد موجود نیست، اما می توانید آن را از اینجا دریافت کنید:

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

بعد از همه اینها باید فایل دیگری را با سکوت ضبط کنید. اضافه کردن یک آهنگ صوتی به ویدیوهای بی صدا ضروری است: اگر یک ویدیو دارای آهنگ صوتی باشد و دیگری نداشته باشد، چسباندن این ویدیوها به هم دشوار است. سکوت را می توان از میکروفون ضبط کرد، اما بهتر است یک فایل در ویرایشگر ایجاد کنید جسارت. طول فایل باید حداقل یک ثانیه باشد (بیشتر ممکن است) و باید نامگذاری شود سکوت.mp3

در حال آماده سازی ویدیوهای وقفه

در اینجا همه چیز فقط با تخیل شما محدود می شود. برای ویرایش ویدیوها می توانید از ویرایشگر استفاده کنید Avidemux. روزی روزگاری در مخازن استاندارد بود، اما پس از آن به دلایلی قطع شد. این ما را متوقف نخواهد کرد:

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

دستورالعمل های زیادی برای کار با این ویرایشگر در اینترنت وجود دارد و در اصل همه چیز در آنجا بصری است. رعایت چند شرط مهم است.

اول، وضوح ویدئو باید با وضوح ویدئوی مورد نظر مطابقت داشته باشد. برای انجام این کار، باید از دو فیلتر در «ویدیوی خروجی» استفاده کنید: swsResize برای تغییر وضوح و «افزودن فیلدها» برای تبدیل یک فیلم «فرمت باریک» شوروی به یک فرمت گسترده. تمام فیلترهای دیگر اختیاری هستند. به عنوان مثال، اگر کسی متوجه نشد که چرا بیانیه آقای شاریکوف در قسمت مورد بحث وجود دارد، با استفاده از فیلتر «افزودن لوگو»، می‌توانید آرم PostgreSQL را در بالای «قلب سگ» قرار دهید.

ثانیاً، همه قطعات باید از نرخ فریم یکسانی استفاده کنند. من از ۲۵ فریم در ثانیه استفاده می‌کنم، زیرا دوربین و فیلم‌های قدیمی شوروی اینقدر به من می‌دهند. اگر فیلمی که از آن می برید با سرعت متفاوتی گرفته شده است، از فیلتر 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

محافظ صفحه نمایش عکسبرداری

در اینجا نیز همه چیز ساده است: شما در پس زمینه یک طرح هوشمندانه عکس می گیرید، ویدیوهای حاصل را در یک کاتالوگ قرار می دهید. ضبط، و از آنجا آن را با قطعات به دایرکتوری منتقل کنید. قوانین نامگذاری مانند نقل قول های وقفه است، دستور recoding به شرح زیر است:

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

لطفا توجه داشته باشید که مدت زمان فایل صوتی ابتدا توسط نرم افزار تعیین می شود سوکسی، و سپس ویدیو با طول مورد نیاز ویرایش می شود. همه توصیه هایی که پیدا کردم ساده تر هستند: به جای پرچم -t ${دوره} پرچم استفاده می شود -کوتاه ترین... در حقیقت ffmpeg طول mp3 را بسیار تقریبی تعیین می کند و در حین ویرایش، طول آهنگ صوتی می تواند به شدت (یک یا دو ثانیه) با طول آهنگ ویدیو متفاوت باشد. این مهم نیست که کل ویدیو از یک فریم تشکیل شده باشد، اما وقتی چنین ویدیویی را با وقفه در حاشیه بچسبانید، اثرات لکنت بسیار ناخوشایندی رخ می دهد.

راه دیگر برای تعیین مدت زمان فایل mp3 استفاده از آن است اطلاعات mp3. او هم اشتباه می کند و گاهی اوقات ffmpeg بیشتر از اطلاعات mp3، گاهی اوقات برعکس است، گاهی اوقات هر دو دروغ می گویند - من متوجه هیچ الگوی نشدم. و اینجا سوکسی درست کار می کند

برای نصب این ابزار مفید، این کار را انجام دهید:

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 داشتن ImageMagick را، یک کاربر واقعی لینوکس هر جلوه خاصی ایجاد می کند، اما اگر کسی ایده من را با پراکندگی دوست داشته باشد، این اسکریپت است:

#!/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

اضافه کردن نظر