Dersên vîdyoyê: riya unix

Dersên vîdyoyê: riya unix
Quarantîn demek xweş e ku meriv tiştek fêr bibe. Lêbelê, wekî ku hûn fêm dikin, ji bo ku kesek tiştek fêr bibe, divê kesek hîn bike. Ger we pêşkêşiyek heye ku hûn dixwazin ji temaşevanek bi mîlyonan re bidin û navûdengê cîhanê bi dest bixin, wê hingê ev gotar ji bo we ye. Li vir hûn ê rêwerzên gav-bi-gav bibînin ka meriv çawa vîdyoyek ji pêşkêşiya xwe çêdike.

Em rêça tomarkirina "şîroveyên dengî" di PowerPoint-ê de û hinartina pêşkêşiyê ji vîdyoyê re wekî sivik red dikin û dehyek ji kapasîteyên ku ji bo vîdyoyek bi rastî xweş hewce ne peyda dikin.

Pêşîn, em biryar bidin ka em çi çarçewe hewce ne:

  1. Slaytên rastîn bi dengbêjiyê
  2. Guhertina slaytan
  3. Gotinên ji fîlmên populer
  4. Gelek çarçewe bi rûyê mamoste û pisîka wî ya bijare (vebijarkî)

Çêkirina avahiyek pelrêça

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

Armanca pelrêçan di rêza navnîşê de: fîlimên ku em ê jê re bêjeyan derxînin (klîp), perçeyên vîdyoya xweya pêşerojê (klîp), vîdyoyên ji kamerayê (rec), slaytên di forma wêneyan de (slide), deng (rengdan).

Di wêneyan de pêşkêşiyek çêbikin

Ji bo bikarhênerek Linux-ê çavên sor ên rastîn, çêkirina pêşandanek di forma wêneyan de ti pirsgirêk dernakeve. Bihêle ez tenê ji we re bi bîr bînim ku belgeyek bi formata pdf dikare bi karanîna fermanê di nav wêneyan de were pars kirin

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

Ger fermanek wusa tune, pakêtê bixwe saz bikin poppler-utils (telîmatên ji bo Ubuntu; heke we Arch hebe, wê hingê hûn baş dizanin bê min çi bikin).

Li vir û pê de, ez bawer dikim ku vîdyo di formata HD Ready, ango 1280x720 de hatî amadekirin. Pêşandanek bi mezinahiya horizontî ya 10 înç dema bê barkirin tam vê mezinahiyê dide (li vebijarka -r 128 binêre).

Amadekirina nivîsê

Heke hûn dixwazin bi rastî materyalek mezin çêbikin, divê axaftina we pêşî were nivîsandin. Min jî difikirî ku ez dikarim nivîsê bêyî amadekarî biaxivim, nemaze ji ber ku ezmûnek min a baş di dersdayînê de heye. Lê ew yek tiştek e ku meriv zindî bimeşîne, û tiştek din tomarkirina vîdyoyek. Tembîl nebin - wextê ku ji nivîsandinê derbas dibe dê gelek caran bide.

Dersên vîdyoyê: riya unix

Li vir formata tomarkirina min e. Hejmara di sernavê de bi jimareya slaytê re wekhev e, navber bi sor têne xuyang kirin. Her edîtorek ji bo amadekirinê maqûl e, lê çêtir e ku meriv pêvajoyek peyvê ya bêkêmasî bigire - mînakî, OnlyOffice.

Deng li ser slaytan

Ez dikarim çi bibêjim - mîkrofonê veke û binivîse :)

Ezmûn destnîşan dike ku qalîteya tomarkirinê ji mîkrofona derveyî ya herî erzan jî ji mîkrofona lêvekirî ya laptopê bê hempa çêtir e. Ger hûn alavên kalîteyê dixwazin, ez wê pêşniyar dikim vê gotarê.

