Video mühazirələr: unix yolu

Video mühazirələr: unix yolu
Karantin nəyisə öyrənmək üçün gözəl vaxtdır. Ancaq başa düşdüyünüz kimi, kiminsə nəyisə öyrənməsi üçün kimsə öyrətməlidir. Əgər milyonlarla auditoriyaya təqdim etmək və dünya şöhrəti qazanmaq istədiyiniz təqdimatınız varsa, bu məqalə sizin üçündür. Burada təqdimatınızdan video hazırlamaq üçün addım-addım təlimatları tapa bilərsiniz.

PowerPoint-də “audio şərhləri” qeyd etmək və təqdimatı videoya ixrac etmək yollarını əhəmiyyətsiz hesab edirik və həqiqətən gözəl video üçün lazım olan imkanların onda birini təmin etmirik.

Əvvəlcə hansı çərçivələrə ehtiyacımız olduğuna qərar verək:

  1. Səsli slaydlar
  2. Slaydların dəyişdirilməsi
  3. Məşhur filmlərdən sitatlar
  4. Müəllimin üzü və sevimli pişiyi olan bir neçə çərçivə (isteğe bağlı)

Kataloq strukturunun yaradılması

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

Siyahı sırasına görə qovluqların məqsədi: sitatları çəkəcəyimiz filmlər (klipart), gələcək videomuzdan fraqmentlər (kliplər), kameradan videolar (rec), şəkil şəklində slaydlar (slayd), səs (səs).

Şəkillərdə təqdimat hazırlamaq

Əsl qırmızı gözlü Linux istifadəçisi üçün şəkil şəklində təqdimat etmək heç bir problem yaratmır. Nəzərinizə çatdırım ki, pdf formatında olan sənədi əmrdən istifadə edərək şəkillərə ayırmaq olar

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

Əgər belə bir əmr yoxdursa, paketi özünüz quraşdırın poppler-util (Ubuntu üçün təlimat; əgər sizdə Arch varsa, mənsiz nə edəcəyinizi çox yaxşı bilirsiniz).

Burada və daha sonra videonun HD Ready formatında, yəni 1280x720 formatında hazırlandığına inanıram. Üfüqi ölçüsü 10 düym olan təqdimat boşaldıqda tam olaraq bu ölçüsü verir (-r 128 parametrinə baxın).

Mətnin hazırlanması

Əgər həqiqətən əla material hazırlamaq istəyirsinizsə, ilk növbədə çıxışınız yazılmalıdır. Mən də fikirləşdim ki, mətni hazırlıqsız danışa bilərəm, xüsusən də mühazirə oxumaqda yaxşı təcrübəm var. Ancaq canlı ifa etmək bir şeydir, video çəkmək başqa şeydir. Tənbəl olmayın - yazmağa sərf olunan vaxt dəfələrlə öz bəhrəsini verəcəkdir.

Video mühazirələr: unix yolu

Budur mənim qeyd formatım. Başlıqdakı nömrə slayd nömrəsinə bərabərdir, fasilələr qırmızı rənglə vurğulanır. Hər hansı bir redaktor hazırlıq üçün uyğundur, lakin tam hüquqlu bir söz prosessorunu götürmək daha yaxşıdır - məsələn, YalnızOffice.

Slaydlar üzərində səs

Nə deyə bilərəm - mikrofonu yandırın və yazın :)

Təcrübə göstərir ki, hətta ən ucuz xarici mikrofondan səsyazma keyfiyyəti noutbukun daxili mikrofonu ilə müqayisədə müqayisə olunmaz dərəcədə yaxşıdır. Keyfiyyətli avadanlıq istəyirsinizsə, məsləhət görürəm Bu məqalə burada.

Mən qeyd etmək üçün istifadə etdim səs yazıcı – səs yazmaq üçün çox sadə proqram. Məsələn, burada götürə bilərsiniz:

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

Bu addımda əsas şey faylları düzgün adlandırmaqdır. Ad slayd nömrəsi və fraqment nömrəsindən ibarət olmalıdır. Fraqmentlər tək rəqəmlərlə nömrələnir - 1, 3, 5 və s. Beləliklə, mətni şəkildə göstərilən slayd üçün iki fayl yaradılacaq: 002-1.mp3 и 002-3.mp3.

Bütün videoları birdən-birə sakit bir otaqda qeyd etmisinizsə, onlarla daha heç nə etmək lazım deyil. Bir neçə addımda qeyd etmisinizsə, səs səviyyəsini bərabərləşdirmək daha yaxşıdır:

mp3gain -r *.mp3

Kommunal xidmətlər mp3 qazanc Nədənsə standart depolarda deyil, ancaq buradan əldə edə bilərsiniz:

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

Bütün bunlardan sonra başqa bir faylı sükutla qeyd etməlisiniz. Səssiz videolara səs treki əlavə etmək lazımdır: əgər bir videoda səs treki varsa, digərində yoxdursa, bu videoları bir-birinə yapışdırmaq çətindir. Səssizliyi mikrofondan yazmaq olar, lakin redaktorda fayl yaratmaq daha yaxşıdır Hünər. Fayl uzunluğu ən azı bir saniyə olmalıdır (daha çox mümkündür) və ona ad verilməlidir səssizlik.mp3

Fasilə videolarının hazırlanması

Burada hər şey yalnız təsəvvürünüzlə məhdudlaşır. Videoları redaktə etmək üçün redaktordan istifadə edə bilərsiniz Avidemux. Bir vaxtlar standart depolarda idi, amma sonra nədənsə kəsildi. Bu bizə mane olmayacaq:

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

