Videoprelegoj: Uniksomaniero

Videoprelegoj: Uniksomaniero
Kvaranteno estas mirinda tempo por lerni ion. Tamen, kiel vi komprenas, por ke iu lernu ion, iu devas instrui. Se vi havas prezenton, kiun vi volas doni al milionoj da publiko kaj akiri tutmondan famon, tiam ĉi tiu artikolo estas por vi. Ĉi tie vi trovos paŝon post paŝo instrukciojn pri kiel fari videon el via prezento.

Ni forĵetas la vojon registri "sonkomentojn" en PowerPoint kaj eksporti la prezenton al video kiel bagatela kaj ne provizi dekonon de la kapabloj necesaj por vere bonega video.

Unue, ni decidu kiajn kadrojn ni bezonas:

  1. La realaj diapozitivoj kun voĉtranspafo
  2. Ŝanĝante diapozitivojn
  3. Citaĵoj el popularaj filmoj
  4. Pluraj kadroj kun la vizaĝo de la preleganto kaj lia plej ŝatata kato (laŭvola)

Kreante dosierujan strukturon

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

La celo de la dosierujoj en la ordo de listigo: filmoj, el kiuj ni eltiros citaĵojn (kliparo), fragmentoj de nia estonta video (klipoj), filmetoj de la fotilo (rec), diapozitivoj en formo de bildoj (diagramo), sono. (sono).

Farante prezenton en bildoj

Por vera ruĝ-okula Linukso-uzanto, fari prezenton en formo de bildoj ne prezentas problemojn. Mi nur memorigu al vi, ke dokumento en pdf-formato povas esti analizita en bildojn per la komando

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

Se ne ekzistas tia komando, instalu la pakaĵon mem poppler-utils (instrukcioj por Ubuntu; se vi havas Arch, tiam vi bone scias, kion fari sen mi).

Ĉi tie kaj plu, mi kredas, ke la video estas preparita en HD Ready-formato, t.e. 1280x720. Prezento kun horizontala grandeco de 10 coloj donas ĝuste ĉi tiun grandecon kiam malŝarĝite (vidu la opcion -r 128).

Preparante la tekston

Se vi volas fari vere bonegan materialon, via parolado devas esti skribita unue. Mi ankaŭ pensis, ke mi povus paroli la tekston sen preparo, precipe ĉar mi havas bonan sperton en prelegado. Sed unu afero estas koncerti vive, kaj alia afero registri videon. Ne maldiligentu - la tempo pasigita por tajpado multfoje multe pagos.

Videoprelegoj: Uniksomaniero

Jen mia registra formato. La nombro en la titolo estas egala al la glita numero, la interrompoj estas reliefigitaj ruĝe. Ajna redaktilo taŭgas por preparo, sed estas pli bone preni plenrajtan tekstprilaborilon - ekzemple, Nur funkcio.

Voĉo super la diapozitivoj

Kion mi povas diri - ŝaltu la mikrofonon kaj skribu :)

Sperto montras, ke la registra kvalito eĉ de la plej malmultekosta ekstera mikrofono estas nekompareble pli bona ol de la enkonstruita mikrofono de tekkomputilo. Se vi volas kvalitan ekipaĵon, mi rekomendas ĝin ĉi tiu artikolo.

Por registrado mi uzis sonregistrilo - tre simpla aplikaĵo por sonregistrado. Vi povas preni ĝin, ekzemple, ĉi tie:

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

La ĉefa afero ĉe ĉi tiu paŝo estas nomi la dosierojn ĝuste. La nomo devas konsisti el la glitnumero kaj fragmenta numero. Fragmentoj estas numeritaj per neparaj nombroj - 1, 3, 5, ktp. Do, por la diapozitivo, kies teksto estas montrita en la bildo, du dosieroj estos kreitaj: 002-1.mp3 и 002-3.mp3.

Se vi registris ĉiujn filmetojn samtempe en trankvila ĉambro, vi ne devas fari ion plu kun ili. Se vi registris en pluraj paŝoj, estas pli bone egaligi la volumenan nivelon:

mp3gain -r *.mp3

Servaĵoj mp3gain Ial ĝi ne estas en la normaj deponejoj, sed vi povas akiri ĝin ĉi tie:

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

Post ĉio ĉi, vi devas registri alian dosieron kun silento. Necesas aldoni voĉan bandon al silentaj filmetoj: se unu video havas voĉan bandon kaj la alia ne, tiam estas malfacile kunglui ĉi tiujn videojn. Silento povas esti registrita de mikrofono, sed estas pli bone krei dosieron en la redaktilo Aŭdaco. La dosierlongo estu almenaŭ sekundo (pli eblas), kaj ĝi estu nomita silento.mp3

Preparante interrompajn filmetojn

Ĉi tie ĉio estas limigita nur de via imago. Vi povas uzi redaktilon por redakti filmetojn Avidemux. Iam ĝi estis en la normaj deponejoj, sed tiam ial ĝi estis eltranĉita. Ĉi tio ne malhelpos nin:

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

