La cuarentena es un momento maravilloso para aprender algo. Sin embargo, como saben, para que alguien aprenda algo, alguien debe enseñar. Si tiene una presentación con la que desea hablar ante una audiencia número un millón y ganar fama mundial, entonces este artículo es para usted. Aquí encontrará instrucciones paso a paso sobre cómo hacer un video desde la presentación.Marcamos la forma de grabar "comentarios de sonido" en PowerPoint y exportar la presentación en video como algo trivial y sin dar una décima parte de las posibilidades que se necesitan para un video realmente genial.Para empezar, decidiremos qué cuadros necesitamos:- En realidad se desliza con una voz en off
- Cambio de diapositiva
- Interrumpir citas de películas populares
- Unos cuadros con la fisonomía del profesor y el gato favorito (opcional)
Crear una estructura de directorio
.
├── clipart
├── clips
├── rec
├── slide
└── sound
Asignación de catálogos en el orden de inclusión: películas de las que sacaremos citas (imágenes prediseñadas), fragmentos de nuestro futuro video (clips), videos de la cámara (rec), diapositivas de imagen (diapositiva), sonido (sonido).Hacer una presentación en imágenes
Para un verdadero Linuxoid de ojos rojos, hacer una presentación en forma de imágenes no presenta ningún problema. Permítanme recordarles que un documento pdf se puede analizar en imágenes usando el comandopdftocairo -png -r 128 ../lecture.pdf
Si no existe dicho comando, instale el paquete poppler-utils (instrucciones para Ubuntu; si tiene Arch, entonces ya sabe qué hacer sin mí).En lo sucesivo, creo que el video se está preparando en formato HD Ready, es decir, 1280 × 720. Una presentación con un tamaño horizontal de 10 pulgadas proporciona exactamente este tamaño cuando se descarga (consulte la opción -r 128).Estamos preparando el texto
Si quieres hacer material realmente genial, primero debes escribir tu discurso. También pensé que podía decir el texto sin preparación, especialmente porque tengo una buena experiencia en conferencias. Pero una cosa es tocar en vivo y otra es grabar video. No seas perezoso: el tiempo dedicado a escribir valdrá la pena más de una vez.
Aquí está mi formato de grabación. El número en el encabezado es igual al número de la diapositiva, las interrupciones se resaltan en rojo. Cualquier editor es adecuado para la preparación, pero es mejor tomar un procesador de texto completo, por ejemplo, OnlyOffice .Diapositivas sonoras
¿Qué puedo decir? Encienda el micrófono y escriba :) Laexperiencia muestra que la calidad de grabación incluso desde el micrófono externo más barato es incomparablemente mejor que con el micrófono incorporado de la computadora portátil. Si desea equipos de alta calidad, le recomiendo este artículo .Para la grabación, utilicé una grabadora de audio , una aplicación de grabación muy simple. Puedes tomarlo, por ejemplo, aquí:sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update
sudo apt-get install audio-recorder
Lo principal en este paso es el nombre apropiado del archivo. El nombre debe consistir en un número de diapositiva y un número de fragmento. Los fragmentos están numerados con números impares: 1, 3, 5, etc. Entonces, para la diapositiva, cuyo texto se muestra en la imagen, se crearán dos archivos: 002-1.mp3 y 002-3.mp3 .Si grabaste todos los videos a la vez en una habitación tranquila, entonces no se puede hacer nada con ellos. Si grabó en varias etapas, es mejor ecualizar el nivel de volumen:mp3gain -r *.mp3
Por alguna razón, las utilidades de mp3gain no están en los repositorios estándar, pero puede obtenerlo aquí:sudo add-apt-repository ppa:flexiondotorg/audio
sudo apt-get update
sudo apt-get install mp3gain
Después de todo esto, debe escribir otro archivo con silencio. Es necesario agregar una banda sonora a los clips silenciosos: si hay una banda sonora en un clip y no en el otro, entonces es difícil pegar estos clips. El silencio se puede grabar desde el micrófono, pero es mejor crear un archivo en el editor de Audacity . El archivo debe tener al menos un segundo de largo (más largo) y se debe llamar a silence.mp3Rodillos de cocción
Todo aquí está limitado solo por tu imaginación. Puede usar el editor Avidemux para editar el video . Una vez que estaba en repositorios estándar, pero luego por alguna razón fue aserrada. Esto no nos detendrá:sudo add-apt-repository ppa:ubuntuhandbook1/avidemux
sudo apt-get update
sudo apt-get install avidemux2.7-qt5
Instrucciones para trabajar con este editor en el mar, sí, en principio, todo es intuitivo allí. Es importante observar varias condiciones.Primero, la resolución de la película debe coincidir con la resolución objetivo de la película. Para hacer esto, en el "video para salir" necesita usar dos filtros: swsResize para cambiar la resolución y "agregar campos" para hacer que la película soviética de "formato estrecho" sea de formato ancho. Todos los demás filtros son opcionales. Por ejemplo, si alguien no comprende cuál es la declaración del Sr. Sharikov en el fragmento en discusión, utilizando el filtro "agregar logotipo", puede agregar el logotipo de PostgreSQL en la parte superior del "Corazón del perro".En segundo lugar, todos los fragmentos deben usar la misma velocidad de fotogramas. Utilizo 25 cuadros por segundo, porque mucho me da mi cámara y viejas películas soviéticas. Si la película desde la que corta el cuadro se graba a una velocidad diferente, use el filtro "Resample Video".En tercer lugar, todos los fragmentos deben comprimirse con el mismo códec y empacarse en los mismos contenedores. Por lo tanto, en Avidemux para el formato, seleccione el video - “ Mpeg4 AVC (x264) ”, el audio - “ AAC (Faac) ”, el formato de salida - “ MP4 Muxer ”.Cuarto, es importante nombrar correctamente los clips cortados. El nombre del archivo debe consistir en un número de diapositiva y un número de fragmento. Los fragmentos están numerados con números pares, comenzando con 2. Por lo tanto, para el marco en discusión, el clip con el corte debe llamarse 002-2.mp4Después de que los clips estén listos, debe transferirlos al directorio con los fragmentos. La configuración de avidemux difiere de la configuración predeterminada de ffmpeg por los misteriosos parámetros tbr, tbn, tbc. No afectan la reproducción, pero no permiten que los rodillos se peguen. Por lo tanto, recodificamos:for f in ???-?.mp4;
do
ffmpeg -hide_banner -y -i "${f}" -c copy -r 25 -video_track_timescale 12800 ../clips/$f
done
Eliminamos protectores de pantalla
Todo aquí también es simple: dispare en el fondo de algún tipo de esquema inteligente, coloque los videos recibidos en el directorio rec y desde allí transfiéralos al directorio con fragmentos. Las reglas de nomenclatura son las mismas que para los saltos de comillas, el comando de recodificación es el siguiente: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
Si planea comenzar el video con su discurso, nombre este fragmento 000-1.mp4Hacemos marcos a partir de imágenes estáticas.
Es hora de montar clips de imágenes estáticas y sonido. Esto se hace con este script:#!/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
Tenga en cuenta que primero la duración del archivo de sonido está determinada por la utilidad soxi , y luego se monta el video de la duración deseada. Todas las recomendaciones que encontré son más simples: en lugar del indicador -t $ { Duration } , se utiliza el indicador -shortest . De hecho, ffmpeg determina la duración del mp3 aproximadamente, y durante la instalación, la duración de la pista de audio puede ser muy diferente (uno o dos segundos) de la duración de la pista de video. No importa si todo el video consta de un solo cuadro, pero al pegar una película con un salto en el borde, se producen efectos extremadamente desagradables con tartamudeo.Otra forma de determinar la duración de un archivo mp3 es usar mp3info . Ella también se equivoca, y a vecesffmpeg da más que mp3info , a veces viceversa, a veces ambos mienten. No he notado ningún patrón. Pero soxi está funcionando correctamente.Para instalar esta útil utilidad, haga esto:sudo apt-get install sox libsox-fmt-mp3
Hacer transiciones entre diapositivas
Transición: un video corto en el que una diapositiva se convierte en otra. Para hacer tales videos, tome diapositivas en pares y use imagemagick para convertir uno en el otro:#!/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}
Por alguna razón, quería que la diapositiva se dispersara en puntos, y luego la siguiente diapositiva se ensambló a partir de los puntos, y para esto escribí un script llamado fade.pl Al tener imagemagick , un verdadero Linuxoid creará algún efecto especial, pero si a alguien le gusta mi idea de dispersión, Aquí está el guión:
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 ("P3\n%d %d\n255\n",$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 0\n" : "255 255 255\n" for (1..$pixsize);
}
}
print PICTURE ($l) for (1..$pixsize);
}
}
close(PICTURE);
}
Monta el rodillo terminado
Ahora tenemos todos los fragmentos. Vamos al directorio de clips y recogemos la película terminada con dos comandos:ls -1 ???-?.mp4 | gawk -e '{print "file " $0}' >list.txt
ffmpeg -y -hide_banner -f concat -i list.txt -c copy MOVIE.mp4
¡Disfrute de su visita a sus agradecidos estudiantes!