Kuliah video: unix way

Kuliah video: unix way
Karantina mangrupikeun waktos anu saé pikeun diajar hiji hal. Nanging, sakumaha anu anjeun ngartos, supados batur diajar hiji hal, batur kedah ngajar. Upami anjeun gaduh presentasi anu anjeun hoyong masihan ka pamiarsa jutaan sareng kéngingkeun Kinérja di dunya, maka tulisan ieu kanggo anjeun. Di dieu anjeun bakal mendakan pitunjuk léngkah-léngkah ngeunaan cara ngadamel pidéo tina presentasi anjeun.

Kami ngaleungitkeun jalur pikeun ngarékam "koméntar audio" dina PowerPoint sareng ngékspor presentasi kana pidéo salaku sepele sareng henteu nyayogikeun kasapuluh kamampuan anu dipikabutuh pikeun pidéo anu saé.

Mimiti, hayu urang mutuskeun pigura naon anu urang peryogikeun:

  1. The slides sabenerna kalawan voiceover
  2. Ngarobah slides
  3. Tanda kutip tina pilem populér
  4. Sababaraha pigura sareng wajah dosen sareng ucing karesepna (opsional)

Nyieun struktur diréktori

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

Tujuan tina directories dina urutan Listing: pilem ti mana urang bakal narik tanda petik (clipart), fragmen video hareup urang (klip), video ti kaméra (rek), slides dina bentuk gambar (slide), sora. (sora).

Nyieun presentasi dina gambar

Pikeun pangguna Linux anu panon beureum nyata, ngadamel presentasi dina bentuk gambar henteu aya masalah. Hayu atuh ngan ngingetan yén hiji dokumen dina format pdf bisa parsed kana gambar maké paréntah

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

Upami teu aya paréntah sapertos kitu, pasang pakét nyalira poppler-utils (parentah pikeun Ubuntu; lamun boga Arch, mangka anjeun terang sampurna ogé naon anu kudu dipigawé tanpa kuring).

Di dieu sareng salajengna, kuring yakin yén pidéo ieu disiapkeun dina format Siap HD, nyaéta 1280x720. A presentasi kalawan ukuran horizontal 10 inci méré persis ukuran ieu nalika unloaded (tingali pilihan -r 128).

Nyiapkeun téks

Upami anjeun hoyong ngadamel bahan anu saé pisan, pidato anjeun kedah ditulis heula. Kuring ogé ngira yén kuring tiasa nyarios téks tanpa persiapan, khususna saprak kuring gaduh pangalaman anu saé dina ceramah. Tapi éta hiji hal pikeun ngalakukeun live, sarta hal séjén pikeun ngarekam video. Entong puguh - waktos anu diketik bakal dibayar sababaraha kali.

Kuliah video: unix way

Ieu format rekaman kuring. Jumlah dina judul sarua jeung nomer slide, interruptions nu disorot beureum. Sakur éditor cocog pikeun persiapan, tapi langkung saé nyandak prosesor kecap anu lengkep - contona, OnlyOffice.

Sora dina slides

Naon anu kuring tiasa nyarios - hurungkeun mikropon sareng nyerat :)

Pangalaman nunjukkeun yén kualitas ngarékam bahkan tina mikropon éksternal anu paling murah langkung saé tibatan tina mikropon anu diwangun dina laptop. Upami anjeun hoyong alat-alat kualitas, abdi nyarankeun eta Artikel ieu.

Pikeun ngarekam I dipaké parékam audio - aplikasi anu saderhana pisan pikeun ngarékam sora. Anjeun tiasa nyandak éta, contona, di dieu:

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

Hal utama dina léngkah ieu nyaéta nami file anu leres. Ngaranna kedah diwangun ku nomer slide sareng nomer sempalan. Fragmen anu dinomeran ku angka ganjil - 1, 3, 5, jsb. Janten, pikeun slide, téks anu dipidangkeun dina gambar, dua file bakal didamel: 002-1.mp3 и 002-3.mp3.

Upami anjeun ngarékam sadaya pidéo sakaligus dina kamar anu sepi, anjeun henteu kedah ngalakukeun nanaon deui sareng aranjeunna. Upami anjeun ngarékam dina sababaraha léngkah, langkung sae pikeun nyaimbangkeun tingkat polumeu:

mp3gain -r *.mp3

Utiliti mp3 gain Kanggo sababaraha alesan éta henteu aya dina repositori standar, tapi anjeun tiasa kéngingkeun di dieu:

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

Saatos sadayana ieu, anjeun kedah ngarékam file sanés kalayan tiiseun. Anjeun kedah nambihan lagu sora kana pidéo jempé: upami hiji pidéo gaduh lagu sora sareng anu sanésna henteu, maka sesah ngahijikeun pidéo ieu. Tiiseun tiasa dirékam tina mikropon, tapi langkung saé ngadamel file dina éditor AudaCity. Panjang file kedah sahenteuna sadetik (leuwih mungkin), sarta eta kudu ngaranna tiiseun.mp3

Nyiapkeun video interupsi

