Video ceramah: cara unix

Video ceramah: cara unix
Quarantine minangka wektu sing apik kanggo sinau. Nanging, kaya sing sampeyan ngerteni, supaya wong bisa sinau, ana sing kudu mulang. Yen sampeyan duwe presentasi sing pengin diwenehake menyang jutaan pamirsa lan entuk ketenaran ing saindenging jagad, mula artikel iki kanggo sampeyan. Ing kene sampeyan bakal nemokake pandhuan langkah demi langkah babagan carane nggawe video saka presentasi sampeyan.

Kita ngilangi path rekaman "komentar audio" ing PowerPoint lan ngekspor presentasi menyang video minangka sepele lan ora nyedhiyakake sepersepuluh saka kemampuan sing dibutuhake kanggo video sing apik tenan.

Pisanan, ayo mutusake pigura apa sing dibutuhake:

  1. Muter nyata kanthi sulih swara
  2. Ngganti slide
  3. Kutipan saka film populer
  4. Sawetara pigura kanthi pasuryan dosen lan kucing favorit (opsional)

Nggawe struktur direktori

.
β”œβ”€β”€ clipart
β”œβ”€β”€ clips
β”œβ”€β”€ rec
β”œβ”€β”€ slide
└── sound

Tujuan saka direktori ing urutan listing: film saka ngendi kita bakal narik kuotasi (clipart), pecahan video mangsa (klip), video saka kamera (rec), minger ing wangun gambar (slide), swara. (swara).

Nggawe presentasi ing gambar

Kanggo pangguna Linux sing mripat abang nyata, nggawe presentasi ing bentuk gambar ora ana masalah. Ayo kula ngelingake sampeyan manawa dokumen ing format pdf bisa diurai dadi gambar kanthi nggunakake perintah kasebut

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

Yen ora ana prentah kasebut, instal paket kasebut dhewe poppler-utils (instruksi kanggo Ubuntu; yen sampeyan duwe Arch, sampeyan ngerti apa sing kudu dilakoni tanpa aku).

Ing kene lan luwih, aku percaya yen video wis disiapake ing format HD Ready, yaiku 1280x720. A presentation karo ukuran horisontal 10 inci menehi persis ukuran iki nalika unloaded (ndeleng parameter -r 128).

Nyiapake teks

Yen sampeyan pengin nggawe materi sing apik banget, pidato sampeyan kudu ditulis dhisik. Aku uga mikir yen aku bisa ngomong teks tanpa persiapan, utamane amarga aku duwe pengalaman sing apik ing ceramah. Nanging siji bab kanggo nindakake urip, lan bab liyane kanggo ngrekam video. Aja kesed - wektu sing digunakake kanggo ngetik bakal mbayar kaping pirang-pirang.

Video ceramah: cara unix

Iki format rekamanku. Nomer ing judhul padha karo nomer geser, interruptions disorot abang. Sembarang editor cocok kanggo persiapan, nanging luwih becik njupuk prosesor tembung lengkap - contone, Mung.

Swara liwat slide

Apa sing bisa dakkandhakake - uripake mikropon lan tulis :)

Pengalaman nuduhake manawa kualitas rekaman sanajan saka mikropon eksternal sing paling murah luwih apik tinimbang saka mikropon sing dibangun ing laptop. Yen sampeyan pengin peralatan kualitas, Aku nyaranake artikel iki.

Kanggo ngrekam aku digunakake perekam audio - aplikasi sing gampang banget kanggo ngrekam swara. Sampeyan bisa njupuk, contone, ing kene:

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

Sing utama ing langkah iki yaiku jeneng file kanthi bener. Jeneng kudu kalebu nomer geser lan nomer fragmen. Fragmen diwenehi nomer ganjil - 1, 3, 5, lsp. Dadi, kanggo slide, teks sing ditampilake ing gambar, rong file bakal digawe: 002-1.mp3 ΠΈ 002-3.mp3.

Yen sampeyan ngrekam kabeh video bebarengan ing kamar sing sepi, sampeyan ora kudu nindakake apa-apa maneh. Yen sampeyan ngrekam ing sawetara langkah, iku luwih apik kanggo equalize tingkat volume:

mp3gain -r *.mp3

Utilitas mp3 entuk Kanggo sawetara alasan ora ana ing repositori standar, nanging sampeyan bisa entuk ing kene:

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

Sawise kabeh iki, sampeyan kudu ngrekam file liyane kanthi bisu. Sampeyan perlu kanggo nambah trek swara menyang video bisu: yen siji video duwe trek swara lan liyane ora, banjur iku angel kanggo lim video iki bebarengan. Kasepen bisa direkam saka mikropon, nanging luwih becik nggawe file ing editor audacity. Dawane berkas kudu paling sethithik sakdetik (luwih akeh bisa), lan kudu dijenengi meneng.mp3

Nyiyapake video gangguan

