Karanténa je skvelý čas na to, aby ste sa niečo naučili. Ako však chápete, na to, aby sa niekto niečo naučil, musí niekto učiť. Ak máte prezentáciu, ktorú chcete poskytnúť miliónovému publiku a získať svetovú slávu, potom je tento článok určený práve vám. Tu nájdete pokyny krok za krokom, ako vytvoriť video z vašej prezentácie.
Zamietame spôsob nahrávania „audiokomentárov“ v PowerPointe a export prezentácie do videa ako triviálny a neposkytujúci ani desatinu možností potrebných pre skutočne skvelé video.
Najprv sa rozhodnime, aké rámy potrebujeme:
- Skutočné snímky s komentárom
- Výmena sklíčok
- Citáty z populárnych filmov
- Niekoľko rámov s tvárou lektora a jeho obľúbenou mačkou (voliteľné)
Vytvorenie adresárovej štruktúry
.
├── clipart
├── clips
├── rec
├── slide
└── sound
Účel adresárov v poradí zoradenia: filmy, z ktorých vytiahneme citáty (klipart), fragmenty nášho budúceho videa (klipy), videá z fotoaparátu (rec), diapozitívy vo forme obrázkov (slide), zvuk (zvuk).
Vytvorenie prezentácie na obrázkoch
Skutočnému červenookému používateľovi Linuxu nerobí prezentácia vo forme obrázkov žiadne problémy. Len pripomeniem, že dokument vo formáte pdf je možné analyzovať na obrázky pomocou príkazu
pdftocairo -png -r 128 ../lecture.pdf
Ak takýto príkaz neexistuje, nainštalujte balík sami Poppler-utils (návod pre Ubuntu; ak máte Arch, tak veľmi dobre viete, čo bezo mňa robiť).
Ďalej sa domnievam, že video je pripravené vo formáte HD Ready, teda 1280x720. Prezentácia s horizontálnym rozmerom 10 palcov vytvára presne túto veľkosť, keď je vyložená (pozri možnosť -r 128).
Príprava textu
Ak chcete vytvoriť naozaj skvelý materiál, váš prejav musí byť najprv napísaný. Tiež som si myslel, že ten text zvládnem bez prípravy, najmä preto, že mám dobré skúsenosti s prednášaním. Jedna vec je však hrať naživo a druhá vec je nahrať video. Nebuďte leniví – čas strávený písaním sa vám mnohonásobne vráti.
Tu je môj formát záznamu. Číslo v nadpise sa rovná číslu snímky, prerušenia sú zvýraznené červenou farbou. Na prípravu je vhodný akýkoľvek editor, ale je lepšie vziať si plnohodnotný textový procesor - napr. OnlyOffice.
Hlas cez snímky
Čo môžem povedať - zapnite mikrofón a píšte :)
Prax ukazuje, že kvalita záznamu aj z toho najlacnejšieho externého mikrofónu je neporovnateľne lepšia ako zo vstavaného mikrofónu notebooku. Ak chcete kvalitné vybavenie, odporúčam
Na nahrávanie som použil nahrávač zvuku – veľmi jednoduchá aplikácia na nahrávanie zvuku. Môžete si to vziať napríklad tu:
sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder
Hlavná vec v tomto kroku je správne pomenovať súbory. Názov musí pozostávať z čísla snímky a čísla fragmentu. Fragmenty sú očíslované nepárnymi číslami - 1, 3, 5 atď. Pre snímku, ktorej text je zobrazený na obrázku, sa teda vytvoria dva súbory: 002-1.mp3 и 002-3.mp3.
Ak ste nahrali všetky videá naraz v tichej miestnosti, už s nimi nemusíte nič robiť. Ak ste nahrávali v niekoľkých krokoch, je lepšie vyrovnať úroveň hlasitosti:
mp3gain -r *.mp3
Verejné služby zisk mp3 Z nejakého dôvodu nie je v štandardných úložiskách, ale môžete ho získať tu:
sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain
Po tomto všetkom musíte nahrať ďalší súbor s tichom. K tichým videám je potrebné pridať zvukovú stopu: ak jedno video má zvukovú stopu a druhé nie, potom je ťažké tieto videá zlepiť. Ticho je možné nahrávať z mikrofónu, ale je lepšie vytvoriť súbor v editore smelosť. Dĺžka súboru by mala byť aspoň sekunda (je možné aj viac) a mal by byť pomenovaný ticho.mp3
Príprava videí s prerušením
Tu je všetko obmedzené iba vašou predstavivosťou. Na úpravu videí môžete použiť editor Avidemux. Kedysi to bolo v štandardných úložiskách, ale potom bolo z nejakého dôvodu vystrihnuté. Toto nás nezastaví:
sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5
Návodov na prácu s týmto editorom je na internete množstvo a v zásade je tam všetko intuitívne. Dôležité je splniť niekoľko podmienok.
Po prvé, rozlíšenie videa sa musí zhodovať s cieľovým rozlíšením videa. Aby ste to dosiahli, musíte vo „výstupnom videu“ použiť dva filtre: swsResize na zmenu rozlíšenia a „pridanie polí“ na premenu sovietskeho „úzkoformátového“ filmu na široký formát. Všetky ostatné filtre sú voliteľné. Napríklad, ak niekto nerozumie, prečo je vyhlásenie pána Sharikova v diskutovanom fragmente, pomocou filtra „pridať logo“ môžete logo PostgreSQL prekryť cez „Psie srdce“.
Po druhé, všetky fragmenty musia používať rovnakú snímkovú frekvenciu. Používam 25 snímok za sekundu, pretože môj fotoaparát a staré sovietske filmy mi toľko dávajú. Ak bol film, z ktorého striháte, natočený inou rýchlosťou, použite filter Prevzorkovať video.
Po tretie, všetky fragmenty musia byť komprimované rovnakým kodekom a zabalené do rovnakých obalov. Preto v Avidemux pre formát vyberte video – “Mpeg4 AVC (x264)", audio - "AAC (FAAC)", výstupný formát - "MP4 muxer".
Po štvrté, dôležité je správne pomenovať zostrihané videá. Názov súboru musí pozostávať z čísla snímky a čísla fragmentu. Fragmenty sú očíslované párnymi číslami, počnúc od 2. Preto pre diskutovanú snímku by sa video s prerušením malo nazývať 002-2.mp4
Keď sú videá pripravené, musíte ich preniesť do adresára s fragmentmi. nastavenie Avidemux sa líšia od nastavení ffmpeg štandardne so záhadnými parametrami tbr, tbn, tbc. Neovplyvňujú prehrávanie, ale neumožňujú zlepenie videí. Takže prekódujeme:
for f in ???-?.mp4;
do
ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done
Strieľacie šetriče obrazovky
Aj tu je všetko jednoduché: natáčate na pozadí nejakej šikovnej schémy, výsledné videá vložíte do katalógu reca odtiaľ ho preneste do adresára s fragmentmi. Pravidlá pomenovania sú rovnaké ako pre úvodzovky prerušenia, príkaz na prekódovanie je nasledujúci:
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
Ak plánujete začať video svojou rečou, pomenujte tento fragment 000-1.mp4
Vytváranie rámov zo statických obrázkov
Je čas upraviť videá zo statických obrázkov a zvuku. To sa vykonáva pomocou nasledujúceho skriptu:
#!/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
Upozorňujeme, že trvanie zvukového súboru najskôr určí obslužný program soxia potom sa upraví video požadovanej dĺžky. Všetky odporúčania, ktoré som našiel, sú jednoduchšie: namiesto vlajky -t ${duration} používa sa vlajka -najkratšia. v skutočnosti ffmpeg určuje dĺžku mp3 veľmi približne a pri úprave sa dĺžka zvukovej stopy môže značne líšiť (o jednu alebo dve sekundy) od dĺžky video stopy. Nezáleží na tom, či sa celé video skladá z jednej snímky, ale keď prilepíte takéto video s prerušeniami na hranici, dochádza k mimoriadne nepríjemným efektom koktania.
Ďalším spôsobom, ako určiť trvanie súboru mp3, je použiť mp3 info. Aj ona robí chyby a občas ffmpeg dáva viac ako mp3 info, niekedy je to naopak, niekedy klamú obaja – nevšimol som si žiadny vzor. A tu soxi funguje správne.
Ak chcete nainštalovať tento užitočný nástroj, postupujte takto:
sudo apt-get install sox libsox-fmt-mp3
Vytváranie prechodov medzi snímkami
Prechod je krátke video, v ktorom sa jedna snímka zmení na druhú. Na vytvorenie takýchto videí robíme snímky v pároch a pomocou ImageMagick transformovať jedno na druhé:
#!/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}
Z nejakého dôvodu som chcel, aby bola snímka rozptýlená bodkami a potom by sa ďalšia snímka zostavila z bodiek, a preto som napísal skript s názvom fade.pl Majúci ImageMagick, skutočný používateľ Linuxu vytvorí akýkoľvek špeciálny efekt, ale ak sa niekomu páči môj nápad s rozptylom, tu je 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);
}
Hotové video namontujeme
Teraz máme všetky fragmenty. Prejdite do katalógu klipy a zostavte hotový film pomocou dvoch príkazov:
ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4
Príjemné sledovanie vašich vďačných študentov!
Zdroj: hab.com