Di dieu sagalana diwatesan ukur ku imajinasi anjeun. Anjeun tiasa nganggo éditor pikeun ngédit pidéo Avidemux. Sakali kana waktos éta dina repositories baku, tapi lajeng pikeun sababaraha alesan ieu motong kaluar. Ieu moal ngeureunkeun kami:

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

Aya loba parentah pikeun gawé bareng redaktur ieu dina Internet, sarta prinsipna mah, sagalana aya intuitif. Kadé minuhan sababaraha kaayaan.

Kahiji, resolusi video kudu cocog resolusi video target. Jang ngalampahkeun ieu, anjeun kedah nganggo dua saringan dina "video kaluaran": swsResize pikeun ngarobih résolusi sareng "nambahkeun widang" pikeun ngarobih pilem "format sempit" Soviét kana format anu lega. Sadaya saringan sanés pilihan. Contona, lamun batur teu ngarti naha pernyataan Bapak Sharikov aya dina fragmen dina diskusi, ngagunakeun "nambahkeun logo" filter, anjeun tiasa overlay logo PostgreSQL dina luhureun "Dog Heart".

Kadua, sadaya fragmen kedah nganggo laju pigura anu sami. Kuring make 25 pigura per detik sabab kaméra kuring jeung pilem Soviét heubeul masihan kuring nu loba. Upami pilem anu anjeun motong dipoto dina laju anu béda, paké saringan Resample Video.

Katilu, sadaya fragmen kedah dikomprés sareng codec anu sami sareng dibungkus dina wadah anu sami. Ku kituna dina Avidemux pikeun pormat, pilih video - "MPEG4 AVC (x264)", audio-"AAC (FAAC)", format kaluaran -"MP4 Muxer".

Kaopat, penting pikeun nami pidéo anu dipotong leres. Ngaran koropak kudu diwangun ku nomer slide jeung nomer fragmen. Fragmen nu wilanganana kalawan angka genap, mimitian ti 2. Ku kituna, pikeun pigura dina sawala, video jeung interupsi kudu disebut. 002-2.mp4

Saatos pidéo tos siap, anjeun kedah nransferkeunana kana diréktori nganggo fragmen. Setélan avidemux béda ti setélan ffmpeg sacara standar sareng parameter misterius tbr, tbn, tbc. Aranjeunna teu mangaruhan playback, tapi maranéhna teu ngidinan video pikeun glued babarengan. Ku kituna hayu urang recode:

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

Shooting screensavers

Di dieu, ogé, sadayana saderhana: anjeun moto ngalawan latar tukang sababaraha skéma pinter, nempatkeun pidéo anu hasilna dina katalog. rec, sarta ti dinya mindahkeun ka diréktori kalawan fragmen. Aturan nami sami sareng tanda petik interrupt, paréntah recoding nyaéta kieu:

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

Upami anjeun badé ngamimitian pidéo ku pidato anjeun, nami sempalan ieu 000-1.mp4

Nyieun pigura tina gambar statik

Waktosna pikeun ngédit pidéo tina gambar statik sareng sora. Hal ieu dilakukeun nganggo skrip ieu:

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

Punten dicatet yén durasi file audio mimitina ditangtukeun ku utiliti soxi, lajeng video nu panjangna diperlukeun diédit. Sadaya saran anu kuring mendakan langkung saderhana: tibatan bandéra -t ${durasi} bandéra dipaké -pondokna... Sabenerna ffmpeg Nangtukeun panjang mp3 kira-kira pisan, sareng salami ngédit, panjang lagu audio tiasa bénten pisan (sahiji atanapi dua detik) tina panjang lagu pidéo. Henteu janten masalah upami sadaya pidéo diwangun ku pigura tunggal, tapi nalika anjeun ngalempengkeun pidéo sapertos kitu sareng gangguan di wates, épék gagap anu teu pikaresepeun lumangsung.

Cara séjén pikeun nangtukeun lilana file mp3 nyaéta ngagunakeun mp3info. Manehna nyieun kasalahan teuing, sarta kadangkala ffmpeg méré leuwih ti mp3info, sakapeung éta sabalikna, sakapeung duanana bohong - Kuring teu aya bewara pola nanaon. Jeung di dieu soxi jalan bener.

Pikeun masang utiliti mangpaat ieu, lakukeun ieu:

sudo apt-get install sox libsox-fmt-mp3

Nyieun transisi antara slides

Transisi mangrupikeun pidéo pondok dimana hiji slide janten anu sanés. Pikeun nyieun video sapertos kitu, urang nyandak slides di pasang jeung ngagunakeun imagemagick ngarobah hiji jadi séjén:

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

Kanggo sababaraha alesan kuring hoyong slide kasebar sareng titik-titik, teras slide salajengna bakal dirakit tina titik-titik, sareng pikeun ieu kuring nyerat naskah anu disebut. fade.pl Ngagaduhan imagemagick, pamaké Linux anu nyata bakal nyiptakeun éfék khusus, tapi upami aya anu resep ideu ku paburencay, ieu naskahna:

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

Urang pasang video rengse

Ayeuna urang gaduh sadayana fragmen. Pindah ka katalog klip sareng ngumpul pilem réngsé nganggo dua paréntah:

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

Ngarasakeun nonton ka murid anjeun bersyukur!

sumber: www.habr.com

Tambahkeun komentar