Karantina adalah saat yang tepat untuk mempelajari sesuatu. Namun, seperti yang Anda pahami, agar seseorang dapat mempelajari sesuatu, seseorang harus mengajar. Jika Anda memiliki presentasi yang ingin Anda berikan kepada jutaan penonton dan mendapatkan ketenaran di seluruh dunia, maka artikel ini cocok untuk Anda. Di sini Anda akan menemukan petunjuk langkah demi langkah tentang cara membuat video dari presentasi Anda.
Kami menganggap jalur perekaman "komentar audio" di PowerPoint dan mengekspor presentasi ke video sebagai hal yang sepele dan tidak memberikan sepersepuluh dari kemampuan yang diperlukan untuk membuat video yang benar-benar keren.
Pertama, mari kita tentukan bingkai apa yang kita butuhkan:
- Slide sebenarnya dengan sulih suara
- perubahan slide
- Kutipan dari film populer
- Beberapa frame dengan wajah dosen dan kucing kesayangannya (opsional)
Membuat struktur direktori
.
βββ clipart
βββ clips
βββ rec
βββ slide
βββ sound
Tujuan dari direktori dalam urutan daftar: film dari mana kita akan mengambil kutipan (clipart), penggalan video masa depan kita (klip), video dari kamera (rekaman), slide dalam bentuk gambar (slide), suara (suara).
Membuat presentasi dalam gambar
Bagi pengguna Linux yang benar-benar bermata merah, membuat presentasi dalam bentuk gambar tidaklah menjadi masalah. Izinkan saya mengingatkan Anda bahwa dokumen dalam format pdf dapat diurai menjadi gambar menggunakan perintah
pdftocairo -png -r 128 ../lecture.pdf
Jika tidak ada perintah seperti itu, instal sendiri paketnya poppler-utils (instruksi untuk Ubuntu; jika Anda memiliki Arch, maka Anda tahu betul apa yang harus dilakukan tanpa saya).
Selanjutnya, saya yakin video tersebut disiapkan dalam format HD Ready, yaitu 1280x720. Presentasi dengan ukuran horizontal 10 inci memberikan ukuran yang persis sama saat dibongkar (lihat opsi -r 128).
Mempersiapkan teks
Jika Anda ingin membuat materi yang sangat bagus, pidato Anda perlu ditulis terlebih dahulu. Saya juga berpikir bahwa saya dapat mengucapkan teks tersebut tanpa persiapan, apalagi saya memiliki pengalaman yang baik dalam mengajar. Namun tampil live adalah satu hal, dan merekam video adalah satu hal. Jangan malas β waktu yang dihabiskan untuk mengetik akan membuahkan hasil berkali-kali lipat.
Ini format rekaman saya. Nomor pada judul sama dengan nomor slide, interupsi disorot dengan warna merah. Editor apa pun cocok untuk persiapan, tetapi lebih baik menggunakan pengolah kata yang lengkap - misalnya, OnlyOffice.
Suarakan melalui slide
Apa yang bisa saya katakan - nyalakan mikrofon dan tulis :)
Pengalaman menunjukkan bahwa kualitas rekaman bahkan dari mikrofon eksternal termurah pun jauh lebih baik daripada mikrofon internal laptop. Jika Anda menginginkan peralatan berkualitas, saya merekomendasikannya
Untuk rekaman saya menggunakan perekam suara β aplikasi yang sangat sederhana untuk merekam suara. Anda dapat mengambilnya misalnya di sini:
sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder
Hal utama pada langkah ini adalah memberi nama file dengan benar. Nama harus terdiri dari nomor slide dan nomor fragmen. Fragmen diberi nomor ganjil - 1, 3, 5, dst. Jadi, untuk slide, yang teksnya ditunjukkan pada gambar, dua file akan dibuat: 002-1.mp3 ΠΈ 002-3.mp3.
Jika Anda merekam semua video sekaligus di ruangan yang sunyi, Anda tidak perlu melakukan apa pun lagi dengan video tersebut. Jika Anda merekam dalam beberapa langkah, lebih baik menyamakan level volume:
mp3gain -r *.mp3
Utilitas mp3gain Untuk beberapa alasan, ini tidak ada dalam repositori standar, tetapi Anda bisa mendapatkannya di sini:
sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain
Setelah semua ini, Anda perlu merekam file lain dengan diam. Penting untuk menambahkan trek suara ke video senyap: jika satu video memiliki trek suara dan yang lainnya tidak, maka akan sulit untuk merekatkan video-video tersebut. Keheningan dapat direkam dari mikrofon, tetapi lebih baik membuat file di editor keberanian. Panjang file setidaknya harus satu detik (bisa lebih panjang), dan harus diberi nama diam.mp3
Mempersiapkan video interupsi
Semuanya di sini hanya dibatasi oleh imajinasi Anda. Anda dapat menggunakan editor untuk mengedit video Avidemux. Dahulu kala itu ada di repositori standar, tetapi kemudian karena alasan tertentu dihapus. Ini tidak akan menghentikan kita:
sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5
Ada banyak instruksi untuk bekerja dengan editor ini di Internet, dan pada prinsipnya, semuanya intuitif. Penting untuk memenuhi beberapa syarat.
Pertama, resolusi video harus sesuai dengan resolusi video target. Untuk melakukan ini, Anda perlu menggunakan dua filter dalam "video keluaran": swsResize untuk mengubah resolusi dan "menambahkan bidang" untuk mengubah film "format sempit" Soviet menjadi format lebar. Semua filter lainnya bersifat opsional. Misalnya, jika seseorang tidak mengerti mengapa pernyataan Tuan Sharikov ada dalam bagian yang sedang dibahas, dengan menggunakan filter βtambahkan logoβ, Anda dapat melapisi logo PostgreSQL di atas βHati Anjingβ.
Kedua, semua fragmen harus menggunakan frame rate yang sama. Saya menggunakan 25 frame per detik karena kamera dan film Soviet lama saya memberikan sebanyak itu. Jika film yang Anda potong diambil dengan kecepatan berbeda, gunakan filter Resample Video.
Ketiga, semua fragmen harus dikompresi dengan codec yang sama dan dikemas dalam wadah yang sama. Oleh karena itu di Avidemux untuk formatnya pilih video β βMPEG4 AVC (x264)", audio-"AAC (FAAC)", format output - "Muxer MP4'.
Keempat, penting untuk memberi nama video yang dipotong dengan benar. Nama file harus terdiri dari nomor slide dan nomor fragmen. Fragmen diberi nomor genap, dimulai dari 2. Jadi, untuk frame yang sedang dibahas, video dengan interupsi harus diberi nama 002-2.mp4
Setelah video siap, Anda perlu mentransfernya ke direktori dengan fragmen. Pengaturan avidemux berbeda dari pengaturan ffmpeg secara default dengan parameter misterius tbr, tbn, tbc. Mereka tidak mempengaruhi pemutaran, tetapi tidak memungkinkan video direkatkan. Jadi mari kita kode ulang:
for f in ???-?.mp4;
do
ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done
Memotret screensaver
Di sini juga, semuanya sederhana: Anda memotret dengan latar belakang skema yang cerdik, memasukkan video yang dihasilkan ke dalam katalog rec, dan dari sana transfer ke direktori dengan fragmen. Aturan penamaannya sama dengan kutipan interupsi, perintah pengodean ulangnya adalah sebagai berikut:
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
Jika Anda berencana memulai video dengan pidato Anda, beri nama fragmen ini 000-1.mp4
Membuat bingkai dari gambar statis
Saatnya mengedit video dari gambar dan suara statis. Ini dilakukan dengan skrip berikut:
#!/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
Harap dicatat bahwa durasi file audio pertama-tama ditentukan oleh utilitas soksi, lalu video dengan durasi yang diperlukan diedit. Semua rekomendasi yang saya temukan lebih sederhana: daripada sebuah bendera -t ${durasi} bendera digunakan -terpendek... Sebenarnya ffmpeg menentukan panjang mp3 secara kasar, dan selama pengeditan, panjang trek audio bisa sangat berbeda (satu atau dua detik) dari panjang trek video. Ini tidak masalah jika seluruh video terdiri dari satu bingkai, tetapi saat Anda merekatkan video tersebut dengan interupsi di bagian tepinya, efek kegagapan yang sangat tidak menyenangkan akan terjadi.
Cara lain untuk menentukan durasi file mp3 adalah dengan menggunakan mp3info. Dia juga membuat kesalahan, dan terkadang ffmpeg memberi lebih dari mp3info, terkadang sebaliknya, terkadang keduanya berbohong β saya tidak melihat pola apa pun. Dan di sini soksi berfungsi dengan benar.
Untuk menginstal utilitas yang berguna ini, lakukan ini:
sudo apt-get install sox libsox-fmt-mp3
Melakukan transisi antar slide
Transisi adalah video pendek yang mengubah satu slide menjadi slide lainnya. Untuk membuat video seperti itu, kami mengambil slide secara berpasangan dan menggunakan imagemagick mengubah satu menjadi yang lain:
#!/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}
Untuk beberapa alasan saya ingin slide tersebut tersebar dengan titik-titik, dan kemudian slide berikutnya akan dirangkai dari titik-titik tersebut, dan untuk ini saya menulis sebuah skrip bernama memudar.pl Memiliki imagemagick, pengguna Linux asli akan membuat efek khusus apa pun, tetapi jika seseorang menyukai ide saya dengan hamburan, berikut skripnya:
#!/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);
}
Kami memasang video yang sudah jadi
Sekarang kita memiliki semua fragmennya. Buka katalog klip dan merakit film yang sudah jadi menggunakan dua perintah:
ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4
Selamat menonton untuk siswa Anda yang berterima kasih!
Sumber: www.habr.com