Darlithoedd fideo: ffordd unix

Darlithoedd fideo: ffordd unix
Mae cwarantin yn amser gwych i ddysgu rhywbeth. Fodd bynnag, fel y deallwch, er mwyn i rywun ddysgu rhywbeth, rhaid i rywun addysgu. Os oes gennych chi gyflwyniad rydych chi am ei roi i gynulleidfa o filiynau ac ennill enwogrwydd ledled y byd, yna mae'r erthygl hon ar eich cyfer chi. Yma fe welwch gyfarwyddiadau cam wrth gam ar sut i wneud fideo o'ch cyflwyniad.

Rydym yn diystyru'r llwybr o gofnodi “sylwadau sain” yn PowerPoint ac allforio'r cyflwyniad i fideo fel rhywbeth dibwys a pheidio â darparu degfed ran o'r galluoedd sydd eu hangen ar gyfer fideo gwirioneddol cŵl.

Yn gyntaf, gadewch i ni benderfynu pa fframiau sydd eu hangen arnom:

  1. Y sleidiau go iawn gyda throslais
  2. Newid sleidiau
  3. Dyfyniadau o ffilmiau poblogaidd
  4. Sawl ffrâm gydag wyneb y darlithydd a'i hoff gath (dewisol)

Creu strwythur cyfeiriadur

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

Pwrpas y cyfeiriaduron yn nhrefn rhestru: ffilmiau y byddwn yn tynnu dyfyniadau ohonynt (clipart), darnau o'n fideo yn y dyfodol (clipiau), fideos o'r camera (rec), sleidiau ar ffurf lluniau (sleid), sain (sain).

Gwneud cyflwyniad mewn lluniau

Ar gyfer defnyddiwr Linux llygaid coch go iawn, nid yw gwneud cyflwyniad ar ffurf lluniau yn peri unrhyw broblemau. Gadewch imi eich atgoffa y gellir dosrannu dogfen mewn fformat pdf yn ddelweddau gan ddefnyddio'r gorchymyn

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

Os nad oes gorchymyn o'r fath, gosodwch y pecyn eich hun poppler-utils (cyfarwyddiadau ar gyfer Ubuntu; os oes gennych Arch, yna rydych chi'n gwybod yn iawn beth i'w wneud hebof i).

Yma ac ymhellach, credaf fod y fideo wedi'i baratoi ar fformat HD Ready, h.y. 1280x720. Mae cyflwyniad gyda maint llorweddol o 10 modfedd yn rhoi'r union faint hwn wrth ddadlwytho (gweler yr opsiwn -r 128).

Paratoi'r testun

Os ydych chi eisiau gwneud deunydd gwirioneddol wych, mae angen ysgrifennu eich araith yn gyntaf. Roeddwn i hefyd yn meddwl y gallwn i siarad y testun heb baratoi, yn enwedig gan fod gen i brofiad da o ddarlithio. Ond un peth yw perfformio'n fyw, a pheth arall yw recordio fideo. Peidiwch â bod yn ddiog – bydd yr amser a dreulir yn teipio yn talu ar ei ganfed lawer gwaith drosodd.

Darlithoedd fideo: ffordd unix

Dyma fy fformat recordio. Mae'r rhif yn y teitl yn hafal i rif y sleid, mae'r ymyriadau wedi'u hamlygu mewn coch. Mae unrhyw olygydd yn addas ar gyfer paratoi, ond mae'n well cymryd prosesydd geiriau llawn - er enghraifft, OnlyOffice.

Llais dros y sleidiau

Beth alla i ddweud - trowch y meicroffon ymlaen ac ysgrifennu :)

Mae profiad yn dangos bod ansawdd y recordiad hyd yn oed o'r meicroffon allanol rhataf yn anghymharol well nag o feicroffon adeiledig gliniadur. Os ydych chi eisiau offer o safon, rwy'n ei argymell yr erthygl hon.