Ji bo tomarkirinê min bikar anî deng-tomar - serîlêdanek pir hêsan ji bo tomarkirina deng. Hûn dikarin wê bigirin, wek nimûne, li vir:

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

Di vê gavê de tişta sereke ew e ku pelan rast bi nav bikin. Nav divê ji jimareya slide û hejmara perçeyê pêk were. Fragment bi hejmarên xerîb têne jimartin - 1, 3, 5, hwd. Ji ber vê yekê, ji bo slideya ku nivîsa wê di wêneyê de tê xuyang kirin, dê du pel werin çêkirin: 002-1.mp3 и 002-3.mp3.

Ger we hemî vîdyoyan bi yekcarî li jûreyek bêdeng tomar kir, ne hewce ye ku hûn bi wan re tiştek din bikin. Ger we di çend gavan de tomar kir, çêtir e ku hûn asta dengdanê wekhev bikin:

mp3gain -r *.mp3

Xizmetên mp3gain Ji ber hin sedeman ew ne di depoyên standard de ye, lê hûn dikarin li vir bistînin:

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

Piştî vê yekê, hûn hewce ne ku pelek din bi bêdengiyê tomar bikin. Pêdivî ye ku meriv şopek deng li vîdyoyên bêdeng zêde bike: heke vîdyoyek şopek deng hebe û ya din tune be, wê hingê zehmet e ku van vîdyoyan bi hev ve girêdin. Bêdengî dikare ji mîkrofonek were tomar kirin, lê çêtir e ku meriv pelek di edîtorê de biafirîne Audacity. Dirêjahiya pelê divê herî kêm saniyeyek be (zêdetir mimkun e), û divê ew were nav kirin bêdengî.mp3

Amadekirina vîdyoyên astengkirinê

Li vir her tişt tenê ji hêla xeyala we ve sînorkirî ye. Hûn dikarin edîtorek bikar bînin ku vîdyoyan biguherînin Avidemux. Carekê ew di depoyên standard de bû, lê dûv re ji ber hin sedeman hate qut kirin. Ev ê me nehêle:

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

Li ser Înternetê ji bo xebata bi vê edîtorê re gelek rêwerz hene, û di prensîbê de, her tişt li wir têgihîştî ye. Girîng e ku meriv çend şertan bicîh bîne.

Pêşîn, çareseriya vîdyoyê divê bi çareseriya vîdyoya armancê re hevber bike. Ji bo kirina vê yekê, hûn hewce ne ku di "vîdyoya derketinê" de du fîlteran bikar bînin: swsResize ji bo guheztina çareseriyê û "zêdekirina zeviyan" da ku fîlimek "forma teng" a Sovyetê veguhezîne formatek berfireh. Hemî fîlterên din vebijarkî ne. Mînakî, heke kesek fêm neke çima gotina birêz Sharikov di perçeya nîqaşê de ye, parzûna "lê zêde bike logo" bikar tîne, hûn dikarin logoya PostgreSQL li ser "Dilê Kûçik" bixin.

Ya duyemîn, divê hemî perçe heman rêjeya çarçoveyê bikar bînin. Ez di çirkeyê de 25 çarçove bikar tînim ji ber ku kameraya min û fîlimên kevn ên Sovyetê ewqasî didin min. Ger fîlima ku hûn jê qut dikin bi lezek cûda hate kişandin, Parzûna Resample Video bikar bînin.

Ya sêyemîn, pêdivî ye ku hemî perçe bi heman kodek ve bêne kom kirin û di heman konteyneran de bêne pak kirin. Ji ber vê yekê di Avidemux ji bo formatê, vîdyoyê hilbijêrin - "MPEG4 AVC (x264)", deng -"AAC (FAAC)", formata derketinê -"MP4 Muxer".

