Karantena je čudovit čas, da se česa naučimo. Vendar, kot razumete, da bi se nekdo nekaj naučil, mora nekdo učiti. Če imate predstavitev, ki jo želite predstaviti milijonskemu občinstvu in pridobiti svetovno slavo, potem je ta članek za vas. Tukaj boste našli navodila po korakih, kako narediti video iz svoje predstavitve.
Pot snemanja »zvočnih komentarjev« v PowerPointu in izvoza predstavitve v video zavračamo kot trivialno in ne zagotavlja niti desetine zmogljivosti, potrebnih za resnično kul video.
Najprej se odločimo, katere okvirje potrebujemo:
- Dejanski diapozitivi z glasom
- sprememba diapozitiva
- Citati iz priljubljenih filmov
- Več okvirjev z obrazom predavatelja in njegovo najljubšo mačko (neobvezno)
Ustvarjanje strukture imenika
.
├── clipart
├── clips
├── rec
├── slide
└── sound
Namen imenikov po vrstnem redu naštevanja: filmi, iz katerih bomo črpali citate (clipart), fragmenti našega prihodnjega videa (posnetki), videoposnetki iz kamere (rec), diapozitivi v obliki slik (diapozitivi), zvok (zvok).
Izdelava predstavitve v slikah
Za pravega rdečeokega uporabnika Linuxa izdelava predstavitve v obliki slik ne predstavlja težav. Naj vas samo spomnim, da lahko dokument v formatu pdf z ukazom razčlenimo na slike
pdftocairo -png -r 128 ../lecture.pdf
Če takega ukaza ni, namestite paket sami poppler-utils (navodila za Ubuntu; če imate Arch, potem dobro veste, kaj storiti brez mene).
Tu in naprej menim, da je video pripravljen v formatu HD Ready, torej 1280x720. Predstavitev z vodoravno velikostjo 10 palcev daje točno to velikost, ko ni naložena (glejte parameter -r 128).
Priprava besedila
Če želite ustvariti res odličen material, morate svoj govor najprej napisati. Mislil sem tudi, da bi besedilo lahko spregovoril brez priprave, sploh ker imam dobre izkušnje s predavanji. A eno je nastopati v živo, drugo pa snemati video. Ne bodite leni – čas, porabljen za tipkanje, se vam bo večkrat povrnil.
Tukaj je moj format snemanja. Številka v naslovu je enaka številki diapozitiva, prekinitve so označene rdeče. Vsak urejevalnik je primeren za pripravo, vendar je bolje vzeti polnopravni urejevalnik besedil - na primer OnlyOffice.
Glas preko diapozitivov
Kaj naj rečem - prižgi mikrofon in piši :)
Izkušnje kažejo, da je kakovost snemanja tudi z najcenejšim zunanjim mikrofonom neprimerljivo boljša kot z vgrajenim mikrofonom prenosnika. Če želite kvalitetno opremo, jo priporočam
Za snemanje sem uporabil avdio snemalnik – zelo preprosta aplikacija za snemanje zvoka. Lahko ga vzamete na primer tukaj:
sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder
Glavna stvar pri tem koraku je pravilno poimenovati datoteke. Ime mora biti sestavljeno iz številke diapozitiva in številke fragmenta. Fragmenti so oštevilčeni z lihimi številkami - 1, 3, 5 itd. Torej, za diapozitiv, katerega besedilo je prikazano na sliki, bosta ustvarjeni dve datoteki: 002-1.mp3 и 002-3.mp3.
Če ste posneli vse videoposnetke hkrati v tihi sobi, vam z njimi ni treba storiti ničesar več. Če ste snemali v več korakih, je bolje izenačiti glasnost:
mp3gain -r *.mp3
Javne službe mp3pet Iz nekega razloga ga ni v standardnih repozitorijih, vendar ga lahko dobite tukaj:
sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain
Po vsem tem morate posneti še eno datoteko s tišino. Tihim videoposnetkom je treba dodati zvočni posnetek: če ima en videoposnetek zvočni posnetek, drugi pa ne, je te videoposnetke težko zlepiti skupaj. Tišino lahko posnamete z mikrofonom, vendar je bolje ustvariti datoteko v urejevalniku Audacity. Datoteka mora biti dolga vsaj sekundo (možno je več) in mora biti poimenovana tišina.mp3
Priprava prekinitvenih videov
Tukaj je vse omejeno le z vašo domišljijo. Za urejanje videoposnetkov lahko uporabite urejevalnik Avidemux. Nekoč je bil v standardnih repozitorijih, potem pa je bil iz nekega razloga izrezan. To nas ne bo ustavilo:
sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5
Na internetu je veliko navodil za delo s tem urejevalnikom in načeloma je tam vse intuitivno. Pomembno je izpolniti več pogojev.
Prvič, ločljivost videa se mora ujemati s ciljno ločljivostjo videa. Če želite to narediti, morate v "izhodnem videu" uporabiti dva filtra: swsResize za spremembo ločljivosti in "dodajanje polj", da sovjetski film "ozkega formata" spremenite v širok format. Vsi ostali filtri so neobvezni. Na primer, če nekdo ne razume, zakaj je izjava g. Sharikova v obravnavanem fragmentu, lahko z uporabo filtra »dodaj logotip« prekrijete logotip PostgreSQL na vrhu »pasjega srca«.
Drugič, vsi fragmenti morajo uporabljati enako hitrost sličic. Uporabljam 25 sličic na sekundo, ker mi toliko dajo fotoaparat in stari sovjetski filmi. Če je bil film, iz katerega izrezujete, posnet z drugačno hitrostjo, uporabite filter Resample Video.
Tretjič, vsi fragmenti morajo biti stisnjeni z istim kodekom in zapakirani v iste vsebnike. Zato v Avidemux za format izberite video – “MPEG4 AVC (x264)", zvok - "AAC (FAAC)", izhodna oblika - "MP4 mukser".
Četrtič, pomembno je pravilno poimenovati izrezane videoposnetke. Ime datoteke mora biti sestavljeno iz številke diapozitiva in številke fragmenta. Fragmenti so oštevilčeni s sodimi številkami, začenši z 2. Tako je treba za obravnavani okvir poimenovati videoposnetek s prekinitvijo 002-2.mp4
Ko so videoposnetki pripravljeni, jih morate prenesti v imenik z fragmenti. nastavitve avidemux razlikujejo od nastavitev ffmpeg privzeto s skrivnostnimi parametri tbr, tbn, tbc. Ne vplivajo na predvajanje, vendar ne omogočajo lepljenja videoposnetkov. Torej prekodirajmo:
for f in ???-?.mp4;
do
ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done
Snemanje ohranjevalnikov zaslona
Tudi tukaj je vse preprosto: posnamete v ozadju neke pametne sheme, videoposnetke postavite v katalog rec, od tam pa ga prenesite v imenik z fragmenti. Pravila poimenovanja so enaka kot za prekinitvene narekovaje, ukaz za ponovno kodiranje je naslednji:
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
Če nameravate video začeti s svojim govorom, poimenujte ta fragment 000-1.mp4
Izdelava okvirjev iz statičnih slik
Čas je za urejanje videoposnetkov iz statičnih slik in zvoka. To se naredi z naslednjim skriptom:
#!/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
Upoštevajte, da trajanje zvočne datoteke najprej določi pripomoček soxi, nato pa se zmontira videoposnetek zahtevane dolžine. Vsa priporočila, ki sem jih našel, so preprostejša: namesto zastavice -t ${trajanje} uporablja se zastava - najkrajša. Pravzaprav ffmpeg določa dolžino mp3 zelo približno, med montažo pa se lahko dolžina zvočnega zapisa močno razlikuje (za eno ali dve sekundi) od dolžine video zapisa. To ni pomembno, če je celoten video sestavljen iz enega samega okvirja, a ko lepite tak video s prekinitvami na meji, se pojavijo izjemno neprijetni učinki zatikanja.
Drug način za določitev trajanja datoteke mp3 je uporaba mp3info. Tudi ona dela napake in včasih ffmpeg daje več kot mp3info, včasih je obratno, včasih oba lažeta – nisem opazil nobenega vzorca. In tukaj soxi deluje pravilno.
Če želite namestiti ta uporaben pripomoček, naredite to:
sudo apt-get install sox libsox-fmt-mp3
Izdelava prehodov med diapozitivi
Prehod je kratek video, v katerem se en diapozitiv spremeni v drugega. Za izdelavo takšnih videoposnetkov vzamemo diapozitive v parih in jih uporabimo ImageMagick spremeniti eno v drugo:
#!/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}
Iz nekega razloga sem želel, da je diapozitiv posut s pikami, nato pa bi bil naslednji diapozitiv sestavljen iz pik, in za to sem napisal skript z imenom fade.pl Ob ImageMagick, bo pravi uporabnik Linuxa ustvaril kakšen poseben učinek, če pa je komu všeč moja ideja z razpršitvijo, je tukaj 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);
}
Montiramo končni video
Zdaj imamo vse fragmente. Pojdite v katalog posnetki in sestavite končni film z dvema ukazoma:
ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4
Prijetno gledanje vašim hvaležnim učencem!
Vir: www.habr.com