Ar gyfer recordio defnyddiais recordydd sain - cymhwysiad syml iawn ar gyfer recordio sain. Gallwch ei gymryd, er enghraifft, yma:

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

Y prif beth ar y cam hwn yw enwi'r ffeiliau'n gywir. Rhaid i'r enw gynnwys rhif y sleid a rhif y darn. Mae darnau wedi'u rhifo ag odrifau - 1, 3, 5, ac ati. Felly, ar gyfer y sleid, y dangosir ei destun yn y llun, bydd dwy ffeil yn cael eu creu: 002-1.mp3 и 002-3.mp3.

Os gwnaethoch chi recordio'r holl fideos ar unwaith mewn ystafell dawel, nid oes rhaid i chi wneud unrhyw beth pellach gyda nhw. Os gwnaethoch chi recordio mewn sawl cam, mae'n well cydraddoli lefel y cyfaint:

mp3gain -r *.mp3

Cyfleustodau ennill mp3 Am ryw reswm nid yw yn y storfeydd safonol, ond gallwch ei gael yma:

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

Ar ôl hyn i gyd, mae angen i chi gofnodi ffeil arall yn dawel. Mae angen ychwanegu trac sain at fideos mud: os oes gan un fideo drac sain ac nad oes gan y llall, yna mae'n anodd gludo'r fideos hyn at ei gilydd. Gellir recordio distawrwydd o feicroffon, ond mae'n well creu ffeil yn y golygydd Audacity. Dylai hyd y ffeil fod o leiaf eiliad (mae mwy yn bosibl), a dylid ei enwi distawrwydd.mp3

Paratoi fideos ymyrraeth

Yma mae popeth wedi'i gyfyngu gan eich dychymyg yn unig. Gallwch ddefnyddio golygydd i olygu fideos Avidemux. Un tro roedd yn y storfeydd safonol, ond yna am ryw reswm fe'i torrwyd allan. Ni fydd hyn yn ein rhwystro:

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

Mae yna lawer o gyfarwyddiadau ar gyfer gweithio gyda'r golygydd hwn ar y Rhyngrwyd, ac mewn egwyddor, mae popeth yn reddfol. Mae'n bwysig bodloni nifer o amodau.

Yn gyntaf, rhaid i'r datrysiad fideo gyd-fynd â'r datrysiad fideo targed. I wneud hyn, mae angen i chi ddefnyddio dwy hidlydd yn y “fideo allbwn”: swsResize i newid y penderfyniad ac “ychwanegu meysydd” i droi ffilm “fformat cul” Sofietaidd yn fformat eang. Mae pob hidlydd arall yn ddewisol. Er enghraifft, os nad yw rhywun yn deall pam fod datganiad Mr Sharikov yn y darn sy'n cael ei drafod, gan ddefnyddio'r hidlydd "ychwanegu logo", gallwch droshaenu'r logo PostgreSQL ar ben y "Dog Heart".

Yn ail, rhaid i bob darn ddefnyddio'r un gyfradd ffrâm. Rwy'n defnyddio 25 ffrâm yr eiliad oherwydd mae fy nghamera a hen ffilmiau Sofietaidd yn rhoi cymaint â hynny i mi. Os cafodd y ffilm rydych chi'n torri ohoni ei saethu ar gyflymder gwahanol, defnyddiwch yr hidlydd Fideo Ail-samplu.

Yn drydydd, rhaid cywasgu pob darn gyda'r un codec a'i becynnu yn yr un cynwysyddion. Felly yn Avidemux ar gyfer y fformat, dewiswch fideo - “CGY mpeg4 (x264)", sain -"AAC (FAAC)" , fformat allbwn - "Muxer MP4'.

Yn bedwerydd, mae'n bwysig enwi'r fideos torri yn gywir. Rhaid i enw'r ffeil gynnwys rhif y sleid a rhif y darn. Mae darnau wedi'u rhifo ag eilrifau, gan ddechrau o 2. Felly, ar gyfer y ffrâm dan sylw, dylid galw'r fideo gyda'r ymyriad 002-2.mp4