Ya çaremîn, girîng e ku meriv vîdyoyên qutkirî rast bi nav bike. Navê pelê divê ji jimareya slide û hejmara perçeyê pêk were. Parçeyên bi jimareyên zewacê têne jimartin, ji 2-yê dest pê dikin. Ji ber vê yekê, ji bo çarçoweya ku li ser nîqaşê ye, divê vîdyoya bi qutkirî were gotin. 002-2.mp4

Piştî ku vîdyoyan amade bûn, hûn hewce ne ku wan bi perçeyan veguhezînin pelrêça. Settings avidemux ji mîhengan cuda dibe ffmpeg bi xweber bi parametreyên nepenî tbr, tbn, tbc. Ew bandorê li lêxistinê nakin, lê ew nahêlin ku vîdyoyan bi hev ve werin girêdan. Ji ber vê yekê em ji nû ve kod bikin:

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

Screensavers gulebaranê

Li vir jî, her tişt hêsan e: hûn li hember paşnavê hin plansaziyek aqilmend gulebaran dikin, vîdyoyên encam di katalogê de bi cih dikin. bistînin, û ji wir wê bi perçeyan veguhezîne pelrêça. Rêbazên navkirinê wekî ji bo navdêrên navberê ne, fermana ji nû ve kodkirinê wiha ye:

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

Ger hûn plan dikin ku vîdyoyê bi axaftina xwe dest pê bikin, navê vê parçeyê bidin 000-1.mp4

Çêkirina çarçeweyan ji wêneyên statîk

Wext e ku meriv vîdyoyên ji wêne û dengê statîk biguhezîne. Ev bi skrîpta jêrîn pêk tê:

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

Ji kerema xwe bala xwe bidin ku dirêjahiya pelê deng yekem ji hêla amûreyê ve tê destnîşankirin soxi, û paşê vîdyoya dirêjahiya pêwîst tê guherandin. Hemî pêşniyarên ku min dîtin hêsantir in: li şûna ala -t ${duration} ala tê bikaranîn -kurttirîn. Di rastî ffmpeg dirêjahiya mp3-ê pir bi qasî diyar dike, û di dema sererastkirinê de, dirêjahiya şopa dengî dikare ji dirêjahiya şopa vîdyoyê pir (yek an du çirkeyan) cûda bibe. Ev ne girîng e ku tevahiya vîdyoyê ji çarçoveyek yekane pêk tê, lê gava ku hûn vîdyoyek weha bi navberên li ser sînor ve zeliqînin, bandorên stûyê zehf ne xweş çêdibin.

Rêyek din ji bo destnîşankirina dirêjahiya pelê mp3 ev e ku meriv bikar bîne mp3info. Ew jî xeletiyan dike, û carinan ffmpeg bêtir dide mp3info, carinan berevajî ye, carinan ew her du jî derewan dikin - min guh neda tu nimûne. Û vir soxi rast dixebite.

Ji bo sazkirina vê amûra kêrhatî, vê yekê bikin:

sudo apt-get install sox libsox-fmt-mp3

Çêkirina veguherînan di navbera slaytan de

Veguheztin vîdyoyek kurt e ku tê de yek slayd vediguhere yekî din. Ji bo çêkirina vîdeoyên weha, em slaytan bi cot û bi kar tînin imagemagick yekî veguherîne yê din:

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

Ji ber hin sedeman min dixwest ku slayd bi xalan belav bibe, û dûv re slideya din dê ji xalan were berhev kirin, û ji bo vê yekê min senaryoyek bi navê fade.pl Hebûn imagemagick, bikarhênerek rastîn a Linux dê bandorek taybetî biafirîne, lê heke kesek ji ramana min bi belavbûnê hez bike, li vir nivîsar e:

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

Em vîdyoya qediyayî siwar dikin

Niha hemû perçeyên me hene. Biçe katalogê clips û fîlima qediyayî bi karanîna du fermanan berhev bikin:

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

Ji temaşekirina xwendekarên xwe yên spasdar re kêfxweş bibin!

Source: www.habr.com

Add a comment