
Karantiin on suurepärane aeg midagi õppida. Kuid nagu te mõistate, et keegi peab õpetama, et keegi midagi õpiks. Kui teil on esitlus, millega soovite esineda miljoni silmapaari ees ja saavutada maailmakuulsus, siis see artikkel on teile. Siin on samm-sammuline juhend, kuidas esitluses videofilm saada.
Loistame välja tee "heli kommentaaride" salvestamisest PowerPointis ning esituse eksportimisest videoks, kuna see on triviaalne ja ei paku ükski kümnendikku vajalikest võimalustest, mis on vajalik tõeliselt ägedaks videoks.
Kuna alustame, määrame, milliseid kaadreid meil on vaja:
- Koheselt slaidid koos häälega
- Slaidide vahetus
- Tsitaadid tuntud filmidest
- Mõned kaadrid lektori ja lemmik kassi eest (valikuline)
Loome kaustade struktuuri
.
├── clipart
├── clips
├── rec
├── slide
└── sound
Kaustade määramine vastavalt loetelule: filmid, kust me tsitaate võtame (clipart), meie tulevase video fragmendid (clips), kaameraga salvestatud videod (rec), slaidid piltidena (slide), helifail (sound).
Teeme esituse piltidena
Punase silmaga Linuxi fännile pole esitluse tegemine piltide näol mingiks probleemiks. Pean meeles, et PDF-formaadis dokumendi saab piltideks jagada käsuga
pdftocairo -png -r 128 ../lecture.pdfKui sellist käsku ei ole, installige endale pakett poppler-utils (juhised Ubuntu jaoks; kui teil on Arch, siis teate ilmselt, kuidas edasi).
Siin ja edaspidi arvan, et video valmistatakse HD Ready formaadis, st 1280×720. Horisontaalne suurus 10 tolli annab käivitamisel just sellise suuruse (vt parameetrit -r 128).
Valmistame teksti
Kui soovite teha tõeliselt ägedat materjali, siis peate oma kõne eelnevalt kirja panema. Ma arvasin ka, et suudan teksti ilma ettevalmistuseta rääkida, lisaks on mul päris hea loengute lugemise kogemus. Kuid üks asi on esineda otse, ja teine asi on video salvestamine. Ärge olge laisad – tekstiks kulutatud aeg tasub end korduvalt ära.

