ืืกืืจ ืืื ืืื ื ืคืื ืืืืื ืืฉืื. ืขื ืืืช, ืืคื ืฉืืชื ืืืื, ืืื ืฉืืืฉืื ืืืื ืืฉืื, ืืืฉืื ืืืื ืืืื. ืื ืืฉ ืื ืืฆืืช ืฉืืชื ืจืืฆื ืืืขื ืืง ืืงืื ืฉื ืืืืืื ืื ืืืืืืช ืืชืืืื ืขืืืืืช, ืื ืืืืืจ ืืื ืืื ืืฉืืืื. ืืื ืชืืฆืื ืืืจืืืช ืฉืื ืืืจ ืฉืื ืืืฆื ืืืฆืืจ ืกืจืืื ืืืืฆืืช ืฉืืื.
ืื ื ืืืืื ืืช ืื ืชืื ืฉื ืืงืืืช "ืืขืจืืช ืืืืื" ื-PowerPoint ืืืืฆืื ืืืฆืืช ืืืืืืื ืืืจืืืืืืื ืืื ืืกืคืงืื ืขืฉืืจืืช ืืืืืืืืช ืืืจืืฉืืช ืืกืจืืื ืืื ืื ืืืืช.
ืจืืฉืืช, ืืืื ื ืืืื ืืืื ืืกืืจืืช ืื ืื ื ืฆืจืืืื:
- ืืฉืงืืคืืืช ืืคืืขื ืขื ืงืจืืื ืืช
- ืืืืคืช ืฉืงืืคืืืช
- ืฆืืืืืื ืืกืจืืื ืคืืคืืืจืืื
- ืืกืคืจ ืคืจืืืืื ืขื ืืคื ืื ืฉื ืืืจืฆื ืืืืชืื ืืืืื ืขืืื (ืื ืืืื)
ืืฆืืจืช ืืื ื ืกืคืจืืืช
.
โโโ clipart
โโโ clips
โโโ rec
โโโ slide
โโโ sound
ืืืจืช ืืืืจืืืื ืืคื ืกืืจ ืืจืฉืืื: ืกืจืืื ืืื ื ืฉืืฃ ืฆืืืืืื (ืงืืืคืืจื), ืงืืขืื ืืืกืจืืื ืืขืชืืื ืฉืื ื (ืงืืืคืื), ืกืจืืื ืื ืืืืฆืืื (rec), ืฉืงืืคืืืช ืืฆืืจืช ืชืืื ืืช (ืฉืงืืคืืช), ืกืืื ื (ื ืฉืืข).
ืืืฆืืข ืืฆืืช ืืชืืื ืืช
ืขืืืจ ืืฉืชืืฉ ืืืื ืืงืก ืืืืชื ืขื ืขืื ืืื ืืืืืืช, ืืืฆืืข ืืฆืืช ืืฆืืจืช ืชืืื ืืช ืืื ื ืืืืื ืืขืืืช. ืืจืฉื ืื ืจืง ืืืืืืจ ืืื ืฉื ืืชื ืื ืชื ืืกืื ืืคืืจืื pdf ืืชืืื ืืช ืืืืฆืขืืช ืืคืงืืื
pdftocairo -png -r 128 ../lecture.pdf
ืื ืืื ืคืงืืื ืืื, ืืชืงื ืืช ืืืืืื ืืขืฆืื poppler-tools (ืืืจืืืช ืขืืืจ ืืืืื ืื; ืื ืืฉ ืื Arch, ืื ืืชื ืืืืข ืืืื ืื ืืขืฉืืช ืืืขืืื).
ืืื ืืขืื, ืื ื ืืืืื ืฉืืกืจืืื ืืืื ืืคืืจืื HD Ready, ืืืืืจ 1280x720. ืืฆืืช ืืืืื ืืืคืงื ืฉื 10 ืืื ืฅ' ื ืืชื ืช ืืืืืง ืืช ืืืืื ืืื ืืฉืืื ืื ื ืืขื ืช (ืจืื ืืคืฉืจืืช -r 128).
ืืื ืช ืืืงืกื
ืื ืืชื ืจืืฆื ืืืฆืืจ ืืืืจ ื ืืืจ ืืืืช, ืื ืืื ืฉืื ืฆืจืื ืืืืืชื ืงืืื. ืืฉืืชื ืื ืฉืื ื ืืืื ืืืืจ ืืช ืืืงืกื ืืื ืืื ื, ืืืืืื ืฉืืฉ ืื ื ืืกืืื ืืื ืืืจืฆืืืช. ืืื ืื ืืืจ ืืื ืืืืคืืข ืืืืื, ืืืืจ ืืืจ ืืืงืืื ืืืืื. ืื ืชืชืขืฆืื - ืืื ืืืงืืื ืืฉืชืื ืคื ืืื.
ืื ื ืคืืจืื ืืืงืืื ืฉืื. ืืืกืคืจ ืืืืชืจืช ืฉืืื ืืืกืคืจ ืืฉืงืืคืืช, ืืืคืจืขืืช ืืกืืื ืืช ืืืืื. ืื ืขืืจื ืืชืืื ืืืื ื, ืืื ืขืืืฃ ืืงืืช ืืขืื ืชืืืืืื ืื ืืื ืืื - ืืืฉื, ืืืื.
ืงืื ืืขื ืืฉืงืืคืืืช
ืื ืื ื ืืืื - ืืคืขื ืืช ืืืืงืจืืคืื ืืชืืชืื :)
ืื ืืกืืื ืืืื ืฉืืืืืช ืืืงืืื ืืคืืื ืืืืืงืจืืคืื ืืืืฆืื ื ืืืื ืืืืชืจ ืืืื ืืืื ืขืจืื ืืืฉืจ ืืืืืงืจืืคืื ืืืืื ื ืฉื ืืืฉื ื ืืื. ืื ืืชื ืจืืฆื ืฆืืื ืืืืืชื, ืื ื ืืืืืฅ ืขืืื
ืืืงืืื ืืฉืชืืฉืชื ืืงืืื ืืืืื - ืืคืืืงืฆืื ืคืฉืืื ืืืื ืืืงืืืช ืงืื. ืืชื ืืืื ืืงืืช ืืช ืื, ืืืฉื, ืืื:
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.
ืฉืืืฉืืช, ืื ืืคืจืืื ืืื ืืืืืื ืืืืืช ืืืืกืื ืขื ืืืชื codec ืืืืจืื ืืืืชื ืืืืืืช. ืืื, ื Avidemux ืขืืืจ ืืคืืจืื, ืืืจ ืืืืื โ "MPEG4 AVC (x264)", ืืืืื -"AAC (FAAC)", ืคืืจืื ืคืื - "Muxer MP4".
ืจืืืขืืช, ืืฉืื ืืชืช ืฉื ื ืืื ืืกืจืืื ื ืืืชื. ืฉื ืืงืืืฅ ืืืื ืืืืืช ืืืจืื ืืืกืคืจ ืืฉืงืืคืืช ืืืกืคืจ ืืคืจืืื ื. ืฉืืจืื ืืืืกืคืจืื ืืืกืคืจืื ืืืืืื, ืืื ื-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
ืฉืื ืื ืฉืืฉื ืงืืืฅ ืืฉืืข ื ืงืืข ืืจืืฉืื ื ืขื ืืื ืืื ืืฉืืจืืช soxi, ืืืืืจ ืืื ื ืขืจื ืืกืจืืื ืืืืจื ืื ืืจืฉ. ืื ืืืืืฆืืช ืฉืืฆืืชื ืคืฉืืืืช ืืืชืจ: ืืืงืื ืืื -t ${duration} ื ืขืฉื ืฉืืืืฉ ืืืื -ืืื ืงืฆืจ... ืืขืฆื ffmpeg ืงืืืข ืืช ืืืจื ื-mp3 ืืงืืจืื ืืืื, ืืืืืื ืืขืจืืื, ืืืจื ืจืฆืืขืช ืืฉืืข ืืืื ืืืืืช ืฉืื ื ืืืื (ืืฉื ืืื ืืืช ืื ืฉืชืืื) ืืืืจื ืจืฆืืขืช ืืืืืืื. ืื ืื ืืฉื ื ืื ืืกืจืืื ืืืื ืืืจืื ืืคืจืืื ืืืื, ืืื ืืฉืืชื ืืืืืง ืกืจืืื ืืื ืขื ืืคืจืขืืช ืืืืื, ืืชืจืืฉืื ืืคืงืืื ืฉื ืืืืื ืื ื ืขืืืื ืืืืชืจ.
ืืจื ื ืืกืคืช ืืงืืืข ืืช ืืฉื ืืืื ืฉื ืงืืืฅ mp3 ืืื ืืืฉืชืืฉ mp3 info. ืืื ืื ืขืืฉื ืืขืืืืช, ืืืคืขืืื ffmpeg ื ืืชื ืืืชืจ ื mp3 info, ืืคืขืืื ืื ืืคืื, ืืคืขืืื ืฉื ืืื ืืฉืงืจืื - ืื ืฉืืชื ืื ืืฉืื ืืคืืก. ืืื ื soxi ืขืืื ื ืืื.
ืืื ืืืชืงืื ืืื ืฉืืืืฉื ืื, ืขืฉื ืืืช:
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, ืืฉืชืืฉ ืืื ืืงืก ืืืืชื ืืฆืืจ ืื ืืคืงื ืืืืื, ืืื ืื ืืืฉืื ืืืื ืืช ืืจืขืืื ืฉืื ืขื ืคืืืืจ, ืื ื ืืกืงืจืืคื:
#!/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
ืฆืคืืื ืืื ื ืืชืืืืืื ืืืกืืจืื ืฉืื!
ืืงืืจ: www.habr.com