Ar ôl i'r fideos fod yn barod, mae angen i chi eu trosglwyddo i'r cyfeiriadur gyda darnau. Gosodiadau avidemux yn wahanol i leoliadau ffmpeg yn ddiofyn gyda pharamedrau dirgel tbr, tbn, tbc. Nid ydynt yn effeithio ar chwarae, ond nid ydynt yn caniatáu i'r fideos gael eu gludo gyda'i gilydd. Felly gadewch i ni ailgodio:

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

Saethu arbedwyr sgrin

Yma, hefyd, mae popeth yn syml: rydych chi'n saethu yn erbyn cefndir rhywfaint o gynllun clyfar, yn rhoi'r fideos canlyniadol mewn catalog rec, ac oddi yno trosglwyddwch ef i'r cyfeiriadur gyda darnau. Mae'r rheolau enwi yr un peth ag ar gyfer dyfyniadau ymyrraeth, mae'r gorchymyn ailgodio fel a ganlyn:

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

Os ydych chi'n bwriadu dechrau'r fideo gyda'ch araith, enwch y darn hwn 000-1.mp4

Gwneud fframiau o luniau statig

Mae'n bryd golygu fideos o ddelweddau statig a sain. Gwneir hyn gyda'r sgript ganlynol:

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

Sylwch mai'r cyfleustodau sy'n pennu hyd y ffeil sain yn gyntaf soxi, ac yna mae'r fideo o'r hyd gofynnol yn cael ei olygu. Mae'r holl argymhellion a ddarganfyddais yn symlach: yn lle baner -t ${hyd} defnyddir baner -byrraf... A dweud y gwir ffmpeg yn pennu hyd mp3 yn fras iawn, ac yn ystod y golygu, gall hyd y trac sain amrywio'n fawr (o eiliad neu ddwy) o hyd y trac fideo. Nid oes ots a yw'r fideo cyfan yn cynnwys un ffrâm, ond pan fyddwch chi'n gludo fideo o'r fath gydag ymyriadau ar y ffin, mae effeithiau atal dweud yn annymunol iawn.

Ffordd arall o bennu hyd ffeil mp3 yw defnyddio gwybodaeth mp3. Mae hi'n gwneud camgymeriadau hefyd, ac weithiau ffmpeg yn rhoi mwy na gwybodaeth mp3, weithiau fel arall, weithiau mae’r ddau yn dweud celwydd – wnes i ddim sylwi ar unrhyw batrwm. Ac yma soxi yn gweithio'n gywir.

I osod y cyfleustodau defnyddiol hwn, gwnewch hyn:

sudo apt-get install sox libsox-fmt-mp3

Trawsnewid rhwng sleidiau

Fideo byr yw trawsnewidiad lle mae un sleid yn troi'n un arall. I wneud fideos o'r fath, rydym yn cymryd sleidiau mewn parau a defnyddio delweddmagick trawsnewid un i'r llall:

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

Am ryw reswm roeddwn i eisiau i'r sleid gael ei wasgaru gyda dotiau, ac yna byddai'r sleid nesaf yn cael ei ymgynnull o'r dotiau, ac ar gyfer hyn ysgrifennais sgript o'r enw pylu.pl Cael delweddmagick, bydd defnyddiwr Linux go iawn yn creu unrhyw effaith arbennig, ond os yw rhywun yn hoffi fy syniad gyda gwasgariad, dyma'r sgript:

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

Rydyn ni'n gosod y fideo gorffenedig

Nawr mae gennym yr holl ddarnau. Ewch i'r catalog clipiau a chydosod y ffilm orffenedig gan ddefnyddio dau orchymyn:

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

Mwynhewch wylio i'ch myfyrwyr diolchgar!

Ffynhonnell: hab.com

Ychwanegu sylw