Video lectures: unix way

Video lectures: unix way
Quarantine yog lub sijhawm zoo los kawm qee yam. Txawm li cas los xij, raws li koj nkag siab, kom ib tug neeg kawm ib yam dab tsi, ib tug neeg yuav tsum qhia. Yog tias koj muaj kev nthuav qhia uas koj xav muab rau cov neeg tuaj saib ntau lab thiab tau txais koob meej thoob ntiaj teb, ces kab lus no yog rau koj. Ntawm no koj yuav pom cov lus qhia step-by-step ntawm yuav ua li cas ua ib qho video los ntawm koj qhov kev nthuav qhia.

Peb tso tseg txoj hauv kev ntawm kev kaw "suab lus" hauv PowerPoint thiab xa tawm qhov kev nthuav qhia mus rau video raws li tsis tseem ceeb thiab tsis muab ib feem kaum ntawm lub peev xwm xav tau rau cov yeeb yaj kiab txias tiag tiag.

Ua ntej, cia peb txiav txim siab seb peb xav tau dab tsi:

  1. Qhov tseeb slides nrog voiceover
  2. Hloov cov slides
  3. Quotes los ntawm cov yeeb yaj kiab nrov
  4. Ob peb thav ntawv nrog tus kws qhia lub ntsej muag thiab nws nyiam miv (yeem)

Tsim ib daim ntawv teev npe

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

Lub hom phiaj ntawm cov ntawv teev npe nyob rau hauv qhov kev txiav txim ntawm cov npe: cov yeeb yaj kiab uas peb yuav rub tawm cov lus qhia (clip), ntu ntawm peb cov yeeb yaj kiab yav tom ntej (clips), cov yeeb yaj kiab los ntawm lub koob yees duab (rec), swb hauv daim duab (swb), suab (suab).

Ua kev nthuav qhia hauv cov duab

Rau cov neeg siv Linux lub qhov muag liab tiag tiag, ua qhov kev nthuav qhia hauv daim duab tsis muaj teeb meem. Cia kuv ceeb toom rau koj tias cov ntaub ntawv hauv pdf tuaj yeem muab faib ua cov duab siv cov lus txib

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

Yog tias tsis muaj cov lus txib no, nruab lub pob koj tus kheej poppler-utils (cov lus qhia rau Ubuntu; yog tias koj muaj Arch, ces koj paub zoo tias yuav ua li cas yam tsis muaj kuv).

Hereinafter, kuv ntseeg hais tias cov yees duab yog npaj nyob rau hauv HD Npaj hom ntawv, piv txwv li 1280x720. Kev nthuav qhia nrog kab rov tav qhov ntev ntawm 10 ntiv tes ua raws nraim li qhov loj me thaum thauj khoom (saib kev xaiv -r 128).

Npaj cov ntawv

Yog tias koj xav ua cov ntaub ntawv zoo heev, koj cov lus yuav tsum tau sau ua ntej. Kuv kuj xav tias kuv tuaj yeem hais cov ntawv tsis tau npaj, tshwj xeeb tshaj yog vim kuv muaj kev paub zoo hauv kev hais lus. Tab sis nws yog ib yam uas yuav tsum tau ua nyob, thiab lwm yam los kaw ib qho video. Tsis txhob tub nkeeg - lub sij hawm siv ntaus ntawv yuav them ntau zaus.

Video lectures: unix way

Nov yog kuv cov ntaubntawv povthawj siv. Tus lej nyob rau hauv lub npe yog sib npaug rau tus lej swb, cov kev cuam tshuam cuam tshuam yog xim liab. Txhua tus kws kho mob tsim nyog rau kev npaj, tab sis nws yog qhov zoo dua los siv cov lus sau ua tiav - piv txwv li, OnlyOffice.

Suab tshaj cov slides

Kuv tuaj yeem hais dab tsi - tig lub microphone thiab sau :)

Kev paub qhia tau hais tias cov ntaubntawv povthawj siv tau zoo txawm tias los ntawm qhov pheej yig tshaj plaws sab nraud microphone yog incomparably zoo dua los ntawm built-in microphone ntawm lub laptop. Yog tias koj xav tau cov cuab yeej zoo, kuv xav kom nws tsab xov xwm no.

Rau kev kaw kuv siv lub kaw suab - ib daim ntawv thov yooj yim heev rau kev kaw suab. Koj tuaj yeem coj nws, piv txwv li, ntawm no:

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

