Ihe nkuzi vidiyo: unix way

Ihe nkuzi vidiyo: unix way
Kwarantaini bụ oge magburu onwe ya ịmụta ihe. Otú ọ dị, dị ka ị ghọtara, ka mmadụ wee mụta ihe, mmadụ aghaghị ịkụzi ihe. Ọ bụrụ na ị nwere ihe ngosi nke ịchọrọ inye ndị na-ege ntị ọtụtụ nde ma nweta aha zuru ụwa ọnụ, mgbe ahụ isiokwu a bụ maka gị. N'ebe a, ị ga-ahụ ntụziaka nzọụkwụ site na otu esi eme vidiyo site na ngosi gị.

Anyị na-achụpụ ụzọ nke ịdekọ "okwu ọdịyo" na PowerPoint na mbupụ ihe ngosi na vidiyo dị ka ihe na-adịghị mkpa ma ghara inye otu ụzọ n'ụzọ iri nke ike achọrọ maka vidiyo dị mma n'ezie.

Nke mbụ, ka anyị kpebie ụdị fremu anyị chọrọ:

  1. Ihe mmịfe ahụ nwere ụda olu
  2. Na-agbanwe slide
  3. Okwu sitere na ihe nkiri na-ewu ewu
  4. Ọtụtụ okpokolo agba nwere ihu onye nkuzi na pusi ọkacha mmasị ya (nhọrọ)

Ịmepụta usoro ndekọ aha

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

Ebumnuche nke akwụkwọ ndekọ aha n'usoro nke ndepụta: ihe nkiri nke anyị ga-adọta ruturu (clipart), iberibe vidiyo anyị n'ọdịnihu (mpịakọta), vidiyo sitere na igwefoto (rec), slide n'ụdị foto (slide), ụda. (ụda).

Na-eme ihe ngosi na foto

Maka ezigbo onye ọrụ Linux na-acha uhie uhie, ime ihe ngosi n'ụdị foto anaghị eweta nsogbu ọ bụla. Ka m chetara gị na enwere ike ịtụgharị akwụkwọ n'ụdị pdf n'ime onyonyo site na iji iwu ahụ

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

Ọ bụrụ na enweghị iwu dị otú ahụ, wụnye ngwugwu n'onwe gị poppler-arịa (ntụziaka maka Ubuntu; ọ bụrụ na ị nwere Arch, mgbe ahụ ị maara nke ọma ihe ị ga-eme na-enweghị m).

N'ebe a na n'ihu, ekwenyere m na a na-akwado vidiyo ahụ na HD Njikere usoro, ya bụ 1280x720. Ngosipụta nwere nha kwụ ọtọ nke sentimita iri na-enye nha nke a mgbe ebupụrụ ya (lee nhọrọ -r 10).

Na-akwado ederede

Ọ bụrụ na ịchọrọ ịmepụta ezigbo ihe, ọ dị mkpa ka e buru ụzọ dee okwu gị. M chekwara na m nwere ike ịsụ akụkụ Akwụkwọ Nsọ ahụ n’ebughị ụzọ kwadebe, karịsịa ebe ọ bụ na m nwere ahụmahụ nke ọma n’ịkụzi ihe. Mana ọ bụ otu ihe ịme ndụ, yana ihe ọzọ ịdekọ vidiyo. Adịla umengwụ - oge ejiri dee ihe ga-akwụ ụgwọ ọtụtụ ugboro.

Ihe nkuzi vidiyo: unix way

Nke a bụ usoro ndekọ m. Ọnụọgụ dị na aha ahụ hà nhata akara ngosi mmịfe ahụ, a na-egosipụta nkwụsịtụ na-acha uhie uhie. Onye nchịkọta akụkọ ọ bụla kwesịrị ekwesị maka nkwadebe, ma ọ ka mma iburu okwu nhazi okwu zuru oke - dịka ọmụmaatụ, NaanịOffice.

Olu n'elu ihe mmịfe ahụ

Kedu ihe m nwere ike ikwu - gbanye igwe okwu wee dee :)

Ahụmahụ na-egosi na àgwà ndekọ ọbụna site na igwe okwu mpụga dị ọnụ ala dị mma na-enweghị atụ karịa site na igwe okwu arụnyere na laptọọpụ. Ọ bụrụ na ịchọrọ akụrụngwa dị mma, ana m akwado ya Akụkọ a.

