Videolesings: unix manier

Videolesings: unix manier
Kwarantyn is 'n wonderlike tyd om iets te leer. Soos jy egter verstaan, moet iemand onderrig gee om iets te leer. As jy 'n aanbieding het wat jy aan 'n gehoor van miljoene wil gee en wêreldwye bekendheid wil verwerf, dan is hierdie artikel vir jou. Hier sal jy stap-vir-stap instruksies vind oor hoe om 'n video van jou aanbieding te maak.

Ons maak die pad van die opneem van "klankopmerkings" in PowerPoint en die uitvoer van die aanbieding na video af as onbenullig en bied nie 'n tiende van die vermoëns wat nodig is vir 'n werklik cool video nie.

Kom ons besluit eers watter rame ons benodig:

  1. Die werklike skyfies met voiceover
  2. Verander skyfies
  3. Aanhalings uit gewilde films
  4. Verskeie rame met die dosent se gesig en sy gunsteling kat (opsioneel)

Die skep van 'n gidsstruktuur

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

Die doel van die dopgehou in die volgorde van lys: films waaruit ons aanhalings sal haal (clipart), fragmente van ons toekomstige video (knipsels), video's van die kamera (rec), skyfies in die vorm van prente (skyfie), klank (klank).

Maak 'n aanbieding in prente

Vir 'n regte rooi-oog Linux-gebruiker bied dit geen probleme om 'n aanbieding in die vorm van prente te maak nie. Laat ek jou net herinner dat 'n dokument in pdf-formaat in beelde ontleed kan word deur die opdrag te gebruik

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

As daar nie so 'n opdrag is nie, installeer die pakket self poppler-utils (instruksies vir Ubuntu; as jy Arch het, dan weet jy baie goed wat om sonder my te doen).

Hier en verder glo ek dat die video in HD Ready-formaat voorberei is, dit wil sê 1280x720. 'n Voorstelling met 'n horisontale grootte van 10 duim gee presies hierdie grootte wanneer dit afgelaai is (sien die -r 128 opsie).

Voorbereiding van die teks

As jy werklik wonderlike materiaal wil maak, moet jou toespraak eers geskryf word. Ek het ook gedink dat ek die teks sonder voorbereiding kan praat, veral omdat ek goeie ervaring het met lesings. Maar dit is een ding om regstreeks op te tree, en 'n ander ding om 'n video op te neem. Moenie lui wees nie - die tyd wat spandeer word om te tik, sal baie keer meer betaal.

Videolesings: unix manier

Hier is my opname-formaat. Die nommer in die titel is gelyk aan die skyfienommer, die onderbrekings word in rooi uitgelig. Enige redigeerder is geskik vir voorbereiding, maar dit is beter om 'n volwaardige woordverwerker te neem - byvoorbeeld, OnlyOffice.

Stem oor die skyfies

Wat kan ek sê - skakel die mikrofoon aan en skryf :)

Ervaring toon dat die opnamegehalte selfs vanaf die goedkoopste eksterne mikrofoon onvergelykbaar beter is as van die ingeboude mikrofoon van 'n skootrekenaar. As jy kwaliteit toerusting wil hê, beveel ek dit aan Hierdie artikel.

Vir opname het ek gebruik klankopnemer - 'n baie eenvoudige toepassing vir klankopname. Jy kan dit byvoorbeeld hier neem:

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

Die belangrikste ding by hierdie stap is om die lêers korrek te benoem. Die naam moet bestaan ​​uit die skyfienommer en fragmentnommer. Fragmente word genommer met onewe nommers - 1, 3, 5, ens. Dus, vir die skyfie, waarvan die teks in die prentjie gewys word, sal twee lêers geskep word: 002-1.mp3 и 002-3.mp3.

As jy al die video's gelyktydig in 'n stil kamer opgeneem het, hoef jy niks verder daarmee te doen nie. As jy in verskeie stappe opgeneem het, is dit beter om die volumevlak gelyk te maak:

mp3gain -r *.mp3

Hulpprogramme mp3wins Om een ​​of ander rede is dit nie in die standaardbewaarplekke nie, maar jy kan dit hier kry:

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

Na dit alles moet jy nog 'n lêer met stilte opneem. Dit is nodig om 'n klankbaan by stil video's te voeg: as een video 'n klankbaan het en die ander nie, dan is dit moeilik om hierdie video's aanmekaar te plak. Stilte kan vanaf 'n mikrofoon opgeneem word, maar dit is beter om 'n lêer in die redigeerder te skep Audacity. Die lêerlengte moet ten minste 'n sekonde wees (meer is moontlik), en dit moet 'n naam kry stilte.mp3

Berei tans onderbrekingsvideo's voor

