Video lecture: unix way

Video lecture: unix way
Ang quarantine ay isang magandang panahon para matuto ng isang bagay. Gayunpaman, tulad ng naiintindihan mo, para may matutunan ang isang tao, dapat may magturo. Kung mayroon kang presentasyon na gusto mong ibigay sa milyun-milyong madla at makakuha ng katanyagan sa buong mundo, ang artikulong ito ay para sa iyo. Dito makikita mo ang sunud-sunod na mga tagubilin kung paano gumawa ng video mula sa iyong presentasyon.

Ibinasura namin ang landas ng pag-record ng "mga komento sa audio" sa PowerPoint at pag-export ng presentasyon sa video bilang walang halaga at hindi pagbibigay ng ikasampu ng mga kakayahan na kailangan para sa isang tunay na cool na video.

Una, magpasya tayo kung anong mga frame ang kailangan natin:

  1. Ang aktwal na mga slide na may voiceover
  2. pagbabago ng slide
  3. Mga panipi mula sa mga sikat na pelikula
  4. Maraming mga frame na may mukha ng lecturer at ang kanyang paboritong pusa (opsyonal)

Paglikha ng istraktura ng direktoryo

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

Ang layunin ng mga direktoryo sa pagkakasunud-sunod ng listahan: mga pelikula kung saan kukuha kami ng mga quote (clipart), mga fragment ng aming hinaharap na video (mga clip), mga video mula sa camera (rec), mga slide sa anyo ng mga larawan (slide), tunog (tunog).

Paggawa ng presentasyon sa mga larawan

Para sa isang tunay na gumagamit ng Linux na may pulang mata, ang paggawa ng isang pagtatanghal sa anyo ng mga larawan ay hindi nagpapakita ng anumang mga problema. Ipaalala ko lang sa iyo na ang isang dokumento sa pdf na format ay maaaring i-parse sa mga imahe gamit ang command

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

Kung walang ganoong utos, i-install ang package sa iyong sarili poplar-utils (mga tagubilin para sa Ubuntu; kung mayroon kang Arch, alam mo nang lubos kung ano ang gagawin nang wala ako).

Dito at higit pa, naniniwala ako na ang video ay inihanda sa HD Ready na format, ibig sabihin, 1280x720. Ang isang presentasyon na may pahalang na sukat na 10 pulgada ay nagbibigay ng eksaktong sukat na ito kapag inilabas (tingnan ang -r 128 na opsyon).

Paghahanda ng teksto

Kung nais mong gumawa ng talagang mahusay na materyal, ang iyong talumpati ay kailangang isulat muna. Naisip ko rin na kaya kong magsalita ng teksto nang walang paghahanda, lalo na't mayroon akong magandang karanasan sa pagtuturo. Ngunit isang bagay ang mag-perform nang live, at isa pang bagay ang mag-record ng video. Huwag maging tamad - ang oras na ginugol sa pag-type ay magbabayad nang maraming beses.

Video lecture: unix way

Narito ang aking format ng pag-record. Ang numero sa pamagat ay katumbas ng slide number, ang mga pagkaantala ay naka-highlight sa pula. Anumang editor ay angkop para sa paghahanda, ngunit ito ay mas mahusay na kumuha ng isang ganap na word processor - halimbawa, OnlyOffice.

Voice over sa mga slide

Ano ang masasabi ko - i-on ang mikropono at magsulat :)

Ipinapakita ng karanasan na ang kalidad ng pag-record kahit na mula sa pinakamurang panlabas na mikropono ay hindi maihahambing na mas mahusay kaysa sa built-in na mikropono ng isang laptop. Kung gusto mo ng de-kalidad na kagamitan, inirerekomenda ko ito narito ang artikulong ito.

Para sa pagre-record ginamit ko audio recorder - isang napaka-simpleng application para sa pag-record ng tunog. Maaari mong kunin ito, halimbawa, dito:

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

Ang pangunahing bagay sa hakbang na ito ay pangalanan nang tama ang mga file. Ang pangalan ay dapat na binubuo ng slide number at fragment number. Ang mga fragment ay binibilang na may mga kakaibang numero - 1, 3, 5, atbp. Kaya, para sa slide, ang teksto kung saan ipinapakita sa larawan, dalawang file ang gagawin: 002-1.mp3 ΠΈ 002-3.mp3.

Kung ni-record mo ang lahat ng video nang sabay-sabay sa isang tahimik na kwarto, wala ka nang dapat gawin pa sa kanila. Kung nag-record ka sa ilang hakbang, mas mainam na i-equalize ang volume level:

mp3gain -r *.mp3

Mga gamit mp3gain Para sa ilang kadahilanan wala ito sa mga karaniwang repositoryo, ngunit maaari mo itong makuha dito:

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

Pagkatapos ng lahat ng ito, kailangan mong mag-record ng isa pang file nang may katahimikan. Kinakailangang magdagdag ng sound track sa mga tahimik na video: kung ang isang video ay may sound track at ang isa naman ay wala, mahirap pagsamahin ang mga video na ito. Maaaring i-record ang katahimikan mula sa isang mikropono, ngunit mas mahusay na lumikha ng isang file sa editor Kapangahasan. Ang haba ng file ay dapat na hindi bababa sa isang segundo (mas marami ang posible), at dapat itong pangalanan katahimikan.mp3

Inihahanda ang mga interruption na video

Narito ang lahat ay limitado lamang sa iyong imahinasyon. Maaari kang gumamit ng editor upang mag-edit ng mga video Avidemux. Noong unang panahon ito ay nasa karaniwang mga imbakan, ngunit pagkatapos ay sa ilang kadahilanan ay pinutol ito. Hindi tayo titigil nito:

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