Maka ndekọ m na-eji audio-edekọ – ngwa dị mfe maka ndekọ ụda. Ị nwere ike were ya, dịka ọmụmaatụ, ebe a:

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

Isi ihe na nzọụkwụ a bụ ịkpọ faịlụ ndị ahụ n'ụzọ ziri ezi. Aha ahụ ga-enwerịrị akara ngosi mmịfe na nọmba iberibe. A na-edepụta mpempe akwụkwọ na nọmba ndị na-adịghị mma - 1, 3, 5, wdg. Ya mere, maka slide ahụ, ederede nke egosiri na foto a, a ga-emepụta faịlụ abụọ: 002-1.mp3 и 002-3.mp3.

Ọ bụrụ na ịdekọ vidiyo niile n'otu oge n'ime ụlọ dị jụụ, ịgaghị eme ihe ọ bụla ọzọ na ha. Ọ bụrụ na ịdekọ n'ọtụtụ usoro, ọ ka mma ịhazi ọkwa olu:

mp3gain -r *.mp3

Akụrụngwa mp3gakwa Maka ihe ụfọdụ ọ bụghị na ebe nchekwa ọkọlọtọ, mana ị nwere ike nweta ya ebe a:

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

Mgbe ihe a niile gasịrị, ịkwesịrị ịdekọ faịlụ ọzọ na ịgbachi nkịtị. Ọ dị mkpa ịgbakwunye ụda egwu na vidiyo ndị na-adịghị jụụ: ọ bụrụ na otu vidiyo nwere ụda ụda ma nke ọzọ adịghị, mgbe ahụ ọ na-esiri ike ijikọ vidiyo ndị a ọnụ. Enwere ike ịdekọ jụụ site na igwe okwu, mana ọ ka mma ịmepụta faịlụ na nchịkọta akụkọ Ọdịdị. Ogologo faịlụ kwesịrị ịbụ opekata mpe nke abụọ (karịa ga-ekwe omume), ekwesịrị ịkpọ aha ya nkiti.mp3

Na-akwado vidiyo nkwụsịtụ

N'ebe a, ihe niile na-ejedebe naanị site n'echiche gị. Ị nwere ike iji onye ndezi dezie vidiyo Ọ bụ. N'otu oge, ọ bụ na ebe nchekwa ọkọlọtọ, ma n'ihi ihe ụfọdụ e bepụrụ ya. Nke a agaghị akwụsị anyị:

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

Enwere ọtụtụ ntụziaka maka ịrụ ọrụ na onye nchịkọta akụkọ a na ịntanetị, na ụkpụrụ, ihe niile dị n'echiche. Ọ dị mkpa izute ọtụtụ ọnọdụ.

Nke mbụ, mkpebi vidiyo ga-adabarịrị na mkpebi vidiyo ebumnuche. Iji mee nke a, ịkwesịrị iji nzacha abụọ na "video mmepụta": swsResize ịgbanwe mkpebi na "ịgbakwunye ubi" iji gbanwee ihe nkiri Soviet "dị warara" n'ime usoro sara mbara. Ihe nzacha ndị ọzọ niile bụ nhọrọ. Dịka ọmụmaatụ, ọ bụrụ na mmadụ aghọtaghị ihe kpatara okwu Mr. Sharikov ji dị na mpempe akwụkwọ a na-atụle, na-eji nzacha "gbakwunye logo", ị nwere ike kpuchie akara PostgreSQL n'elu "Obi nkịta".

Nke abuo, mpekere niile ga-eji otu ọnụego etiti. M na-eji okpokolo agba 25 kwa sekọnd n'ihi na igwefoto m na ihe nkiri Soviet ochie na-enye m nnukwu ihe. Ọ bụrụ na agbagburu ihe nkiri ị na-ebipụ na ọsọ dị iche, jiri nzacha vidiyo Resample.

Nke atọ, a ga-ejiri otu codec chịkọta iberi niile ma tinye ya n'otu akpa. N'ihi ya, na Ọ bụ maka usoro, họrọ vidiyo -"MPEG4 AVC (x264)", audio -"AAC (FAAC)", mmepụta usoro -"Onye Nze".

Nke anọ, ọ dị mkpa ịkpọ vidiyo ịkpụ aha nke ọma. Aha faịlụ ga-enwerịrị akara ngosi mmịfe na nọmba iberibe. A na-agụ mpempe akwụkwọ na ọbụna nọmba, malite na 2. Ya mere, maka etiti a na-atụle, a ga-akpọ vidiyo nwere nkwụsịtụ. 002-2.mp4

Mgbe vidiyo ndị ahụ dị njikere, ịkwesịrị ịnyefe ha na ndekọ na iberibe. Ntọala agha dị iche na ntọala ffmpeg site na ndabara na paramita dị omimi tbr, tbn, tbc. Ha anaghị emetụta ịkpọghachi, mana ha anaghị ekwe ka ejikọta vidiyo ndị ahụ ọnụ. Yabụ ka anyị degharịa koodu:

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

Ndị na-agbapụ ihuenyo

N'ebe a kwa, ihe niile dị mfe: ị na-agbapụ megide ndabere nke atụmatụ aghụghọ, tinye vidiyo ndị a rụpụtara na katalọgụ. rec, ma si ebe ahụ nyefee ya na ndekọ na iberibe. Iwu n'ịkpọ aha bụ otu ihe maka nkwụsịtụ okwu, iwu idegharị bụ nke a:

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

Ọ bụrụ na ị na-eme atụmatụ iji okwu gị malite vidiyo, kpọọ iberibe akwụkwọ a 000-1.mp4

Ime okpokolo agba site na foto kwụ ọtọ

Ọ bụ oge iji dezie vidiyo site na onyonyo na ụda kwụ ọtọ. A na-eji edemede a eme nke a:

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

Biko mara na ndị ọrụ na-ekpebi oge faịlụ ọdịyo ahụ na-ebu ụzọ kpebie soxi, wee dezie vidiyo nke ogologo achọrọ. Ndụmọdụ niile m chọtara dị mfe: kama ọkọlọtọ -t ${oge} a na-eji ọkọlọtọ - kacha nso. N'ezie ffmpeg na-ekpebi ogologo mp3 dị ntakịrị, na n'oge edezi, ogologo egwu ọdịyo nwere ike ịdị iche nke ukwuu (site na otu ma ọ bụ sekọnd abụọ) site na ogologo egwu vidiyo. Nke a abaghị uru ma ọ bụrụ na vidiyo niile nwere otu etiti, mana mgbe ị na-ejikọta vidiyo dị otú ahụ na nkwụsịtụ na oke, mmetụta nsụ na-adịghị mma na-eme.

Ụzọ ọzọ iji chọpụta oge nke faịlụ mp3 bụ iji mp3 ozi. Ọ na-emehiekwa mgbe ụfọdụ ffmpeg na-enye ihe karịrị mp3 ozi, mgbe ụfọdụ ọ bụ ụzọ ọzọ, mgbe ụfọdụ ha abụọ na-agha ụgha - Ahụrụghị m ụkpụrụ ọ bụla. Na ebe a soxi na-arụ ọrụ nke ọma.

Iji wụnye akụrụngwa bara uru, mee nke a:

sudo apt-get install sox libsox-fmt-mp3

Na-eme mgbanwe n'etiti slides

Ntugharị bụ obere vidiyo nke otu slide na-atụgharị ghọọ nke ọzọ. Iji mee vidiyo ndị dị otú ahụ, anyị na-ewere slide na abụọ ma jiri ya imagemagick gbanwee otu ka ọ bụrụ nke ọzọ:

#!/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'ihi ihe ụfọdụ m chọrọ ka slide ahụ gbasasịa na ntụpọ, mgbe ahụ, a ga-achịkọta slide na-esote site na ntụpọ ahụ, maka nke a, edere m edemede a na-akpọ. gbada.pl Inwe imagemagick, ezigbo onye ọrụ Linux ga-emepụta mmetụta ọ bụla pụrụ iche, mana ọ bụrụ na mmadụ nwere mmasị na echiche m na ịgbasa, ebe a bụ edemede:

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

Anyị na-ebugo vidiyo emechara

Ugbu a, anyị nwere iberibe niile. Gaa na katalọgụ Obere vidiyo ma chịkọta ihe nkiri emechara site na iji iwu abụọ:

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

Nwee obi ụtọ ikiri ụmụ akwụkwọ gị nwere ekele!

isi: www.habr.com

Tinye a comment