Karanténa je skvělý čas se něco naučit. Jak však chápete, aby se někdo něco naučil, musí někdo učit. Pokud máte prezentaci, kterou chcete předat milionovému publiku a získat světovou slávu, pak je tento článek určen právě vám. Zde najdete podrobné pokyny, jak z vaší prezentace vytvořit video.
Zamítáme způsob nahrávání „audiokomentářů“ v PowerPointu a export prezentace do videa jako triviální a neposkytující desetinu možností potřebných pro skutečně skvělé video.
Nejprve se rozhodneme, jaké rámy potřebujeme:
- Skutečné snímky s komentářem
- změna snímku
- Citáty z populárních filmů
- Několik rámečků s tváří lektora a jeho oblíbenou kočkou (volitelné)
Vytvoření adresářové struktury
.
├── clipart
├── clips
├── rec
├── slide
└── sound
Účel adresářů v pořadí řazení: filmy, ze kterých budeme vytahovat citáty (klipart), fragmenty našeho budoucího videa (klipy), videa z kamery (rec), diapozitivy ve formě obrázků (slide), zvuk (zvuk).
Tvorba prezentace v obrazech
Pro skutečného uživatele Linuxu s červenýma očima nepředstavuje vytvoření prezentace ve formě obrázků žádný problém. Jen připomenu, že dokument ve formátu pdf lze pomocí příkazu analyzovat na obrázky
pdftocairo -png -r 128 ../lecture.pdf
Pokud takový příkaz neexistuje, nainstalujte balíček sami poppler-utils (návod pro Ubuntu; pokud máte Arch, tak víte naprosto dobře, co si beze mě počít).
Zde a dále se domnívám, že video je připraveno ve formátu HD Ready, tedy 1280x720. Prezentace s horizontální velikostí 10 palců poskytuje přesně tuto velikost, když je nezatížená (viz volba -r 128).
Příprava textu
Chcete-li vytvořit opravdu skvělý materiál, musíte nejprve napsat svůj projev. Také jsem si myslel, že text zvládnu bez přípravy, zvláště když mám dobré zkušenosti s přednášením. Ale jedna věc je hrát živě a druhá věc je natočit video. Nebuďte líní – čas strávený psaním se vám mnohonásobně vyplatí.
Zde je můj formát záznamu. Číslo v názvu se rovná číslu snímku, přerušení jsou zvýrazněna červeně. Pro přípravu je vhodný jakýkoli editor, ale je lepší vzít si plnohodnotný textový procesor - např. OnlyOffice.
Hlas přes snímky
Co na to říct - zapněte mikrofon a pište :)
Praxe ukazuje, že kvalita záznamu i z nejlevnějšího externího mikrofonu je nesrovnatelně lepší než ze zabudovaného mikrofonu notebooku. Pokud chcete kvalitní vybavení, doporučuji
Pro nahrávání jsem použil záznamník zvuku – velmi jednoduchá aplikace pro záznam zvuku. Převzít si to můžete například zde:
sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder
Hlavní věcí v tomto kroku je správně pojmenovat soubory. Název se musí skládat z čísla snímku a čísla fragmentu. Fragmenty jsou číslovány lichými čísly - 1, 3, 5 atd. Pro snímek, jehož text je na obrázku, se tedy vytvoří dva soubory: 002-1.mp3 и 002-3.mp3.
Pokud jste všechna videa nahráli najednou v tiché místnosti, už s nimi nemusíte nic dělat. Pokud jste nahráli v několika krocích, je lepší vyrovnat úroveň hlasitosti:
mp3gain -r *.mp3
Pomůcky mp3gain Z nějakého důvodu to není ve standardních úložištích, ale můžete to získat zde:
sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain
Po tom všem je třeba nahrát další soubor s tichostí. K tichým videím je nutné přidat zvukovou stopu: pokud jedno video zvukovou stopu má a druhé ne, pak je obtížné tato videa slepit dohromady. Ticho lze nahrávat z mikrofonu, ale je lepší vytvořit soubor v editoru smělost. Délka souboru by měla být alespoň sekunda (je možné i více) a měl by být pojmenován ticho.mp3
Příprava videí o přerušení
Zde je vše omezeno pouze vaší představivostí. K úpravě videí můžete použít editor Avidemux. Kdysi to bylo ve standardních repozitářích, ale pak bylo z nějakého důvodu vyříznuto. Tohle nás nezastaví:
sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5
Návodů na práci s tímto editorem je na internetu spousta a v zásadě je tam vše intuitivní. Je důležité splnit několik podmínek.
Za prvé, rozlišení videa musí odpovídat cílovému rozlišení videa. Chcete-li to provést, musíte ve „výstupním videu“ použít dva filtry: swsResize pro změnu rozlišení a „přidání polí“ pro přeměnu sovětského „úzkého formátu“ filmu na široký formát. Všechny ostatní filtry jsou volitelné. Pokud například někdo nerozumí tomu, proč je prohlášení pana Sharikova v diskutovaném fragmentu, pomocí filtru „přidat logo“ můžete logo PostgreSQL překrýt přes „Psí srdce“.
Za druhé, všechny fragmenty musí používat stejnou snímkovou frekvenci. Používám 25 snímků za sekundu, protože můj fotoaparát a staré sovětské filmy mi toho hodně dávají. Pokud byl film, ze kterého stříháte, natočen jinou rychlostí, použijte filtr Převzorkovat video.
Za třetí, všechny fragmenty musí být komprimovány stejným kodekem a zabaleny do stejných kontejnerů. Proto v Avidemux pro formát vyberte video – “MPEG4 AVC (x264)", Zvuk - "AAC (FAAC)", výstupní formát - "MP4 muxer".
Za čtvrté je důležité správně pojmenovat střižená videa. Název souboru se musí skládat z čísla snímku a čísla fragmentu. Fragmenty jsou číslovány sudými čísly, počínaje 2. Pro diskutovaný snímek by se tedy video s přerušením mělo nazývat 002-2.mp4
Poté, co jsou videa připravena, je třeba je přenést do adresáře s fragmenty. Nastavení avidemux se liší od nastavení ffmpeg standardně se záhadnými parametry tbr, tbn, tbc. Neovlivňují přehrávání, ale neumožňují slepení videí. Pojďme tedy překódovat:
for f in ???-?.mp4;
do
ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done
Střílecí spořiče obrazovky
I zde je vše jednoduché: natáčíte na pozadí nějakého chytrého schématu, výsledná videa vložíte do katalogu reca odtud jej přeneste do adresáře s fragmenty. Pravidla pojmenování jsou stejná jako pro uvozovky přerušení, příkaz překódování je následující:
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
Pokud plánujete začít video svým projevem, pojmenujte tento fragment 000-1.mp4
Vytváření rámů ze statických obrázků
Je čas upravit videa ze statických obrázků a zvuku. To se provádí pomocí následujícího 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
Vezměte prosím na vědomí, že délku zvukového souboru nejprve určí nástroj soxia poté se upraví video požadované délky. Všechna doporučení, která jsem našel, jsou jednodušší: místo vlajky -t ${duration} používá se vlajka -nejkratší... Vlastně ffmpeg určuje délku mp3 velmi přibližně a při editaci se délka zvukové stopy může značně lišit (o jednu až dvě sekundy) od délky video stopy. Nezáleží na tom, jestli se celé video skládá z jednoho snímku, ale když takové video slepíte s přerušeními na hranici, dochází k extrémně nepříjemným efektům koktání.
Dalším způsobem, jak určit dobu trvání souboru mp3, je použití mp3 info. I ona dělá chyby a občas ffmpeg dává více než mp3 info, někdy je to naopak, někdy lžou oba – nevšiml jsem si žádného vzoru. A tady soxi funguje správně.
Chcete-li nainstalovat tento užitečný nástroj, postupujte takto:
sudo apt-get install sox libsox-fmt-mp3
Provádění přechodů mezi snímky
Přechod je krátké video, ve kterém se jeden snímek změní na druhý. Abychom vytvořili taková videa, pořizujeme snímky ve dvojicích a pomocí ImageMagick transformovat jeden do druhého:
#!/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 nějakého důvodu jsem chtěl, aby byl snímek posetý tečkami, a další snímek by se pak sestavil z teček, a proto jsem napsal skript nazvaný fade.pl Mít ImageMagick, skutečný uživatel Linuxu vytvoří jakýkoli speciální efekt, ale pokud se někomu líbí můj nápad s rozptylem, zde 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
Nyní máme všechny fragmenty. Přejděte do katalogu klipy a sestavte hotový film pomocí dvou příkazů:
ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4
Užijte si sledování svých vděčných studentů!
Zdroj: www.habr.com