Ing kene kabeh mung diwatesi dening imajinasi sampeyan. Sampeyan bisa nggunakake editor kanggo ngowahi video Avidemux. Biyen ana ing repositori standar, nanging sakperangan alesan iki Cut metu. Iki ora bakal mungkasi kita:

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

Ana akeh instruksi kanggo nggarap editor iki ing Internet, lan ing asas, kabeh ana intuisi. Penting kanggo ketemu sawetara syarat.

Pisanan, resolusi video kudu cocog karo resolusi video target. Kanggo nindakake iki, sampeyan kudu nggunakake rong saringan ing "video output": swsResize kanggo ngganti resolusi lan "nambah kolom" kanggo ngowahi film "format sempit" Soviet menyang format sudhut. Kabeh saringan liyane opsional. Contone, yen ana sing ora ngerti sebabe statement Pak Sharikov ana ing fragmen sing dibahas, nggunakake filter "nambah logo", sampeyan bisa overlay logo PostgreSQL ing ndhuwur "Dog Heart".

Kapindho, kabeh fragmen kudu nggunakake tingkat pigura sing padha. Aku nggunakake 25 pigura per detik amarga kamera lan film Soviet lawas menehi kula sing akeh. Yen film sing sampeyan potong dijupuk kanthi kacepetan sing beda, gunakake filter Resample Video.

Katelu, kabeh fragmen kudu dikompres nganggo codec sing padha lan dikemas ing wadhah sing padha. Mulane ing Avidemux kanggo format, pilih video - "MPEG4 AVC (x264)", audio-"AAC (FAAC)", format output -"MP4 Muxer".

Kaping papat, penting kanggo menehi jeneng video sing dipotong kanthi bener. Jeneng berkas kudu kalebu nomer geser lan nomer fragmen. Fragmen diwilang kanthi nomer genap, wiwit saka 2. Dadi, kanggo pigura sing dibahas, video kanthi gangguan kudu diarani 002-2.mp4

Sawise video siap, sampeyan kudu nransfer menyang direktori kanthi fragmen. Setelan avidemux beda karo setelan ffmpeg kanthi gawan karo paramèter misterius tbr, tbn, tbc. Padha ora mengaruhi puter maneh, nanging ora ngidini video kanggo glued bebarengan. Dadi ayo recode:

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

Shooting screensaver

Ing kene, kabeh uga gampang: sampeyan njupuk latar mburi sawetara skema sing cerdas, sijine video sing diasilake ing katalog rec, lan saka ing kono pindhah menyang direktori kanthi fragmen. Aturan penamaan padha karo kuotasi interrupt, printah recoding kaya ing ngisor iki:

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

Yen sampeyan arep miwiti video nganggo pidato, sebutno fragmen iki 000-1.mp4

Nggawe pigura saka gambar statis

Iki wektu kanggo ngowahi video saka gambar statis lan swara. Iki ditindakake kanthi skrip ing ngisor iki:

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

Wigati dimangerteni manawa durasi file audio ditemtokake dhisik dening sarana soxi, banjur video kanthi dawa sing dibutuhake diowahi. Kabeh rekomendasi sing ditemokake luwih gampang: tinimbang gendΓ©ra -t ${durasi} gendera digunakake -paling cendhek... Bener ffmpeg nemtokake dawane mp3 kira-kira, lan sajrone nyunting, dawa trek audio bisa beda-beda banget (saka siji utawa rong detik) saka dawa trek video. Ora masalah yen kabeh video kasusun saka pigura siji, nanging nalika sampeyan nempelake video kasebut kanthi gangguan ing tapel wates, efek gagap sing ora nyenengake.

Cara liya kanggo nemtokake durasi file mp3 yaiku nggunakake mp3info. Dheweke uga nggawe kesalahan, lan kadhangkala ffmpeg menehi luwih saka mp3info, kadhangkala iku cara liyane watara, kadhangkala loro-lorone ngapusi - Aku ora sok dong mirsani pola sembarang. Lan kene soxi dianggo bener.

Kanggo nginstal sarana migunani iki, tindakake iki:

sudo apt-get install sox libsox-fmt-mp3

Nggawe transisi antarane slide

Transisi minangka video cendhak sing siji slide dadi liyane. Kanggo nggawe video kasebut, kita njupuk slide kanthi pasangan lan nggunakake imagemagick ngowahi siji menyang liyane:

#!/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 sawetara alasan aku pengin slide kasebut kasebar karo titik, banjur slide sabanjure bakal diklumpukake saka titik, lan iki aku nulis naskah sing diarani fade.pl Duwe imagemagick, pangguna Linux nyata bakal nggawe efek khusus, nanging yen ana wong sing seneng ideku kanthi nyebar, iki skrip:

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

Kita pasang video sing wis rampung

Saiki kita duwe kabeh pecahan. Pindhah menyang katalog clips lan ngumpulake film rampung nggunakake rong printah:

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

Seneng nonton kanggo siswa matur nuwun!

Source: www.habr.com

Add a comment