Qhov tseem ceeb ntawm cov kauj ruam no yog sau npe cov ntaub ntawv kom raug. Lub npe yuav tsum muaj tus lej swb thiab tus lej tawg. Fragments yog suav nrog cov lej khib - 1, 3, 5, thiab lwm yam. Yog li, rau cov swb uas nws cov ntawv qhia hauv daim duab, ob cov ntaub ntawv yuav raug tsim: 002-1.mp3 ΠΈ 002-3.mp3.

Yog tias koj kaw tag nrho cov yeeb yaj kiab ib zaug hauv chav nyob ntsiag to, koj tsis tas yuav ua dab tsi ntxiv nrog lawv. Yog tias koj tau sau tseg hauv ob peb kauj ruam, nws yog qhov zoo dua los sib npaug ntawm qib ntim:

mp3gain -r *.mp3

Cov khoom siv mp3 tau Rau qee qhov laj thawj nws tsis nyob hauv cov chaw cia khoom, tab sis koj tuaj yeem tau txais nws ntawm no:

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

Tom qab tag nrho cov no, koj yuav tsum tau sau lwm cov ntaub ntawv nrog silence. Nws yog ib qho tsim nyog yuav tau ntxiv ib lub suab khiav rau cov yeeb yaj kiab uas ntsiag to: yog tias ib qho yeeb yaj kiab muaj suab nrov thiab lwm qhov tsis ua, ces nws yog qhov nyuaj rau muab cov yeeb yaj kiab ua ke. Kev ntsiag to tuaj yeem kaw los ntawm lub microphone, tab sis nws yog qhov zoo dua los tsim cov ntaub ntawv hauv tus editor audacity. Cov ntaub ntawv ntev yuav tsum yog tsawg kawg ib ob (ntau dua yog ua tau), thiab nws yuav tsum muaj npe lus.mp3

Npaj cov yeeb yaj kiab cuam tshuam

Ntawm no txhua yam tsuas yog txwv los ntawm koj lub tswv yim. Koj tuaj yeem siv tus editor los kho cov yeeb yaj kiab Avidemux. Muaj ib zaug nws nyob hauv cov chaw khaws khoom txheem, tab sis tom qab ntawd vim qee qhov nws raug txiav tawm. Qhov no yuav tsis nres peb:

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

Muaj ntau ntau cov lus qhia rau kev ua hauj lwm nrog no editor nyob rau hauv Internet, thiab nyob rau hauv lub hauv paus ntsiab lus, txhua yam yog intuitive. Nws yog ib qho tseem ceeb kom ua tau raws li ob peb yam kev mob.

Ua ntej, qhov kev daws teeb meem video yuav tsum phim lub hom phiaj video daws teeb meem. Txhawm rau ua qhov no, koj yuav tsum siv ob lub lim dej hauv "cov yeeb yaj kiab tso tawm": swsResize hloov qhov kev daws teeb meem thiab "ntxiv cov teb" kom tig ib zaj duab xis "nqaim" hauv Soviet rau hauv hom dav. Tag nrho lwm cov lim dej yog xaiv tau. Piv txwv li, yog tias ib tug neeg tsis nkag siab tias yog vim li cas Mr. Sharikov cov lus nyob rau hauv qhov seem hauv kev sib tham, siv lub "ntxiv logo" lim, koj tuaj yeem overlay lub PostgreSQL logo rau saum "Dog Heart".

Qhov thib ob, tag nrho cov seem yuav tsum siv tib tus ncej tus nqi. Kuv siv 25 thav duab ib ob vim kuv lub koob yees duab thiab cov qub Soviet films muab rau kuv ntau heev. Yog tias cov yeeb yaj kiab uas koj tau txiav los ntawm raug tua ntawm qhov sib txawv, siv cov ntxaij lim dej Resample Video.

Thib peb, tag nrho cov fragments yuav tsum tau compressed nrog tib codec thiab ntim rau hauv tib lub ntim. Yog li ntawd nyob rau hauv Avidemux rau hom ntawv, xaiv video – β€œMPEG4 AVC (x264)", audio -"AAC (FAAC)", tso zis hom - "MP4 Muxer".

Plaub, nws yog ib qho tseem ceeb rau lub npe txiav cov yeeb yaj duab kom raug. Cov ntaub ntawv npe yuav tsum muaj tus lej swb thiab tus lej tawg. Fragments yog suav nrog tus lej, pib los ntawm 2. Yog li, rau lub thav duab nyob rau hauv kev sib tham, video nrog kev cuam tshuam yuav tsum raug hu ua 002-2.mp4

