Видео лекц: unix арга

Видео лекц: unix арга
Хорио цээрийн үе бол ямар нэгэн зүйлийг сурах сайхан цаг юм. Гэсэн хэдий ч таны ойлгож байгаагаар хэн нэгэн зүйл сурахын тулд хэн нэгэн хүн зааж өгөх ёстой. Хэрэв танд сая сая үзэгчдэд хүргэж, дэлхий даяар алдар нэрийг олж авахыг хүсч буй илтгэл байгаа бол энэ нийтлэл танд зориулагдсан болно. Эндээс та танилцуулгаасаа видео хэрхэн хийх талаар алхам алхмаар зааварчилгааг олох болно.

Бид PowerPoint дээр "аудио тайлбар" бичиж, үзүүлэнг видео руу экспортлохыг үл тоомсорлож, үнэхээр гайхалтай видео хийхэд шаардагдах аравны нэгийг хангадаггүй.

Эхлээд бидэнд ямар хүрээ хэрэгтэйг шийдье.

  1. Дуу хоолойтой бодит слайдууд
  2. слайдын өөрчлөлт
  3. Алдартай кинонуудын эшлэлүүд
  4. Багшийн царай болон түүний дуртай мууртай хэд хэдэн жааз (заавал биш)

Лавлах бүтцийг бий болгох

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

Жагсаалтын дарааллаар лавлахуудын зорилго: ишлэл авах кинонууд (клипт), ирээдүйн видео бичлэгийн хэсгүүд (клипүүд), камерын видеонууд (rec), зураг хэлбэрээр слайдууд (слайд), дуу чимээ. (дуу чимээ).

Зураг дээр танилцуулга хийх

Жинхэнэ улаан нүдтэй Линукс хэрэглэгчдийн хувьд зураг хэлбэрээр танилцуулга хийх нь ямар ч асуудал үүсгэдэггүй. Энэ тушаалыг ашиглан pdf форматтай баримтыг зураг болгон задлан шинжилж болно гэдгийг сануулъя

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

Хэрэв ийм тушаал байхгүй бол багцыг өөрөө суулгана уу poppler-utils (Ubuntu-д зориулсан заавар; хэрэв танд Arch байгаа бол надгүйгээр юу хийхээ маш сайн мэднэ).

Энд, цаашлаад видеог HD Ready форматаар, өөрөөр хэлбэл 1280x720 форматаар бэлтгэсэн гэдэгт би итгэж байна. 10 инчийн хэвтээ хэмжээтэй танилцуулга нь буулгах үед яг ийм хэмжээг өгдөг (-r 128 сонголтыг үзнэ үү).

Текстийг бэлтгэж байна

Хэрэв та үнэхээр гайхалтай материал хийхийг хүсч байгаа бол таны илтгэлийг эхлээд бичих хэрэгтэй. Тэр тусмаа лекц уншиж байсан туршлагатай болохоороо ч бэлтгэлгүйгээр зохиолоо ярьж чадна гэж бодсон. Гэхдээ амьд тоглолт хийх нэг хэрэг, видео бичлэг хийх өөр хэрэг. Битгий залхуу - бичихэд зарцуулсан хугацаа олон дахин үр дүнгээ өгөх болно.

Видео лекц: unix арга

Энд миний бичлэгийн формат байна. Гарчиг дахь тоо нь слайдын дугаартай тэнцүү бөгөөд тасалдлыг улаанаар тодруулсан болно. Аливаа редактор бэлтгэхэд тохиромжтой, гэхдээ бүрэн хэмжээний текст процессор авах нь дээр - жишээлбэл, ЗөвхөнOffice.

Слайд дээр дуу хоолойгоо хүргэх

Би юу хэлэх вэ - микрофоноо асаагаад бичээрэй :)

Туршлагаас харахад хамгийн хямд гадаад микрофоноос бичлэг хийх чанар нь зөөврийн компьютерт суурилуулсан микрофонтой харьцуулшгүй сайн байдаг. Хэрэв та чанартай тоног төхөөрөмж авахыг хүсч байвал би үүнийг санал болгож байна энэ нийтлэл.

Би бичлэг хийхэд ашигласан аудио бичигч – дуу бичлэг хийх маш энгийн програм. Та жишээ нь эндээс авч болно:

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

