Karantæne er en vidunderlig tid til at lære noget. Men som du forstår, skal nogen undervise for at nogen kan lære noget. Hvis du har en præsentation, som du vil give til et publikum på millioner og vinde verdensomspændende berømmelse, så er denne artikel noget for dig. Her finder du trin-for-trin instruktioner til, hvordan du laver en video fra din præsentation.
Vi afviser vejen til at optage "lydkommentarer" i PowerPoint og eksportere præsentationen til video som triviel og ikke give en tiendedel af de nødvendige muligheder for en virkelig cool video.
Lad os først beslutte, hvilke rammer vi har brug for:
- Selve dias med voiceover
- glideskift
- Citater fra populære film
- Flere rammer med underviserens ansigt og hans yndlingskat (valgfrit)
Oprettelse af en mappestruktur
.
├── clipart
├── clips
├── rec
├── slide
└── sound
Formålet med mapperne i rækkefølgen af liste: film, hvorfra vi vil trække citater (clipart), fragmenter af vores fremtidige video (klip), videoer fra kameraet (rec), dias i form af billeder (slide), lyd (lyd).
Lav en præsentation i billeder
For en rigtig rødøjet Linux-bruger giver det ingen problemer at lave en præsentation i form af billeder. Lad mig lige minde dig om, at et dokument i pdf-format kan parses til billeder ved hjælp af kommandoen
pdftocairo -png -r 128 ../lecture.pdf
Hvis der ikke er en sådan kommando, skal du installere pakken selv Poppler-utils (vejledning til Ubuntu; hvis du har Arch, så ved du udmærket, hvad du skal gøre uden mig).
Her og videre mener jeg, at videoen er udarbejdet i HD Ready-format, altså 1280x720. En præsentation med en vandret størrelse på 10 tommer giver præcis denne størrelse, når den er aflæsset (se -r 128-indstillingen).
Forberedelse af teksten
Hvis du vil lave rigtig godt materiale, skal din tale skrives først. Jeg tænkte også, at jeg kunne tale teksten uden forberedelse, især da jeg har god erfaring med at holde foredrag. Men det er én ting at optræde live, og en anden ting er at optage en video. Vær ikke doven - den tid, du bruger på at skrive, vil betale sig mange gange.
Her er mit optagelsesformat. Nummeret i titlen er lig med diasnummeret, afbrydelserne er fremhævet med rødt. Enhver editor er velegnet til forberedelse, men det er bedre at tage en fuldgyldig tekstbehandler - f.eks. OnlyOffice.
Stemme over diasene
Hvad kan jeg sige - tænd mikrofonen og skriv :)
Erfaringen viser, at optagekvaliteten selv fra den billigste eksterne mikrofon er usammenlignelig bedre end fra den indbyggede mikrofon på en bærbar computer. Hvis du vil have kvalitetsudstyr, anbefaler jeg det
Til optagelse brugte jeg audio-optager – en meget enkel applikation til lydoptagelse. Du kan for eksempel tage det her:
sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder
Det vigtigste ved dette trin er at navngive filerne korrekt. Navnet skal bestå af diasnummer og fragmentnummer. Fragmenter er nummereret med ulige tal - 1, 3, 5 osv. Så for diaset, hvis tekst er vist på billedet, oprettes to filer: 002-1.mp3 и 002-3.mp3.
Hvis du har optaget alle videoerne på én gang i et stille rum, behøver du ikke gøre mere med dem. Hvis du har optaget i flere trin, er det bedre at udligne lydstyrken:
mp3gain -r *.mp3
Hjælpeprogrammer mp3gain Af en eller anden grund er det ikke i standarddepoterne, men du kan få det her:
sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain
Efter alt dette skal du optage en anden fil med tavshed. Det er nødvendigt at tilføje et lydspor til lydløse videoer: hvis en video har et lydspor, og den anden ikke har, så er det svært at lime disse videoer sammen. Stilhed kan optages fra en mikrofon, men det er bedre at oprette en fil i editoren Audacity. Fillængden skal være mindst et sekund (mere er muligt), og den skal navngives stilhed.mp3
Forberedelse af afbrydelsesvideoer
Her er alt kun begrænset af din fantasi. Du kan bruge en editor til at redigere videoer Avidemux. Engang var det i standarddepoterne, men så blev det af en eller anden grund skåret ud. Dette vil ikke stoppe os:
sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5
Der er mange instruktioner til at arbejde med denne editor på internettet, og i princippet er alt der er intuitivt. Det er vigtigt at opfylde flere betingelser.
For det første skal videoopløsningen matche målvideoopløsningen. For at gøre dette skal du bruge to filtre i "outputvideoen": swsResize for at ændre opløsningen og "tilføje felter" for at omdanne en sovjetisk film i "smalt format" til et bredt format. Alle andre filtre er valgfrie. For eksempel, hvis nogen ikke forstår, hvorfor hr. Sharikovs udtalelse er i det fragment, der diskuteres, ved at bruge "tilføj logo"-filteret, kan du overlejre PostgreSQL-logoet oven på "Hundehjertet".
For det andet skal alle fragmenter bruge den samme billedhastighed. Jeg bruger 25 billeder i sekundet, fordi mit kamera og gamle sovjetiske film giver mig så meget. Hvis filmen, du klipper fra, er optaget med en anden hastighed, skal du bruge Resample Video-filteret.
For det tredje skal alle fragmenter komprimeres med det samme codec og pakkes i de samme beholdere. Derfor i Avidemux for formatet, vælg video – “MPEG4 AVC (x264)", lyd -"AAC (FAAC)", outputformat - "MP4 Muxer'.
For det fjerde er det vigtigt at navngive de klippede videoer korrekt. Filnavnet skal bestå af diasnummeret og fragmentnummeret. Fragmenter er nummereret med lige tal, startende fra 2. For det billede, der diskuteres, skal videoen med afbrydelsen derfor kaldes 002-2.mp4
Når videoerne er klar, skal du overføre dem til mappen med fragmenter. Indstillinger Avidemux afvige fra indstillingerne ffmpeg som standard med mystiske parametre tbr, tbn, tbc. De påvirker ikke afspilningen, men de tillader ikke, at videoerne limes sammen. Så lad os omkode:
for f in ???-?.mp4;
do
ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done
Optagelse af pauseskærme
Også her er alt enkelt: du skyder på baggrund af et smart skema, sætter de resulterende videoer i et katalog rec, og derfra overføre det til mappen med fragmenter. Navngivningsreglerne er de samme som for interrupt-citater, omkodningskommandoen er som følger:
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
Hvis du planlægger at starte videoen med din tale, skal du navngive dette fragment 000-1.mp4
Fremstilling af rammer ud fra statiske billeder
Det er tid til at redigere videoer fra statiske billeder og lyd. Dette gøres med følgende 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
Bemærk venligst, at varigheden af lydfilen først bestemmes af værktøjet soxi, og derefter redigeres videoen i den ønskede længde. Alle de anbefalinger, jeg fandt, er enklere: i stedet for et flag -t ${duration} flag bruges - korteste. Faktisk ffmpeg bestemmer længden af mp3 meget cirka, og under redigering kan længden af lydsporet afvige meget (med et eller to sekunder) fra længden af videosporet. Det er lige meget, om hele videoen består af et enkelt billede, men når du limer sådan en video med afbrydelser ved grænsen, opstår der ekstremt ubehagelige stammeeffekter.
En anden måde at bestemme varigheden af en mp3-fil er at bruge mp3 info. Hun laver også fejl, og nogle gange ffmpeg giver mere end mp3 info, nogle gange er det omvendt, nogle gange lyver de begge - jeg bemærkede ikke noget mønster. Og her soxi fungerer korrekt.
Gør dette for at installere dette nyttige værktøj:
sudo apt-get install sox libsox-fmt-mp3
Lav overgange mellem dias
En overgang er en kort video, hvor et dias bliver til et andet. For at lave sådanne videoer tager vi slides i par og vha ImageMagick forvandle det ene til det andet:
#!/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}
Af en eller anden grund ønskede jeg, at dias skulle være spredt med prikker, og så ville det næste dias blive samlet af prikkerne, og til dette skrev jeg et script kaldet fade.pl At have ImageMagick, vil en rigtig Linux-bruger skabe enhver speciel effekt, men hvis nogen kan lide min idé med spredning, er her scriptet:
#!/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);
}
Vi monterer den færdige video
Nu har vi alle fragmenterne. Gå til kataloget clips og saml den færdige film ved hjælp af to kommandoer:
ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4
Nyd at se til dine taknemmelige elever!
Kilde: www.habr.com