Siin on minu salvestusformaadi näidis. Pealkirja number vastab slaidi numbrile, punasega on välja toodud katkestused. Valmistamiseks sobib iga toimetaja, aga parem on siiski kasutada täisfunktsionaalset sõnaprotsessorit – näiteks, OnlyOffice.
Häälestame slaide
Mis siin öelda – lülitage mikrofon sisse ja kirjutage 🙂
Kogemus näitab, et isegi kõige odavama välimikrofoni salvestamise kvaliteet on võrreldes sülearvuti sisemise mikrofoniga palju parem. Kui soovite kvaliteetset seadmeid, soovitan .
Salvestamiseks kasutasin audio-recorder – täiesti lihtne helisalvestusrakendus. Selle leidmine on võimalik näiteks siit:
sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorderSelle sammu peamine punkt on failide õige nimetamine. Nimi peaks koosnema slaidi numbrist ja fragmendi numbrist. Fragmente numbitakse paaritute numbritega – 1, 3, 5 jne. Nii luuakse slaidi jaoks, mille tekst on kujutatud pildil, kaks faili: 002-1.mp3 ja 002-3.mp3.
Kui salvestasite kõik videod korraga vaikuses toas, ei pea te edaspidi nendega midagi tegema. Kui salvestasite mitmes osas, on parem tasandada helitugevuse tase:
mp3gain -r *.mp3Tööriistad mp3gain pole kummalisel kombel standardsetes repositooriumites, kuid selle saab siit:
sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gainKõige selle järel on vaja salvestada veel üks vaikusefail. See on vajalik, et lisada helirada vaiksetele videotele: kui ühes videos on helirada ja teises pole, siis nende lõikamine on keeruline. Vaikust saab salvestada mikrofoniga, kuid parem on luua fail redaktorisse Audacity. Faili pikkus peab olema vähemalt sekund (võib olla kauem) ja seda tasub nimetada silence.mp3
Valmistame üleminekvideod
Siin on kõik piiratud ainult teie kujutlusvõimega. Videote redigeerimiseks võib kasutada redaktorit Avidemux. Kunagi oli ta standardsetes hoidlates, kuid hiljem eemaldati ta mingil põhjusel. See ei takista meid:
sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5Internedis on selle redaktori kasutamise kohta rohkelt juhiseid ja tegelikult on seal kõik intuitiivne. Oluline on järgida mõningaid tingimusi.
Esiteks peab video resolutsioon vastama sihtvideo resolutsioonile. Selleks tuleks "väljundvideo" menüüs kasutada kahte filtrit: swsResize resolutsiooni muutmiseks ja "vahede lisamine", et teha Nõukogude "kitsas formaadis" film laiemaks. Kõik muud filtrid on valikulised. Näiteks, kui keegi ei saa aru, miks hr Sharikovi väljend aruteldavas fragmendis on, võib filtri "logo lisamine" abil "Koer südame" peale kanda PostgreSQLi logo.
Teiseks, kõikides fragmentides tuleb kasutada sama kaadrisagedust. Mina kasutan 25 kaadrit sekundis, kuna nii palju annab minu kaamera ja vanad Nõukogude filmid. Kui film, millest te kaadrit välja lõikate, on filmitud teise kiirusel, kasutage filtrit "video resample".
Kolmandaks, kõik fragmentid peavad olema sama koodekiga pakitud ühte ja samasse konteinerisse. Seega valige Avidemux formaadi jaoks video – "Mpeg4 AVC (x264){ "527835": "AAC (Faac)", "527836": "",AAC (Faac)», väljundvorming – „väljundformaadiks – "MP4 Muxer».
Neljandas, on oluline õigesti nimetada lõigatud klippe. Failinimi peaks koosnema slaidi numbrist ja lõigu numbrist. Lõigud nummerdatakse paarisarvudega, alustades 2-st. Nii et arutletud kaadri jaoks peaks klipp nimega 002-2.mp4
Pärast klippide valmimist tuleb need viia lõikude katalooge. Seaded avidemux erinevad seadistustest ffmpeg vaikimisi salapäraste parameetritega tbr, tbn, tbc. Need ei mõjuta taasesitamist, kuid ei luba klippe kokku panna. Seega kodeerime ümber:
for f in ???-?.mp4;
do
ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
doneKüsimusi eemaldame
Siin on samuti kõik lihtne: filmite end mõne nutika skeemi taustal, kogute saadud klippe katalooge rec, ja sealt viite lõikude katalooge. Nimeandmise reeglid on samad nagu tsitaatoklipide puhul, kodeerimise käsu jaoks on järgmine:
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
Kui kavatsete alustada klippi oma esinemisega, nimetage see lõik 000-1.mp4
Teeme kaadreid staatilistest piltidest
On aeg monteerida klippe staatilistest piltidest ja helist. Seda saab teha järgmise skripti abil:
#!/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}
donePange tähele, et esialgu määrab utiliit helifaili kestuse soxi, ja seejärel monteeritakse soovitud pikkusega video. Kõik minu leitud soovitused on lihtsamad: lipu asemel -t ${duration} kasutatakse lippu -shortest. Tegelikult ffmpeg määrab mp3 pikkuse väga umbkaudselt ja montaaži käigus võib heliraja pikkus (ühe kuni kahe sekundi võrra) oluliselt erineda videoraja pikkusest. See ei oma tähtsust, kui kogu video koosneb ühest kaadrist, kuid sellise videotüki kokku monteerimisel üleminekuvahekordades võivad tekkida äärmiselt ebameeldivad klippimise efektid.
Teine viis mp3-faili kestuse määramiseks on kasutada mp3info. See eksib ka, kuid mõnikord ffmpeg annab rohkem kui mp3info, mõnikord vastupidi, mõlemad võivad vale andmeid anda – seaduspärasusi ma ei märganud. Kuid soxi töötab õigesti.
Selle kasuliku utiliidi installimiseks tehke järgmist:
sudo apt-get install sox libsox-fmt-mp3Teeme üleminekuid slaidide vahel
Üleminek on lühike video, kus üks slaid muutub teiseks. Selliste videote valmistamiseks võtame slaidid paarikaupa ja kasutame imagemagick muutmiseks:
#!/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}Mulle tuli kuidagi soov, et slaid laguneks punktideks ja seejärel koguneks järgmiseks slaidiks, ning selleks kirjutasin skripti nimega fade.pl Olles imagemagick, tõeline linuxuserid suudab luua mistahes eriefekti, kuid kui kellelegi meeldib minu ideega lagunemisest, siis siin on skript:
#!/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);
}Koondame valmis video
Nüüd on meil kõik fragmendid. Liigume katalooge clips ja koondame valmis filmi kahe käsuga:
ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4
Head vaatamist teie tänulikud õpilased!
Allikas: habr.com