Энэ алхамын гол зүйл бол файлуудыг зөв нэрлэх явдал юм. Нэр нь слайдын дугаар болон фрагментийн дугаараас бүрдэх ёстой. Хэсэг хэсгүүдийг сондгой тоогоор дугаарласан - 1, 3, 5 гэх мэт. Тиймээс зурган дээр текстийг харуулсан слайдын хувьд хоёр файл үүсгэгдэнэ: 002-1.mp3 и 002-3.mp3.

Хэрэв та бүх видеог чимээгүй өрөөнд нэгэн зэрэг бичсэн бол тэдэнтэй цаашид юу ч хийх шаардлагагүй. Хэрэв та хэд хэдэн алхамаар бичлэг хийсэн бол дууны түвшинг тэнцүүлэх нь дээр.

mp3gain -r *.mp3

Хэрэглээний хэрэгслүүд mp3 ашиг олох Зарим шалтгааны улмаас энэ нь стандарт хадгалах газарт байдаггүй, гэхдээ та эндээс авч болно:

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

Энэ бүхний дараа та өөр файлыг чимээгүй бичих хэрэгтэй. Чимээгүй видеонуудад дууны зам нэмэх шаардлагатай: хэрэв нэг видео нь дууны замтай, нөгөө нь байхгүй бол эдгээр видеог хооронд нь нааж хийхэд хэцүү байдаг. Чимээгүй байдлыг микрофоноос бичиж болно, гэхдээ редактор дээр файл үүсгэх нь дээр Audacity. Файлын урт нь дор хаяж секунд байх ёстой (илүү их боломжтой) бөгөөд үүнийг нэрлэсэн байх ёстой чимээгүй.mp3

Тасалдлын видео бэлтгэж байна

Энд бүх зүйл зөвхөн таны төсөөллөөр хязгаарлагддаг. Та видео засварлахдаа засварлагч ашиглаж болно Avidemux. Нэгэн цагт энэ нь стандарт хадгалах газарт байсан боловч дараа нь ямар нэг шалтгаанаар хасагдсан. Энэ нь биднийг зогсоохгүй:

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

Интернет дээр энэ редактортой ажиллах олон заавар байдаг бөгөөд зарчмын хувьд бүх зүйл зөн совинтой байдаг. Хэд хэдэн нөхцлийг хангах нь чухал юм.

Нэгдүгээрт, видеоны нягтрал нь зорилтот видеоны нягтралтай тохирч байх ёстой. Үүнийг хийхийн тулд та "гаралтын видео" хэсэгт хоёр шүүлтүүр ашиглах хэрэгтэй: нягтралыг өөрчлөхийн тулд swsResize, Зөвлөлтийн "нарийн форматтай" киног өргөн форматтай болгохын тулд "талбар нэмэх". Бусад бүх шүүлтүүрүүд нь сонголттой. Жишээлбэл, хэн нэгэн хүн ноён Шариковын хэлсэн үг яагаад яригдаж буй хэсэгт байгааг ойлгохгүй байгаа бол "лого нэмэх" шүүлтүүрийг ашиглан "Нохойн зүрх" дээр PostgreSQL логог давхарлаж болно.

Хоёрдугаарт, бүх фрагментүүд ижил хүрээний хурдыг ашиглах ёстой. Миний камер, хуучин Зөвлөлтийн кино надад ийм их зүйлийг өгдөг учраас би секундэд 25 кадр ашигладаг. Хэрэв таны авах гэж буй киног өөр хурдаар авсан бол Resample Video шүүлтүүрийг ашиглана уу.

Гуравдугаарт, бүх хэсгүүдийг ижил кодлогчоор шахаж, нэг саванд савлах ёстой. Тиймээс in Avidemux форматын хувьд видеог сонгоно уу - "MPEG4 AVC (x264)", аудио - "AAC (FAAC)", гаралтын формат - "MP4 Муксер".

Дөрөвдүгээрт, тайрсан видеог зөв нэрлэх нь чухал. Файлын нэр нь слайдын дугаар болон фрагментийн дугаараас бүрдэх ёстой. Хэсэг хэсгүүдийг 2-оос эхлэн тэгш тоогоор дугаарлана. Тиймээс хэлэлцэж буй фрэймийн хувьд тасалдалтай видеог дуудах хэрэгтэй. 002-2.mp4