Hier word alles net deur jou verbeelding beperk. Jy kan 'n redigeerder gebruik om video's te redigeer Avidemux. Eens op 'n tyd was dit in die standaard repositories, maar toe om een ​​of ander rede is dit uitgesny. Dit sal ons nie keer nie:

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

Daar is baie instruksies om met hierdie redakteur op die internet te werk, en in beginsel is alles intuïtief. Dit is belangrik om aan verskeie voorwaardes te voldoen.

Eerstens moet die video-resolusie ooreenstem met die teikenvideo-resolusie. Om dit te doen, moet jy twee filters in die "uitsetvideo" gebruik: swsResize om die resolusie te verander en "byvoeging van velde" om 'n Sowjet "smal formaat" film in 'n wye formaat te verander. Alle ander filters is opsioneel. Byvoorbeeld, as iemand nie verstaan ​​hoekom mnr. Sharikov se stelling in die fragment onder bespreking is nie, deur die "voeg logo by"-filter te gebruik, kan jy die PostgreSQL-logo bo-op die "Hondhart" oortrek.

Tweedens moet alle fragmente dieselfde raamtempo gebruik. Ek gebruik 25 rame per sekonde, want my kamera en ou Sowjet-films gee my soveel. As die fliek waaruit jy knip teen 'n ander spoed geskiet is, gebruik die Resample Video-filter.

Derdens moet alle fragmente saamgepers word met dieselfde kodek en in dieselfde houers verpak word. Daarom in Avidemux vir die formaat, kies video - "MPEG4 AVC (x264)", oudio -"AAC (FAAC)", uitvoerformaat - "MP4 Muxer".

Vierdens is dit belangrik om die gesnyde video's korrek te benoem. Die lêernaam moet bestaan ​​uit die skyfienommer en fragmentnommer. Fragmente word genommer met ewe getalle, vanaf 2. Dus, vir die raam onder bespreking, moet die video met die onderbreking genoem word 002-2.mp4

Nadat die video's gereed is, moet u dit met fragmente na die gids oordra. Instellings avidemux verskil van instellings FFmpeg by verstek met geheimsinnige parameters tbr, tbn, tbc. Hulle beïnvloed nie die afspeel nie, maar hulle laat nie toe dat die video's aanmekaar geplak word nie. So kom ons herkodeer:

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

Skiet skermbewaarders

Ook hier is alles eenvoudig: jy skiet teen die agtergrond van een of ander slim skema, plaas die gevolglike video's in 'n katalogus rec, en van daar af na die gids met fragmente oor te dra. Die naamreëls is dieselfde as vir onderbrekingsaanhalings, die herkoderingsopdrag is soos volg:

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

As jy van plan is om die video met jou toespraak te begin, noem hierdie fragment 000-1.mp4

Maak rame van statiese prente

Dit is tyd om video's van statiese beelde en klank te redigeer. Dit word gedoen met die volgende skrif:

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

Neem asseblief kennis dat die duur van die oudiolêer eers deur die hulpprogram bepaal word soxi, en dan word die video van die verlangde lengte geredigeer. Al die aanbevelings wat ek gevind het, is eenvoudiger: in plaas van 'n vlag -t ${duration} vlag gebruik word -kortste... Eintlik FFmpeg bepaal die lengte van mp3 baie ongeveer, en tydens redigering kan die lengte van die oudiosnit baie verskil (met een of twee sekondes) van die lengte van die videosnit. Dit maak nie saak of die hele video uit 'n enkele raam bestaan ​​nie, maar wanneer jy so 'n video met onderbrekings by die grens vasplak, vind uiters onaangename hakkel-effekte plaas.

Nog 'n manier om die duur van 'n mp3-lêer te bepaal, is om te gebruik mp3 inligting. Sy maak ook foute, en soms FFmpeg gee meer as mp3 inligting, soms is dit andersom, soms lieg hulle albei - ek het geen patroon opgemerk nie. En hier soxi werk reg.

Om hierdie nuttige program te installeer, doen dit:

sudo apt-get install sox libsox-fmt-mp3

Maak oorgange tussen skyfies

'n Oorgang is 'n kort video waarin een skyfie in 'n ander verander. Om sulke video's te maak, neem ons skyfies in pare en gebruik Imagemagick verander die een in die ander:

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

Om een ​​of ander rede wou ek hê dat die skyfie met kolletjies gestrooi moes wees, en dan sou die volgende skyfie uit die kolletjies saamgestel word, en hiervoor het ek 'n skrif geskryf genaamd vervaag.pl Het Imagemagick, 'n regte Linux-gebruiker sal enige spesiale effek skep, maar as iemand van my idee hou met verstrooiing, hier is die skrif:

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

Ons monteer die voltooide video

Nou het ons al die fragmente. Gaan na die katalogus clips en monteer die voltooide film deur twee opdragte te gebruik:

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

Geniet dit om na jou dankbare studente te kyk!

Bron: will.com

Voeg 'n opmerking