Videoluennot: unix tapa

Videoluennot: unix tapa
Karanteeni on ihanaa aikaa oppia jotain. Kuitenkin, kuten ymmärrät, jotta joku voisi oppia jotain, jonkun on opetettava. Jos sinulla on esitys, jonka haluat pitää miljoonille yleisöille ja saada maailmanlaajuista mainetta, tämä artikkeli on sinua varten. Täältä löydät vaiheittaiset ohjeet videon tekemiseen esityksestäsi.

Pidämme "äänikommenttien" tallentamista PowerPointissa ja esityksen viemistä videoon vähäpätöisenä, emmekä tarjoa kymmenesosaa todella siistin videon tarvittavista ominaisuuksista.

Ensin päätetään, mitä kehyksiä tarvitsemme:

  1. Varsinaiset diat selostuksen kanssa
  2. dian vaihto
  3. Lainauksia suosituista elokuvista
  4. Useita kehyksiä, joissa luennoitsijan kasvot ja hänen suosikkikissansa (valinnainen)

Hakemistorakenteen luominen

.
├── clipart
├── clips
├── rec
├── slide
└── sound

Hakemistojen tarkoitus listausjärjestyksessä: elokuvat, joista vedämme lainauksia (clipart), katkelmia tulevasta videostamme (leikkeet), videot kamerasta (tallennus), diat kuvien muodossa (dia), ääni (ääni).

Esityksen tekeminen kuvissa

Oikealle punasilmäiselle Linux-käyttäjälle kuvien muodossa esityksen tekeminen ei tuota ongelmia. Haluan vain muistuttaa, että pdf-muodossa oleva dokumentti voidaan jäsentää kuviksi komennolla

pdftocairo -png -r 128 ../lecture.pdf

Jos tällaista komentoa ei ole, asenna paketti itse Poppler-utils (ohjeet Ubuntulle; jos sinulla on Arch, tiedät erittäin hyvin mitä tehdä ilman minua).

Täällä ja edelleen uskon, että video on valmistettu HD Ready -muodossa, eli 1280x720. Esitys, jonka vaakakoko on 10 tuumaa, antaa täsmälleen tämän koon purettuna (katso vaihtoehto -r 128).

Tekstin valmistelu

Jos haluat tehdä todella hienoa materiaalia, puheesi on ensin kirjoitettava. Ajattelin myös, että voisin puhua tekstin ilman valmistautumista, varsinkin kun minulla on hyvä kokemus luennoinnista. Mutta yksi asia on esiintyä livenä ja toinen asia nauhoittaa video. Älä ole laiska – kirjoittamiseen käytetty aika maksaa itsensä takaisin monta kertaa.

Videoluennot: unix tapa

Tässä on tallennusmuotoni. Otsikon numero on yhtä suuri kuin dian numero, keskeytykset on korostettu punaisella. Kaikki editorit sopivat valmisteluun, mutta on parempi ottaa täysi tekstinkäsittelyohjelma - esimerkiksi OnlyOffice.

Ääni diojen yli

Mitä voin sanoa - laita mikrofoni päälle ja kirjoita :)

Kokemus on osoittanut, että tallennuksen laatu jopa halvimmalla ulkoisella mikrofonilla on vertaansa vailla parempi kuin kannettavan tietokoneen sisäänrakennetulla mikrofonilla. Jos haluat laadukkaita laitteita, suosittelen sitä tässä on tämä artikkeli.

Käytin tallentamiseen äänen tallennin - erittäin yksinkertainen sovellus äänen tallentamiseen. Voit ottaa sen esimerkiksi täältä:

sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder

Tärkeintä tässä vaiheessa on nimetä tiedostot oikein. Nimen tulee koostua dian numerosta ja fragmentin numerosta. Fragmentit on numeroitu parittomilla numeroilla - 1, 3, 5 jne. Joten dialle, jonka teksti näkyy kuvassa, luodaan kaksi tiedostoa: 002-1.mp3 и 002-3.mp3.

Jos kuvasit kaikki videot kerralla hiljaisessa huoneessa, sinun ei tarvitse tehdä niille mitään. Jos äänitit useassa vaiheessa, on parempi tasoittaa äänenvoimakkuus:

mp3gain -r *.mp3

apuohjelmia mp3gain Jostain syystä se ei ole vakiovarastoissa, mutta voit saada sen täältä:

sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain

Kaiken tämän jälkeen sinun on tallennettava toinen tiedosto hiljaisuudessa. Äänettömille videoille on lisättävä ääniraita: jos toisessa videossa on ääniraita ja toisessa ei, niin näitä videoita on vaikea liimata yhteen. Hiljaisuus voidaan tallentaa mikrofonista, mutta on parempi luoda tiedosto editorissa Rohkeus. Tiedoston pituuden tulee olla vähintään sekunti (enemmänkin on mahdollista), ja se tulee nimetä hiljaisuus.mp3

Valmistellaan keskeytysvideoita

Täällä kaikkea rajoittaa vain mielikuvituksesi. Voit käyttää editoria videoiden muokkaamiseen Avidemux. Kerran se oli vakiovarastoissa, mutta sitten jostain syystä se leikattiin pois. Tämä ei estä meitä:

sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5

Internetissä on paljon ohjeita työskennellä tämän editorin kanssa, ja periaatteessa kaikki siellä on intuitiivista. On tärkeää täyttää useita ehtoja.

Ensinnäkin videon resoluution on vastattava tavoitevideon resoluutiota. Tätä varten sinun on käytettävä kahta suodatinta "lähtövideossa": swsResize muuttaa resoluutiota ja "kenttien lisääminen" muuttaaksesi Neuvostoliiton "kapeamuotoisen" elokuvan laajaan muotoon. Kaikki muut suodattimet ovat valinnaisia. Jos joku ei esimerkiksi ymmärrä, miksi Mr. Sharikovin lausunto on keskustelun kohteena olevassa fragmentissa, käyttämällä "add logo" -suodatinta, voit lisätä PostgreSQL-logon "Koiran sydämen" päälle.

Toiseksi kaikkien fragmenttien on käytettävä samaa kuvanopeutta. Käytän 25 kuvaa sekunnissa, koska kamerani ja vanhat neuvostofilmit antavat minulle niin paljon. Jos elokuva, josta leikkaat, kuvattiin eri nopeudella, käytä Resample Video -suodatinta.

Kolmanneksi kaikki fragmentit on pakattava samalla koodekilla ja pakattava samoihin säiliöihin. Siksi sisään Avidemux valitse muotoa varten video – "MPEG4 AVC (x264)", ääni - "AAC (FAAC)", tulostusmuoto - "MP4 Mukseri'.

Neljänneksi on tärkeää nimetä leikatut videot oikein. Tiedoston nimen tulee koostua dian numerosta ja fragmentin numerosta. Fragmentit numeroidaan parillisilla numeroilla alkaen 2:sta. Näin ollen käsiteltävän kehyksen kohdalla keskeytyksen sisältävä video tulee kutsua 002-2.mp4

Kun videot ovat valmiita, sinun on siirrettävä ne hakemistoon fragmenttien kanssa. asetukset Avidemux eroavat asetuksista ffmpeg oletuksena salaperäisillä parametreilla tbr, tbn, tbc. Ne eivät vaikuta toistoon, mutta ne eivät salli videoiden liimaamista yhteen. Koodataanpa siis uudelleen:

for f in ???-?.mp4;
do
  ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done

Kuvaa näytönsäästäjiä

Täälläkin kaikki on yksinkertaista: ammut jotain fiksun suunnitelman taustaa vasten, laitat tuloksena olevat videot luetteloon rec, ja siirrä se sieltä hakemistoon fragmenttien kanssa. Nimeämissäännöt ovat samat kuin keskeytyslainausmerkeillä, uudelleenkoodauskomento on seuraava:

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

Jos aiot aloittaa videon puheellasi, nimeä tämä fragmentti 000-1.mp4

Kehysten teko staattisista kuvista

On aika muokata videoita staattisista kuvista ja äänestä. Tämä tehdään seuraavalla skriptillä:

#!/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

Huomaa, että apuohjelma määrittää ensin äänitiedoston keston soxi, ja sitten halutun pituinen video editoidaan. Kaikki löytämäni suositukset ovat yksinkertaisempia: lipun sijaan -t ${duration} lippua käytetään -lyhyin... Itse asiassa ffmpeg määrittää mp3:n pituuden hyvin suunnilleen, ja editoinnin aikana ääniraidan pituus voi poiketa suuresti (yksi tai kaksi sekuntia) videoraidan pituudesta. Sillä ei ole väliä, jos koko video koostuu yhdestä ruudusta, mutta kun liimaa tällainen video katkoksia rajalle, syntyy erittäin epämiellyttäviä pätkiviä efektejä.

Toinen tapa määrittää mp3-tiedoston kesto on käyttää mp3 info. Hän tekee myös virheitä, ja joskus ffmpeg antaa enemmän kuin mp3 info, joskus se on päinvastoin, joskus molemmat valehtelevat – en huomannut mitään kaavaa. Ja täällä soxi toimii oikein.

Asenna tämä hyödyllinen apuohjelma seuraavasti:

sudo apt-get install sox libsox-fmt-mp3

Siirtymien tekeminen diojen välillä

Siirtymä on lyhyt video, jossa yksi dia muuttuu toiseksi. Tällaisten videoiden tekemiseksi otamme dioja pareittain ja käyttämällä ImageMagick muuttaa toinen toiseksi:

#!/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}

Jostain syystä halusin, että dia on hajallaan pisteillä ja sitten koottaisiin seuraava dia pisteistä, ja tätä varten kirjoitin käsikirjoituksen ns. fade.pl Ottaa ImageMagick, todellinen Linux-käyttäjä luo minkä tahansa erikoistehosteen, mutta jos joku pitää ideastani sirontalla, tässä on käsikirjoitus:

#!/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);
}

Asennamme valmiin videon

Nyt meillä on kaikki palaset. Siirry luetteloon leikkeet ja kokoa valmis elokuva kahdella komennolla:

ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4

Nauti katselusta kiitollisille opiskelijoillesi!

Lähde: will.com

Lisää kommentti