Видеонууд бэлэн болсны дараа тэдгээрийг фрагмент бүхий лавлах руу шилжүүлэх хэрэгтэй. Тохиргоо avidemux тохиргооноос ялгаатай ffmpeg анхдагчаар tbr, tbn, tbc нууцлаг параметрүүдтэй. Тэд тоглуулахад нөлөөлөхгүй ч видеог хооронд нь нааж болохгүй. Тиймээс дахин кодчилъё:

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

Дэлгэц амраагч зураг авалт

Энд бас бүх зүйл энгийн байдаг: та ямар нэгэн ухаалаг схемийн арын дэвсгэр дээр зураг авалт хийж, үүссэн видеог каталогт байрлуулна. rec, тэндээс фрагмент бүхий лавлах руу шилжүүлнэ. Нэрлэх дүрмүүд нь тасалдлын ишлэлүүдтэй адил бөгөөд дахин кодлох тушаал нь дараах байдалтай байна.

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

Хэрэв та видеог өөрийн яриагаар эхлүүлэхээр төлөвлөж байгаа бол энэ хэсгийг нэрлээрэй 000-1.mp4

Статик зургаас хүрээ хийх

Статик зураг, дуунаас видеог засах цаг болжээ. Үүнийг дараах скриптээр гүйцэтгэнэ.

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

Аудио файлын үргэлжлэх хугацааг эхлээд хэрэглүүр тодорхойлно гэдгийг анхаарна уу сокси, дараа нь шаардлагатай урттай видеог засварлана. Миний олсон бүх зөвлөмжүүд илүү энгийн: тугны оронд -t ${үргэлжлэх хугацаа} туг ашиглаж байна -хамгийн богино. Үнэндээ ffmpeg mp3-ийн уртыг ойролцоогоор тодорхойлдог бөгөөд засварлах явцад аудио замын урт нь видео бичлэгийн уртаас ихээхэн ялгаатай (нэг эсвэл хоёр секунд) байж болно. Энэ нь бүхэл бүтэн видео нь нэг кадраас бүрдэх нь хамаагүй, гэхдээ та ийм видеог хил дээр тасалдалтай нааж байх үед маш тааламжгүй гацах нөлөө гарч ирдэг.

Mp3 файлын үргэлжлэх хугацааг тодорхойлох өөр нэг арга бол ашиглах явдал юм mp3 мэдээлэл. Тэр ч бас алдаа гаргадаг, заримдаа ffmpeg -аас илүүг өгдөг mp3 мэдээлэл, заримдаа энэ нь эсрэгээрээ, заримдаа хоёулаа худал хэлдэг - би ямар ч хэв маягийг анзаарсангүй. Бас энд сокси зөв ажилладаг.

Энэхүү ашигтай хэрэгслийг суулгахын тулд дараах зүйлийг хийнэ үү.

sudo apt-get install sox libsox-fmt-mp3

Слайдуудын хооронд шилжилт хийх

Шилжилт гэдэг нь нэг слайд нөгөө слайд болж хувирдаг богино хэмжээний видео юм. Ийм видео бичлэг хийхийн тулд бид слайдыг хосоор нь авч, ашигладаг imagemagick нэгийг нөгөө рүү хувиргах:

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

Яагаад ч юм би слайдыг цэгүүдээр тарааж, дараа нь дараагийн слайдыг цэгүүдээс угсарахыг хүссэн бөгөөд үүний тулд би скрипт бичсэн. fade.pl Байна imagemagick, Жинхэнэ Линукс хэрэглэгч ямар нэгэн онцгой эффект үүсгэх болно, гэхдээ хэн нэгэн миний санааг тараах дуртай бол скрипт нь энд байна:

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

Бид дууссан видеог холбодог

Одоо бидэнд бүх хэлтэрхийнүүд байна. Каталог руу очно уу клип хоёр тушаалыг ашиглан бэлэн хальсыг угсарна:

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

Талархсан оюутнуудаа үзэхийг сайхан өнгөрүүлээрэй!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх