Տեսադասախոսություններ՝ unix way

Տեսադասախոսություններ՝ unix way
Կարանտինը հրաշալի ժամանակ է ինչ-որ բան սովորելու համար։ Սակայն, ինչպես հասկանում եք, որպեսզի ինչ-որ մեկը ինչ-որ բան սովորի, ինչ-որ մեկը պետք է սովորեցնի։ Եթե ​​ունեք շնորհանդես, որը ցանկանում եք ներկայացնել միլիոնավոր լսարանին և ձեռք բերել համաշխարհային համբավ, ապա այս հոդվածը ձեզ համար է: Այստեղ դուք կգտնեք քայլ առ քայլ հրահանգներ, թե ինչպես կարելի է տեսանյութ պատրաստել ձեր ներկայացումից:

Մենք մերժում ենք PowerPoint-ում «աուդիո մեկնաբանությունները» ձայնագրելու և ներկայացումը տեսանյութ արտահանելու ուղին որպես չնչին և չտրամադրելով իսկապես հիանալի տեսանյութի համար անհրաժեշտ հնարավորությունների տասներորդը:

Նախ, եկեք որոշենք, թե ինչ շրջանակներ են մեզ անհրաժեշտ.

  1. Փաստացի սլայդները ձայնային ձայնով
  2. Սլայդների փոփոխություն
  3. Մեջբերումներ հայտնի ֆիլմերից
  4. Դասախոսի դեմքով և նրա սիրելի կատվի մի քանի կադրեր (ըստ ցանկության)

Գրացուցակի կառուցվածքի ստեղծում

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

Գրացուցակների նպատակը ըստ ցուցակման. ֆիլմեր, որոնցից մենք կհանենք մեջբերումներ (կլիպարտ), մեր ապագա տեսահոլովակի հատվածներ (հոլովակներ), տեսախցիկից տեսանյութեր (rec), սլայդներ նկարների տեսքով (սլայդ), ձայն: (ձայն):

Ներկայացում նկարներով

Իսկական կարմիր աչքերով Linux օգտագործողի համար նկարների տեսքով պրեզենտացիա անելը որևէ խնդիր չի ներկայացնում։ Պարզապես հիշեցնեմ, որ pdf ձևաչափով փաստաթուղթը կարող է վերլուծվել պատկերների՝ օգտագործելով հրամանը

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

Եթե ​​նման հրաման չկա, փաթեթը տեղադրեք ինքներդ փոշի-բերան (հրահանգներ Ubuntu-ի համար. եթե ունեք Arch, ապա դուք հիանալի գիտեք, թե ինչ անել առանց ինձ):

Այստեղ և հետագա, կարծում եմ, որ տեսանյութը պատրաստված է HD Ready ձևաչափով, այսինքն՝ 1280x720: 10 դյույմ հորիզոնական չափով ներկայացումը բեռնաթափման ժամանակ տալիս է հենց այս չափը (տես -r 128 տարբերակը):

Տեքստի պատրաստում

Եթե ​​ցանկանում եք իսկապես հիանալի նյութ պատրաստել, ձեր խոսքը նախ պետք է գրվի: Մտածում էի նաև, որ կարող եմ առանց պատրաստվելու տեքստը խոսել, մանավանդ որ դասախոսելու լավ փորձ ունեմ։ Բայց մի բան է կենդանի ելույթ ունենալը, և մեկ այլ բան՝ տեսահոլովակ ձայնագրելը: Մի ծույլ մի եղեք. մուտքագրելու համար ծախսված ժամանակը շատ անգամ կվճարի:

Տեսադասախոսություններ՝ unix way

Ահա իմ ձայնագրման ձևաչափը. Վերնագրում նշված թիվը հավասար է սլայդի համարին, ընդհատումները ընդգծված են կարմիրով: Ցանկացած խմբագիր հարմար է պատրաստման համար, բայց ավելի լավ է վերցնել ամբողջական բառապաշար, օրինակ. Միայն գրասենյակ.

Ձայնը սլայդների վրա

Ինչ ասեմ՝ միացրու խոսափողը գրի :)

Փորձը ցույց է տալիս, որ նույնիսկ ամենաէժան արտաքին խոսափողից ձայնագրման որակն անհամեմատ ավելի լավն է, քան նոութբուքի ներկառուցված խոսափողը։ Եթե ​​ցանկանում եք որակյալ սարքավորում, խորհուրդ եմ տալիս այս հոդվածը.

Ձայնագրման համար օգտագործել եմ աուդիո-ձայնագրիչ - շատ պարզ ծրագիր ձայնագրման համար: Դուք կարող եք վերցնել այն, օրինակ, այստեղ.

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

Այսքանից հետո պետք է լռությամբ մեկ այլ ֆայլ ձայնագրել։ Անխոս տեսանյութերին անհրաժեշտ է ավելացնել ձայնային հետքը. եթե մի տեսահոլովակն ունի ձայնային թրեք, իսկ մյուսը՝ ոչ, ապա դժվար է սոսնձել այս տեսանյութերը։ Լռությունը կարելի է ձայնագրել խոսափողից, բայց ավելի լավ է ֆայլ ստեղծել խմբագրիչում Լկտիություն. Ֆայլի երկարությունը պետք է լինի առնվազն մեկ վայրկյան (հնարավոր է ավելին), և այն պետք է անվանվի լռություն.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 զտիչը:

Երրորդ, բոլոր բեկորները պետք է սեղմվեն նույն կոդեկով և փաթեթավորվեն նույն տարաներում: Հետևաբար ներս Avidemux- ը ձևաչափի համար ընտրեք տեսանյութ – «Mpeg4 ՀՎՀ (x264)", աուդիո - "AAC (FAAC)", ելքային ձևաչափ - "MP4 Muxer.

Չորրորդ՝ կարևոր է ճիշտ անվանել կտրված տեսանյութերը։ Ֆայլի անունը պետք է բաղկացած լինի սլայդի համարից և հատվածի համարից: Հատվածները համարակալվում են զույգ թվերով՝ սկսած 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 ֆայլի տեւողությունը որոշելու մեկ այլ միջոց օգտագործելն է mp3info. Նա նույնպես սխալներ է թույլ տալիս, և երբեմն ffmpeg տալիս է ավելին, քան mp3info, երբեմն հակառակն է, երբեմն երկուսն էլ ստում են – Ես ոչ մի օրինաչափություն չեմ նկատել: Եվ ահա սոքսի ճիշտ է աշխատում.

Այս օգտակար ծրագիրը տեղադրելու համար կատարեք հետևյալը.

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, իսկական Linux օգտագործողը կստեղծի ցանկացած հատուկ էֆեկտ, բայց եթե ինչ-որ մեկին դուր է գալիս իմ գաղափարը ցրման հետ, ահա սցենարը.

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

Վայելեք դիտումը ձեր երախտապարտ ուսանողներին:

Source: www.habr.com

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