Mayroong maraming mga tagubilin para sa pagtatrabaho sa editor na ito sa Internet, at sa prinsipyo, lahat ng bagay doon ay intuitive. Mahalagang matugunan ang ilang kundisyon.

Una, dapat tumugma ang resolution ng video sa target na resolution ng video. Upang gawin ito, kailangan mong gumamit ng dalawang filter sa "output video": swsResize upang baguhin ang resolution at "pagdaragdag ng mga field" upang gawing malawak na format ang isang "makitid na format" na pelikula ng Sobyet. Ang lahat ng iba pang mga filter ay opsyonal. Halimbawa, kung hindi naiintindihan ng isang tao kung bakit nasa fragment na tinatalakay ang pahayag ni Mr. Sharikov, gamit ang filter na "magdagdag ng logo", maaari mong i-overlay ang logo ng PostgreSQL sa ibabaw ng "Dog Heart".

Pangalawa, ang lahat ng mga fragment ay dapat gumamit ng parehong frame rate. Gumagamit ako ng 25 frame bawat segundo dahil ganoon kalaki ang ibinibigay sa akin ng aking camera at mga lumang pelikulang Sobyet. Kung ang pelikulang pinag-cutan mo ay kinunan sa ibang bilis, gamitin ang Resample Video filter.

Pangatlo, ang lahat ng mga fragment ay dapat na i-compress gamit ang parehong codec at naka-package sa parehong mga lalagyan. Samakatuwid, sa Avidemux para sa format, piliin ang video – β€œMPEG4 AVC (x264)", audio -"AAC (FAAC)", format ng output - "MP4 Muxer'.

Pang-apat, mahalagang pangalanan nang tama ang mga cut videos. Ang pangalan ng file ay dapat na binubuo ng slide number at fragment number. Ang mga fragment ay binibilang na may pantay na mga numero, simula sa 2. Kaya, para sa frame na tinatalakay, ang video na may pagkaantala ay dapat na tawagan 002-2.mp4

Matapos ang mga video ay handa na, kailangan mong ilipat ang mga ito sa direktoryo na may mga fragment. Mga setting avidemux naiiba sa mga setting ffmpeg bilang default na may mga mahiwagang parameter tbr, tbn, tbc. Hindi nila naaapektuhan ang pag-playback, ngunit hindi nila pinapayagang pagdikitin ang mga video. Kaya't i-recode natin:

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

Pagbaril ng mga screensaver

Dito rin, ang lahat ay simple: mag-shoot ka sa background ng ilang matalinong pamamaraan, ilagay ang mga resultang video sa isang catalog rec, at mula doon ilipat ito sa direktoryo na may mga fragment. Ang mga panuntunan sa pagbibigay ng pangalan ay kapareho ng para sa mga interrupt quotes, ang recoding command ay ang mga sumusunod:

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

Kung plano mong simulan ang video sa iyong pananalita, pangalanan ang fragment na ito 000-1.mp4

Paggawa ng mga frame mula sa mga static na larawan

Oras na para mag-edit ng mga video mula sa mga static na larawan at tunog. Ginagawa ito gamit ang sumusunod na script:

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

Pakitandaan na ang tagal ng audio file ay unang tinutukoy ng utility soxi, at pagkatapos ay i-edit ang video ng kinakailangang haba. Ang lahat ng mga rekomendasyong nakita ko ay mas simple: sa halip na isang bandila -t ${duration} ginagamit ang bandila -pinakamaikli. Sa totoo lang ffmpeg tinutukoy ang haba ng mp3 nang humigit-kumulang, at sa panahon ng pag-edit, ang haba ng audio track ay maaaring mag-iba nang malaki (sa isa o dalawang segundo) mula sa haba ng video track. Hindi mahalaga kung ang buong video ay binubuo ng isang frame, ngunit kapag idinikit mo ang naturang video na may mga pagkaantala sa hangganan, nangyayari ang labis na hindi kasiya-siyang mga epekto ng pagkautal.

Ang isa pang paraan upang matukoy ang tagal ng isang mp3 file ay ang paggamit mp3info. Nagkakamali rin siya, at kung minsan ffmpeg nagbibigay ng higit sa mp3info, minsan baligtad, minsan pareho silang nagsisinungaling - wala akong napansin na pattern. At dito soxi gumagana nang tama.

Upang i-install ang kapaki-pakinabang na utility na ito, gawin ito:

sudo apt-get install sox libsox-fmt-mp3

Gumagawa ng mga paglipat sa pagitan ng mga slide

Ang isang paglipat ay isang maikling video kung saan ang isang slide ay nagiging isa pa. Upang makagawa ng mga ganitong video, kumukuha kami ng mga slide nang pares at ginagamit imagemagick ibahin ang isa sa isa:

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

Para sa ilang kadahilanan gusto kong nakakalat ang slide ng mga tuldok, at pagkatapos ay ang susunod na slide ay tipunin mula sa mga tuldok, at para dito ay sumulat ako ng isang script na tinatawag na fade.pl Pagkakaroon ng imagemagick, ang isang tunay na gumagamit ng Linux ay lilikha ng anumang espesyal na epekto, ngunit kung may gusto sa aking ideya na may scattering, narito ang script:

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

Ini-mount namin ang natapos na video

Ngayon mayroon kaming lahat ng mga fragment. Pumunta sa catalog gunting at tipunin ang natapos na pelikula gamit ang dalawang utos:

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

Masiyahan sa panonood sa iyong nagpapasalamat na mga mag-aaral!

Pinagmulan: www.habr.com

Magdagdag ng komento