Видео предавања: уникс начин

Видео предавања: уникс начин
Карантин је дивно време да се нешто научи. Међутим, као што разумете, да би неко нешто научио, неко мора да подучава. Ако имате презентацију коју желите да пружите милионској публици и стекнете светску славу, онда је овај чланак за вас. Овде ћете пронаћи упутства корак по корак о томе како да направите видео из своје презентације.

Пут снимања „аудио коментара“ у ПоверПоинт-у и извоза презентације у видео одбацујемо као тривијалан и не пружамо десетину могућности потребних за заиста цоол видео.

Прво, одлучимо који оквири су нам потребни:

  1. Стварни слајдови са преслушавањем
  2. Мењање слајдова
  3. Цитати из популарних филмова
  4. Неколико оквира са лицем предавача и његовом омиљеном мачком (опционо)

Креирање структуре директоријума

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

Сврха директоријума по редоследу навођења: филмови из којих ћемо извући цитате (клипарт), фрагменти нашег будућег видеа (клипови), видео снимци са камере (рец), слајдови у облику слика (слајд), звук (звук).

Израда презентације у сликама

За правог корисника Линука са црвеним очима, прављење презентације у облику слика не представља никакав проблем. Само да вас подсетим да се документ у пдф формату може рашчланити на слике помоћу команде

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

Ако не постоји таква команда, сами инсталирајте пакет попплер-утилс (упутства за Убунту; ако имате Арцх, онда савршено добро знате шта да радите без мене).

Овде и даље верујем да је видео припремљен у ХД Реади формату, односно 1280к720. Презентација са хоризонталном величином од 10 инча даје управо ову величину када се не учита (погледајте параметар -р 128).

Припрема текста

Ако желите да направите заиста одличан материјал, ваш говор треба прво да буде написан. Такође сам мислио да могу да говорим текст без припреме, поготово што имам добро искуство у предавањима. Али једно је наступити уживо, а друго снимити видео. Не будите лењи - време проведено у куцању ће се вишеструко исплатити.

Видео предавања: уникс начин

Ево мог формата снимања. Број у наслову једнак је броју слајда, прекиди су означени црвеном бојом. Било који уређивач је погодан за припрему, али је боље узети пуноправни програм за обраду текста - на пример, ОнлиОффице.

Глас преко слајдова

Шта да кажем - укључите микрофон и пишите :)

Искуство показује да је квалитет снимања чак и са најјефтинијег спољног микрофона неупоредиво бољи него са уграђеног микрофона лаптопа. Ако желите квалитетну опрему, препоручујем ево овог чланка.

За снимање сам користио Аудио рекордер – врло једноставна апликација за снимање звука. Можете га узети, на пример, овде:

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

Главна ствар у овом кораку је да правилно именујете датотеке. Назив мора да се састоји од броја слајда и броја фрагмента. Фрагменти су нумерисани непарним бројевима - 1, 3, 5, итд. Дакле, за слајд, чији је текст приказан на слици, биће креиране две датотеке: 002-1.мп3 и 002-3.мп3.

Ако сте снимили све видео записе одједном у тихој просторији, не морате ништа даље да радите са њима. Ако сте снимали у неколико корака, боље је изједначити ниво јачине звука:

mp3gain -r *.mp3

Комуналије мп3гаин Из неког разлога није у стандардним репозиторијумима, али можете га добити овде:

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

После свега овога, потребно је да снимите још једну датотеку у тишини. Нечујним видео записима је неопходно додати звучни запис: ако један видео има звучни запис, а други нема, онда је тешко залепити те видео записе заједно. Тишина се може снимити са микрофона, али је боље направити датотеку у едитору Одважност. Дужина датотеке треба да буде најмање секунду (могуће је и више) и треба да буде именована тишина.мп3

Припрема видео снимака прекида

Овде је све ограничено само вашом маштом. За уређивање видео записа можете користити уређивач avidemux. Некада је био у стандардним репозиторијумима, али је онда из неког разлога избачен. Ово нас неће зауставити:

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

На Интернету постоји много упутстава за рад са овим уређивачем и у принципу је све тамо интуитивно. Важно је испунити неколико услова.

Прво, видео резолуција мора да одговара циљној видео резолуцији. Да бисте то урадили, потребно је да користите два филтера у „излазном видеу“: свсРесизе да бисте променили резолуцију и „додавање поља“ да бисте совјетски филм „уског формата“ претворили у широки формат. Сви остали филтери су опциони. На пример, ако неко не разуме зашто се изјава господина Шарикова налази у фрагменту о коме се дискутује, користећи филтер „додај лого“, можете прекрити ПостгреСКЛ лого на врх „Псећег срца“.

Друго, сви фрагменти морају користити исту брзину кадрова. Користим 25 кадрова у секунди јер ми мој фотоапарат и стари совјетски филмови дају толико. Ако је филм из којег сечете снимљен другом брзином, користите филтер Ресампле Видео.

Треће, сви фрагменти морају бити компримовани истим кодеком и упаковани у исте контејнере. Стога, у avidemux за формат изаберите видео – “МПЕГ4 АВЦ (к264)", аудио - "ААЦ (ФААЦ)", излазни формат - "МП4 Мукер'.

Четврто, важно је правилно именовати исечене видео записе. Име датотеке мора се састојати од броја слајда и броја фрагмента. Фрагменти се нумеришу парним бројевима, почевши од 2. Дакле, за оквир о коме се говори видео са прекидом треба назвати 002-2.мп4

Након што су видео снимци спремни, потребно је да их пренесете у директоријум фрагмената. Подешавања авидемук разликују од подешавања ффмпег подразумевано са мистериозним параметрима тбр, тбн, тбц. Не утичу на репродукцију, али не дозвољавају да се видео снимци залепе заједно. Па хајде да поново кодирамо:

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.мп4

Прављење оквира од статичних слика

Време је за уређивање видео записа из статичних слика и звука. Ово се ради са следећом скриптом:

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

Имајте на уму да трајање аудио датотеке прво одређује услужни програм соки, а затим се монтира видео запис потребне дужине. Све препоруке које сам пронашао су једноставније: уместо заставе -т ${дуратион} користи се застава -најкраћи... Заправо ффмпег одређује дужину мп3 веома приближно, а током монтаже, дужина аудио записа може се у великој мери (за једну или две секунде) разликовати од дужине видео записа. Ово није битно ако се цео видео састоји од једног кадра, али када залепите такав видео са прекидима на граници, јављају се изузетно непријатни ефекти муцања.

Други начин да се одреди трајање мп3 датотеке је употреба мп3инфо. И она греши, и то понекад ффмпег даје више од мп3инфо, некад је обрнуто, некад обоје лажу – нисам приметио никакав образац. И овде соки ради исправно.

Да бисте инсталирали овај корисни услужни програм, урадите ово:

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}

Из неког разлога сам желео да слајд буде разбацан тачкама, а затим да се следећи слајд састави од тачака, и за то сам написао скрипту под називом фаде.пл Имајући ИмагеМагицк, прави Линукс корисник ће направити било какав посебан ефекат, али ако се некоме свиђа моја идеја са расипањем, ево скрипте:

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

Уживајте у гледању својим захвалним ученицима!

Извор: ввв.хабр.цом

Додај коментар