İnternetdə bu redaktorla işləmək üçün çoxlu təlimatlar var və prinsipcə orada hər şey intuitivdir. Bir neçə şərtə əməl etmək vacibdir.

Birincisi, videonun həlli hədəf video qətnaməsinə uyğun olmalıdır. Bunun üçün “çıxış videosu”nda iki filtrdən istifadə etməlisiniz: qətnaməni dəyişdirmək üçün swsResize və sovet “dar formatlı” filmini geniş formata çevirmək üçün “sahələrin əlavə edilməsi”. Bütün digər filtrlər isteğe bağlıdır. Məsələn, kimsə cənab Şarikovun ifadəsinin müzakirə olunan fraqmentdə niyə yer aldığını başa düşmürsə, “loqo əlavə et” filtrindən istifadə edərək, PostgreSQL loqosunu “İt Ürəyi”nin üstünə qoya bilərsiniz.

İkincisi, bütün fraqmentlər eyni kadr sürətindən istifadə etməlidir. Mən saniyədə 25 kadrdan istifadə edirəm, çünki kameram və köhnə sovet filmləri mənə bu qədər verir. Əgər kəsdiyiniz film fərqli sürətlə çəkilibsə, Yenidən Nümunə Video filtrindən istifadə edin.

Üçüncüsü, bütün fraqmentlər eyni kodek ilə sıxılmalı və eyni qablarda qablaşdırılmalıdır. Buna görə də in Avidemux format üçün videonu seçin – “MPEG4 AVC (x264)", audio - "AAC (FAAC)", çıxış formatı - "MP4 qarışdırıcı.

Dördüncüsü, kəsilmiş videoları düzgün adlandırmaq vacibdir. Fayl adı slayd nömrəsi və fraqment nömrəsindən ibarət olmalıdır. Fraqmentlər 2-dən başlayaraq cüt rəqəmlərlə nömrələnir. Beləliklə, müzakirə olunan kadr üçün kəsilməli video adlandırılmalıdır. 002-2.mp4

Videolar hazır olduqdan sonra onları fraqmentlərlə kataloqa köçürmək lazımdır. Parametrlər avidemux parametrlərdən fərqlənir ffmpeg tbr, tbn, tbc sirli parametrləri ilə default olaraq. Onlar oynatmaya təsir etmir, lakin videoların bir-birinə yapışdırılmasına icazə vermirlər. Beləliklə, yenidən kodlayaq:

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

Ekran qoruyucularının çəkilişi

Burada da hər şey sadədir: siz hansısa ağıllı sxemin fonunda çəkirsiniz, nəticədə əldə olunan videoları kataloqa yerləşdirirsiniz. tövsiyələr, və oradan onu fraqmentlərlə kataloqa köçürün. Adlandırma qaydaları kəsmə sitatları ilə eynidir, yenidən kodlaşdırma əmri aşağıdakı kimidir:

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

Əgər videoya öz çıxışınızla başlamağı planlaşdırırsınızsa, bu fraqmentə ad verin 000-1.mp4

Statik şəkillərdən çərçivələrin hazırlanması

Statik şəkillərdən və səslərdən videoları redaktə etməyin vaxtıdır. Bu, aşağıdakı skript ilə edilir:

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

Nəzərə alın ki, audio faylın müddəti əvvəlcə yardım proqramı tərəfindən müəyyən edilir soxi, və sonra tələb olunan uzunluqdakı video redaktə edilir. Tapdığım bütün tövsiyələr daha sadədir: bayraq əvəzinə -t ${duration} bayraqdan istifadə olunur - ən qısa... Əslində ffmpeg mp3 uzunluğunu çox təqribən müəyyən edir və redaktə zamanı audio trekin uzunluğu video trekin uzunluğundan çox (bir və ya iki saniyə) fərqlənə bilər. Bütün videonun tək bir çərçivədən ibarət olmasının əhəmiyyəti yoxdur, ancaq belə bir videonu sərhəddə fasilələrlə yapışdırdığınız zaman son dərəcə xoşagəlməz kəkələmə effektləri yaranır.

mp3 faylın müddətini təyin etməyin başqa bir yolu istifadə etməkdir mp3 məlumat. O da səhv edir və bəzən ffmpeg -dən çox verir mp3 məlumat, bəzən əksinə olur, bəzən ikisi də yalan danışır – mən heç bir nümunə görmədim. Və burada soxi düzgün işləyir.

Bu faydalı proqramı quraşdırmaq üçün bunu edin:

sudo apt-get install sox libsox-fmt-mp3

Slaydlar arasında keçidlərin edilməsi

Keçid bir slaydın digərinə çevrildiyi qısa bir videodur. Bu cür videolar hazırlamaq üçün biz slaydları cüt-cüt götürürük və istifadə edirik ImageMagick birini digərinə çevirmək:

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

Nədənsə slaydın nöqtələrlə səpələnməsini, sonra növbəti slaydın nöqtələrdən yığılmasını istədim və bunun üçün adlı skript yazdım. fade.pl Sahib olmaq ImageMagick, əsl Linux istifadəçisi hər hansı xüsusi effekt yaradacaq, lakin kimsə mənim ideyamı səpilmə ilə bəyənirsə, bu skript:

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

Hazır videonu quraşdırırıq

İndi bütün fraqmentlərimiz var. Kataloqa keçin kliplər və iki əmrdən istifadə edərək hazır filmi yığın:

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

Minnətdar tələbələrinizi izləməkdən həzz alın!

Mənbə: www.habr.com

Добавить комментарий