Prelegeri video: mod Unix

Prelegeri video: mod Unix
Carantina este un moment minunat pentru a învăța ceva. Totuși, după cum înțelegeți, pentru ca cineva să învețe ceva, cineva trebuie să predea. Dacă aveți o prezentare pe care doriți să o oferiți unui public de milioane și să obțineți faimă în întreaga lume, atunci acest articol este pentru dvs. Aici vei găsi instrucțiuni pas cu pas despre cum să faci un videoclip din prezentarea ta.

Respingem calea înregistrării „comentariilor audio” în PowerPoint și a exportului prezentării în video ca fiind banală și nu oferă o zecime din capabilitățile necesare pentru un videoclip cu adevărat cool.

Mai întâi, să decidem de ce cadre avem nevoie:

  1. Slide-urile reale cu voce off
  2. schimbare de diapozitiv
  3. Citate din filme populare
  4. Mai multe cadre cu chipul lectorului și pisica lui preferată (opțional)

Crearea unei structuri de directoare

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

Scopul directoarelor în ordinea listării: filme din care vom trage citate (clipart), fragmente din viitorul nostru videoclip (clipuri), videoclipuri de la cameră (rec), diapozitive sub formă de imagini (slide), sunet (sunet).

Realizarea unei prezentări în imagini

Pentru un adevărat utilizator Linux cu ochii roșii, realizarea unei prezentări sub formă de imagini nu prezintă probleme. Permiteți-mi doar să vă reamintesc că un document în format pdf poate fi analizat în imagini folosind comanda

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

Dacă nu există o astfel de comandă, instalați singur pachetul poppler-utils (instrucțiuni pentru Ubuntu; dacă ai Arch, atunci știi perfect ce să faci fără mine).

În continuare, cred că videoclipul este pregătit în format HD Ready, adică 1280x720. O prezentare cu o dimensiune orizontală de 10 inci produce exact această dimensiune atunci când este descărcată (vezi opțiunea -r 128).

Pregătirea textului

Dacă vrei să faci un material cu adevărat grozav, discursul tău trebuie scris mai întâi. De asemenea, m-am gândit că aș putea rosti textul fără pregătire, mai ales că am o experiență bună în lecturi. Dar una este să cântați live și alta este să înregistrați un videoclip. Nu fi leneș – timpul petrecut tastând va da roade de mai multe ori.

Prelegeri video: mod Unix

Iată formatul meu de înregistrare. Numărul din titlu este egal cu numărul diapozitivului, întreruperile sunt evidențiate cu roșu. Orice editor este potrivit pentru pregătire, dar este mai bine să luați un procesor de text cu drepturi depline - de exemplu, OnlyOffice.

Voce peste diapozitive

Ce pot să spun - pornește microfonul și scrie :)

Experiența arată că calitatea înregistrării chiar și de la cel mai ieftin microfon extern este incomparabil mai bună decât de la microfonul încorporat al unui laptop. Daca iti doresti echipament de calitate ti-l recomand aici este acest articol.

Pentru inregistrare am folosit inregistrare audio – o aplicație foarte simplă pentru înregistrarea sunetului. O poți lua, de exemplu, aici:

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

Principalul lucru la acest pas este denumirea corectă a fișierelor. Numele trebuie să fie format din numărul diapozitivului și numărul fragmentului. Fragmentele sunt numerotate cu numere impare - 1, 3, 5 etc. Deci, pentru diapozitivul al cărui text este afișat în imagine, vor fi create două fișiere: 002-1.mp3 и 002-3.mp3.

Dacă ați înregistrat toate videoclipurile simultan într-o cameră liniștită, nu trebuie să faceți nimic mai departe cu ele. Dacă ați înregistrat în mai mulți pași, este mai bine să egalizați nivelul volumului:

mp3gain -r *.mp3

Utilități mp3câștig Din anumite motive, nu se află în depozitele standard, dar îl puteți obține aici:

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

După toate acestea, trebuie să înregistrați un alt fișier cu tăcere. Este necesar să adăugați o coloană sonoră la videoclipurile silențioase: dacă un videoclip are o coloană sonoră, iar celălalt nu, atunci este dificil să lipiți aceste videoclipuri împreună. Tăcerea poate fi înregistrată de la un microfon, dar este mai bine să creați un fișier în editor Îndrăzneală. Lungimea fișierului ar trebui să fie de cel puțin o secundă (este posibil mai mult) și ar trebui să fie numit tăcere.mp3

Pregătirea videoclipurilor de întrerupere

Aici totul este limitat doar de imaginația ta. Puteți folosi un editor pentru a edita videoclipuri Avidemux. A fost odată ca niciodată în arhivele standard, dar apoi din anumite motive a fost tăiat. Asta nu ne va opri:

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

Există o mulțime de instrucțiuni pentru a lucra cu acest editor pe Internet și, în principiu, totul este intuitiv. Este important să îndepliniți mai multe condiții.

În primul rând, rezoluția video trebuie să se potrivească cu rezoluția video țintă. Pentru a face acest lucru, trebuie să utilizați două filtre în „video de ieșire”: swsResize pentru a schimba rezoluția și „adăugarea câmpurilor” pentru a transforma un film sovietic „format îngust” într-un format larg. Toate celelalte filtre sunt opționale. De exemplu, dacă cineva nu înțelege de ce declarația domnului Sharikov se află în fragmentul în discuție, folosind filtrul „adăugați sigla”, puteți suprapune sigla PostgreSQL deasupra „Inimii câinelui”.

În al doilea rând, toate fragmentele trebuie să utilizeze aceeași rată de cadre. Folosesc 25 de cadre pe secundă pentru că camera mea și vechile filme sovietice îmi oferă atât de mult. Dacă filmul din care tăiați a fost filmat cu o viteză diferită, utilizați filtrul Resample Video.

În al treilea rând, toate fragmentele trebuie să fie comprimate cu același codec și ambalate în aceleași containere. Prin urmare în Avidemux pentru format, selectați videoclipul – „MPEG4 AVC (x264)", audio - "AAC (FAAC)", format de iesire - "MP4 Muxer".

În al patrulea rând, este important să denumești corect videoclipurile tăiate. Numele fișierului trebuie să fie format din numărul diapozitivului și numărul fragmentului. Fragmentele sunt numerotate cu numere pare, incepand de la 2. Astfel, pentru cadrul in discutie ar trebui numit video-ul cu intrerupere. 002-2.mp4

După ce videoclipurile sunt gata, trebuie să le transferați în directorul cu fragmente. Setări avidemux diferă de setări FFMPEG implicit cu parametri misterioși tbr, tbn, tbc. Nu afectează redarea, dar nu permit lipirea videoclipurilor. Deci hai sa recodificam:

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

Fotografierea screensaverelor

Și aici totul este simplu: filmați pe fundalul unei scheme inteligente, puneți videoclipurile rezultate într-un catalog rec, iar de acolo transferați-l în directorul cu fragmente. Regulile de denumire sunt aceleași ca pentru ghilimele de întrerupere, comanda de recodare este următoarea:

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

Dacă intenționați să începeți videoclipul cu discursul dvs., numiți acest fragment 000-1.mp4

Realizarea de cadre din imagini statice

Este timpul să editați videoclipuri din imagini statice și sunet. Acest lucru se face cu următorul script:

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

Vă rugăm să rețineți că durata fișierului audio este mai întâi determinată de utilitar soxi, iar apoi videoclipul de lungimea necesară este editat. Toate recomandările pe care le-am găsit sunt mai simple: în loc de steag -t ${durata} este folosit steag -cel mai scurt... De fapt FFMPEG determină lungimea mp3-ului foarte aproximativ, iar în timpul editării, lungimea pistei audio poate diferi foarte mult (cu una sau două secunde) de lungimea pistei video. Acest lucru nu contează dacă întregul videoclip este format dintr-un singur cadru, dar atunci când lipiți un astfel de videoclip cu întreruperi la margine, apar efecte de bâlbâială extrem de neplăcute.

O altă modalitate de a determina durata unui fișier mp3 este utilizarea mp3info. Face și ea greșeli și uneori FFMPEG dă mai mult decât mp3info, uneori este invers, alteori mint amândoi – nu am observat niciun model. Si aici soxi functioneaza corect.

Pentru a instala acest utilitar util, procedați astfel:

sudo apt-get install sox libsox-fmt-mp3

Efectuarea de tranziții între diapozitive

O tranziție este un scurt videoclip în care un diapozitiv se transformă în altul. Pentru a realiza astfel de videoclipuri, luăm diapozitive în perechi și folosind ImageMagick transforma una in alta:

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

Din anumite motive am vrut ca diapozitivul să fie împrăștiat cu puncte, iar apoi următorul diapozitiv să fie asamblat din puncte și pentru asta am scris un script numit fade.pl Având ImageMagick, un utilizator Linux real va crea orice efect special, dar dacă cuiva îi place ideea mea cu scattering, iată scriptul:

#!/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);
}

Montam videoclipul terminat

Acum avem toate fragmentele. Mergi la catalog clipuri și asamblați filmul finit folosind două comenzi:

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

Urmărește cu plăcere studenților tăi recunoscători!

Sursa: www.habr.com

Adauga un comentariu