Estas multaj instrukcioj por labori kun ĉi tiu redaktilo en la Interreto, kaj principe, ĉio tie estas intuicia. Gravas plenumi plurajn kondiĉojn.

Unue, la video-rezolucio devas kongrui kun la cela video-rezolucio. Por fari tion, vi devas uzi du filtrilojn en la "eligvideo": swsResize por ŝanĝi la rezolucion kaj "aldoni kampojn" por turni sovetian "mallarĝan formaton" filmon en larĝan formaton. Ĉiuj aliaj filtriloj estas laŭvolaj. Ekzemple, se iu ne komprenas kial la deklaro de s-ro Sharikov estas en la fragmento pridiskutata, uzante la filtrilon "aldonu logoon", vi povas supermeti la logoon de PostgreSQL sur la "Hundo-Koro".

Due, ĉiuj fragmentoj devas uzi la saman framfrekvencon. Mi uzas 25 kadrojn sekundo ĉar mia fotilo kaj malnovaj sovetiaj filmoj donas al mi tiom multe. Se la filmo, el kiu vi tranĉas, estis filmita al malsama rapido, uzu la Resample Video-filtrilon.

Trie, ĉiuj fragmentoj devas esti kunpremitaj per la sama kodeko kaj pakitaj en la samaj ujoj. Tial en Avidemux por la formato, elektu video - "MPEG4 AVC (x264)", audio - "AAC (FAAC)", eligformato - "MP4 Muxer".

Kvare, estas grave nomi la tranĉitajn filmetojn ĝuste. La dosiernomo devas konsisti el la glitnumero kaj fragmenta numero. Fragmentoj estas numeritaj per paraj nombroj, komencante de 2. Tiel, por la diskutata kadro, la video kun la interrompo devus esti nomita. 002-2.mp4

Post kiam la videoj estas pretaj, vi devas transdoni ilin al la dosierujo kun fragmentoj. Agordoj Avidemux malsamas de agordoj ffmpeg defaŭlte kun misteraj parametroj tbr, tbn, tbc. Ili ne influas la reproduktadon, sed ili ne permesas alglui la videojn. Do ni rekodu:

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

Pafado de ekranŝpariloj

Ankaŭ ĉi tie ĉio estas simpla: vi pafas sur la fono de iu saĝa skemo, metu la rezultajn filmetojn en katalogon. rec, kaj de tie transdoni ĝin al la dosierujo kun fragmentoj. La nomreguloj estas la samaj kiel por interrompaj citaĵoj, la rekodiga komando estas jena:

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

Se vi planas komenci la videon per via parolado, nomu ĉi tiun fragmenton 000-1.mp4

Farante kadrojn el senmovaj bildoj

Estas tempo redakti filmetojn el senmovaj bildoj kaj sono. Ĉi tio estas farita per la sekva skripto:

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

Bonvolu noti, ke la daŭro de la sondosiero unue estas determinita de la ilo soxi, kaj tiam la video de la bezonata longeco estas redaktita. Ĉiuj rekomendoj, kiujn mi trovis, estas pli simplaj: anstataŭ flago -t ${daŭro} flago estas uzata -plej mallonga... Fakte ffmpeg determinas la longecon de mp3 tre proksimume, kaj dum redaktado, la longeco de la sontrako povas multe diferenci (je unu aŭ du sekundoj) de la longeco de la videotrako. Ĉi tio ne gravas, ĉu la tuta video konsistas el ununura kadro, sed kiam vi gluas tian videon kun interrompoj ĉe la limo, ege malagrablaj balbutaj efikoj okazas.

Alia maniero determini la daŭron de mp3-dosiero estas uzi mp3info. Ŝi ankaŭ faras erarojn, kaj foje ffmpeg donas pli ol mp3info, foje estas inverse, foje ili ambaŭ mensogas - mi rimarkis neniun ŝablonon. Kaj ĉi tie soxi funkcias ĝuste.

Por instali ĉi tiun utilan ilon, faru ĉi tion:

sudo apt-get install sox libsox-fmt-mp3

Farante transirojn inter diapozitivoj

Transiro estas mallonga video, en kiu unu diapozitivo iĝas alia. Por fari tiajn filmetojn, ni prenas diapozitivojn duope kaj uzante ImageMagick transformi unu en la alian:

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

Ial mi volis, ke la diapozitivo estu disĵetita per punktoj, kaj tiam la sekva diapozitivo estus kunvenita el la punktoj, kaj por tio mi skribis skripton nomitan fade.pl Havante ImageMagick, vera Linukso-uzanto kreos ajnan specialan efikon, sed se iu ŝatas mian ideon kun disĵeto, jen la skripto:

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

Ni muntas la finitan videon

Nun ni havas ĉiujn fragmentojn. Iru al la katalogo klipoj kaj kunigu la finitan filmon uzante du komandojn:

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

Ĝuu spektadon al viaj dankemaj studentoj!

fonto: www.habr.com

Aldoni komenton