Tom qab cov yeeb yaj duab tau npaj txhij, koj yuav tsum tau hloov lawv mus rau cov npe nrog fragments. Chaw avidemux txawv ntawm qhov chaw ffmpeg los ntawm lub neej ntawd nrog cov tsis paub tsis meej tbr, tbn, tbc. Lawv tsis cuam tshuam rau kev ua si, tab sis lawv tsis tso cai rau cov yeeb yaj kiab sib txuas ua ke. Yog li cia peb 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

Ntawm no, ib yam nkaus thiab, txhua yam yog yooj yim: koj tua tawm tsam cov keeb kwm yav dhau los ntawm qee cov tswv yim ntse, muab cov yeeb yaj kiab tso rau hauv phau ntawv teev npe rec, thiab los ntawm qhov ntawd hloov mus rau cov npe nrog cov khoom tawg. Cov kev cai naming yog tib yam li rau cuam tshuam quotes, recoding command yog raws li nram no:

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

Yog tias koj npaj yuav pib qhov vis dis aus nrog koj cov lus hais, sau npe qhov ntu no 000-1.mp4

Ua thav duab los ntawm cov duab zoo li qub

Nws yog lub sijhawm los kho cov yeeb yaj kiab los ntawm cov duab zoo li qub thiab lub suab. Qhov no yog ua tiav nrog cov ntawv hauv qab no:

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

Thov nco ntsoov tias lub sijhawm ntawm cov ntaub ntawv audio yog thawj zaug txiav txim siab los ntawm kev siv hluav taws xob soxi, thiab ces cov yees duab ntawm qhov yuav tsum tau ntev yog edited. Tag nrho cov lus pom zoo uas kuv pom tau yooj yim dua: tsis yog tus chij -t ${ntev} chij siv - luv tshaj... Tiag tiag ffmpeg txiav txim siab qhov ntev ntawm mp3 kwv yees li, thiab thaum kho, qhov ntev ntawm lub suab yuav txawv heev (los ntawm ib lossis ob vib nas this) los ntawm qhov ntev ntawm cov yeeb yaj kiab. Qhov no tsis muaj teeb meem yog tias tag nrho cov vis dis aus muaj ib lub thav duab, tab sis thaum koj muab cov yeeb yaj kiab zoo li no nrog kev cuam tshuam ntawm ciam teb, qhov cuam tshuam tsis zoo tshwm sim tshwm sim.

Lwm txoj hauv kev los txiav txim siab lub sijhawm ntawm cov ntaub ntawv mp3 yog siv mp3info ua. Nws ua yuam kev ib yam nkaus, thiab qee zaum ffmpeg muab ntau tshaj mp3info ua, qee zaum nws yog lwm txoj hauv kev, qee zaum lawv ob leeg dag - Kuv tsis pom ib qho qauv. Thiab ntawm no soxi ua haujlwm kom raug.

Txhawm rau txhim kho qhov txiaj ntsig zoo, ua qhov no:

sudo apt-get install sox libsox-fmt-mp3

Ua kev hloov ntawm cov slides

Ib qho kev hloov pauv yog cov yeeb yaj kiab luv luv uas ib tus swb hloov mus rau lwm qhov. Txhawm rau ua cov yeeb yaj kiab zoo li no, peb muab cov slides ua khub thiab siv kev xav tswv yim hloov ib qho mus rau lwm qhov:

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

Rau qee yam kuv xav kom cov swb kom tawg nrog cov dots, thiab tom qab ntawd cov slides tom ntej yuav raug sau los ntawm cov dots, thiab rau qhov no kuv tau sau ib tsab ntawv hu ua ploj.pl Muaj kev xav tswv yim, tus neeg siv Linux tiag tiag yuav tsim cov txiaj ntsig tshwj xeeb, tab sis yog tias ib tus neeg nyiam kuv lub tswv yim nrog kev tawg, ntawm no yog tsab ntawv:

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

Peb mount lub tiav lawm video

Tam sim no peb muaj tag nrho cov seem. Mus rau lub catalog clips thiab sib sau ua tiav zaj duab xis uas siv ob lo lus txib:

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

Txaus siab rau saib koj cov tub ntxhais kawm ua tsaug!

Tau qhov twg los: www.hab.com

Ntxiv ib saib