remove apuntes
This commit is contained in:
parent
baef62644b
commit
b2529e8266
|
@ -1,14 +0,0 @@
|
|||
# apuntes
|
||||
|
||||
recordatorios de procesos y herramientas computacionales
|
||||
|
||||
# línea de comandos
|
||||
|
||||
=> ./ffmpeg.gmi {ffmpeg}
|
||||
=> ./imagemagick.gmi {imagemagick}
|
||||
=> ./ed.gmi {ed}
|
||||
=> ./postfix.gmi {postfix}
|
||||
|
||||
# web
|
||||
|
||||
=> ./jitsi_hacks.gmi {jitsi hacks}
|
15
src/ed.gmo
15
src/ed.gmo
|
@ -1,15 +0,0 @@
|
|||
# ed
|
||||
|
||||
pequeño editor de texto
|
||||
|
||||
# tips
|
||||
|
||||
para formatear un texto asignándole cierto número de columnas, primero guarda con 'w' y luego:
|
||||
|
||||
```
|
||||
e ! fmt -w50 %
|
||||
```
|
||||
|
||||
esto toma la salida del comando fmt aplicada al mismo archivo (%), y la toma como contenido del buffer, reemplazando todo lo que había antes.
|
||||
|
||||
el comando 'e' es de "edit"
|
112
src/ffmpeg.gmo
112
src/ffmpeg.gmo
|
@ -1,112 +0,0 @@
|
|||
# apuntes de ffmpeg
|
||||
|
||||
notas de usos comunes que le doy a ffmpeg
|
||||
|
||||
# "trim" / cortar
|
||||
|
||||
```
|
||||
ffmpeg -i input.video -ss 5 -t 20 output.video
|
||||
```
|
||||
|
||||
donde:
|
||||
-ss es el tiempo inicial
|
||||
-t es la duracion total del nuevo video
|
||||
|
||||
|
||||
# escalar
|
||||
|
||||
```
|
||||
ffmpeg -i input.video -vf scale=640:480 output.video
|
||||
```
|
||||
|
||||
y para reducir el tamaño del archivo, suele ser útil recomprimir con crf (constant rate factor)
|
||||
|
||||
```
|
||||
ffmpeg -i input.video -crf 24 output.video
|
||||
```
|
||||
|
||||
en teoría 24 es una compresión difícil de percibir. números mayores comprimen más.
|
||||
|
||||
# cambio de framerate
|
||||
|
||||
```
|
||||
ffmpeg -i input.video -r 30 output.video
|
||||
```
|
||||
|
||||
o
|
||||
|
||||
```
|
||||
ffmpeg -i input.video -filter:v fps=fps=30 output.video
|
||||
```
|
||||
|
||||
# cambio de "velocidad"
|
||||
|
||||
obtiene un video a 2x de velocidad:
|
||||
|
||||
```
|
||||
ffmpeg -i input.video -filter:v "setpts=0.5*PTS" output.video
|
||||
```
|
||||
|
||||
para hacer 60x (por ejemplo, convertir minutos a segundos):
|
||||
|
||||
```
|
||||
ffmpeg -i input.video -filter:v "setpts=0.016*PTS" output.video
|
||||
```
|
||||
|
||||
# concatenar
|
||||
|
||||
hacer lista de videos con el formato:
|
||||
|
||||
```
|
||||
file 'archivo1'
|
||||
file 'archivo2'
|
||||
file 'archivo3'
|
||||
```
|
||||
y luego:
|
||||
|
||||
```
|
||||
ffmpeg -f concat -i lista.txt -c copy output.video
|
||||
```
|
||||
|
||||
|
||||
# generar video desde serie de img
|
||||
|
||||
```
|
||||
ffmpeg -framerate 30 -i frame-%04d.tif -pix_fmt yuv420p -c:v libx264 <output.mp4>
|
||||
```
|
||||
|
||||
# crop (y exportar desde recordmydesktop)
|
||||
|
||||
```
|
||||
ffmpeg -i out.ogv -filter:v "crop=1280:720:0:0" -codec:v libx264 -codec:a libmp3lame output.mp4
|
||||
```
|
||||
|
||||
|
||||
# video a partir de una imagen
|
||||
|
||||
```
|
||||
# video de una imagen,
|
||||
# 10 segundos, 30 frames por segundo
|
||||
ffmpeg -loop 1 \
|
||||
-i imagen_verde.png \
|
||||
-t 00:00:10 -r 30 \
|
||||
video_verde.ogv
|
||||
```
|
||||
|
||||
# video a partir de serie de imágenes
|
||||
|
||||
```
|
||||
# cambia entre imágenes a 2fps,
|
||||
# video final a 30fps
|
||||
ffmpeg -framerate 2 \
|
||||
-i "%02d.png" \
|
||||
-pix_fmt yuv420p \
|
||||
-c:v libx264 \
|
||||
-r 30 salida.mp4
|
||||
```
|
||||
|
||||
# overlay de imagen sobre video
|
||||
|
||||
```
|
||||
ffmpeg -i input.mp4 -i imagen.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" output.mp4
|
||||
```
|
|
@ -1,141 +0,0 @@
|
|||
# apuntes de imagemagick
|
||||
|
||||
# redimensiona imagen
|
||||
|
||||
```
|
||||
convert imagen.png -resize 100x100 imagen100.png
|
||||
```
|
||||
|
||||
o con -scale, para no interpolar y mantener la apariencia de pixeles
|
||||
|
||||
```
|
||||
convert imagen.png -scale 200% imagenx2.png
|
||||
```
|
||||
|
||||
# reemplaza color por otro
|
||||
|
||||
reemplaza azul por blanco:
|
||||
|
||||
```
|
||||
convert imagen.png -fill white -opaque blue salida.png
|
||||
```
|
||||
|
||||
se puede agregar fuzz factor:
|
||||
|
||||
```
|
||||
convert imagen.png -fuzz 45% -fill white -opaque blue salida.png
|
||||
```
|
||||
|
||||
y para convertir a transparente:
|
||||
|
||||
```
|
||||
convert imagen.png -fuzz 45% -transparent blue salida.png
|
||||
```
|
||||
|
||||
# elimina metadatos exif
|
||||
|
||||
para imágenes jpg
|
||||
|
||||
```
|
||||
convert foto.jpg -strip fotolimpia.jpg
|
||||
```
|
||||
|
||||
esto re-comprime la imagen, pero puede usarse al mismo tiempo que se redimensiona
|
||||
|
||||
```
|
||||
convert foto.jpg -strip -resize 640x480 fotolimpia_480p.jpg
|
||||
```
|
||||
|
||||
# convierte pdf
|
||||
|
||||
## imagen a pdf
|
||||
|
||||
por default la conversión sucede en baja calidad, esto la mejora:
|
||||
|
||||
```
|
||||
convert imagen.png -quality 100 -units PixelsPerInch -density 300x300 imagen.pdf
|
||||
```
|
||||
|
||||
## pdf a imagen
|
||||
|
||||
para el caso opuesto:
|
||||
|
||||
```
|
||||
convert -quality 100 -units PixelsPerInch -density 300x300 imagen.pdf imagen.png
|
||||
```
|
||||
|
||||
# reduce la cantidad de colores
|
||||
|
||||
deja que imagemagick elija qué colores utilizar:
|
||||
|
||||
```
|
||||
convert imagen.png -colors 8 imagen_8.png
|
||||
```
|
||||
|
||||
o con dithering:
|
||||
|
||||
```
|
||||
convert imagen.png -dither FloydSteinberg -colors 8 imagen_8.png
|
||||
```
|
||||
|
||||
en -dither se puede usar None, Riemersma, o FloydSteinberg
|
||||
|
||||
|
||||
# genera mapas de bits
|
||||
|
||||
con color plano:
|
||||
|
||||
```
|
||||
convert -size 100x100 xc:'rgb(0,255,0)' imagen_verde.png
|
||||
```
|
||||
|
||||
con ruido:
|
||||
|
||||
```
|
||||
convert -size 100x100 xc: +noise Random imagen_ruido.png
|
||||
```
|
||||
|
||||
# compone/encima imágenes
|
||||
|
||||
para componer una imagen con fondo transparente sobre otra que se convertirá en su fondo
|
||||
|
||||
```
|
||||
composite -gravity center imagen_con_alpha.png fondo.png resultado.png
|
||||
```
|
||||
|
||||
# mosaico de imágenes
|
||||
|
||||
combina varias imágenes en mosaico, con margen de 0 entre ellas:
|
||||
|
||||
```
|
||||
montage imagen1.png imagen2.png -geometry +0+0 mosaico.png
|
||||
```
|
||||
|
||||
el parámetro geometry indica los márgenes entre imágenes, y opcionalmente sus dimensiones:
|
||||
|
||||
```
|
||||
montage imagen1.png imagen2.png -geometry 100x100+0+0 mosaico.png
|
||||
```
|
||||
|
||||
para asignar fondo transparente al montaje:
|
||||
|
||||
```
|
||||
montage imagen1.png imagen2.png -geometry +0+0 -background none mosaico.png
|
||||
```
|
||||
|
||||
# corta
|
||||
|
||||
para cortar una imagen a ciertas dimensiones (wxh) y cierto offset en x,y
|
||||
|
||||
```
|
||||
convert imagen.png -crop 300x300+100+50 +repage recorte.png
|
||||
```
|
||||
|
||||
|
||||
para quitarte el borde de color constante a una imagen
|
||||
|
||||
```
|
||||
convert imagen.png -trim +repage sinborde.png
|
||||
```
|
||||
|
||||
TODO: notas sobre -chop
|
|
@ -1,47 +0,0 @@
|
|||
# hacking jitsi meet
|
||||
|
||||
esta es una colección de funciones de javascript para modificar localmente el diseño/layout de una videollamada de jitsi meet.
|
||||
|
||||
las he usado tanto para adecuar el diseño de una videollamada para que sea capturada/retransmitida, como para que todes les integrantes modifiquen el diseño y tengamos un punto de vista similar.
|
||||
|
||||
estas funciones se pueden ejecutar directamente en la consola web del navegador, ya sea descendiente de firefox o de chrom(ium) (ctrl+shift+k, o con F12 y eligiendo la tab de consola)
|
||||
|
||||
|
||||
# cambia el color de fondo
|
||||
|
||||
esta línea cambia el color de fondo a negro:
|
||||
|
||||
```
|
||||
document.getElementById('largeVideoContainer').style.backgroundColor='black';
|
||||
```
|
||||
|
||||
|
||||
# deja de mostrar a quienes no tienen video encendido
|
||||
|
||||
para cuando hay participantes presentes sin video, en la vista de mosaico:
|
||||
|
||||
```
|
||||
for(c of document.getElementsByClassName('display-avatar-only')){
|
||||
c.style.display='none'
|
||||
};
|
||||
```
|
||||
|
||||
# espejea a todos los videos y redimensiónalos
|
||||
|
||||
en la vista de mosaico, por defecto une misme se muestra con la toma "en espejo" y todes les demás con la toma "normal".
|
||||
|
||||
cuando se trabaja con espacialidades, esta situación puede volverse confusa (e.g. todes queremos señalar a "la izquierda"). con este código podemos unificarnos.
|
||||
|
||||
este ciclo hace que todos los videos estén "en espejo", además de que permite que crezcan un poco en el mosaico.
|
||||
|
||||
|
||||
```
|
||||
for(v of document.getElementsByTagName('video')){
|
||||
v.classList.add('flipVideoX'); // "espejea"
|
||||
v.style.objectFit = 'cover'; // "redimensiona"
|
||||
};
|
||||
```
|
||||
|
||||
# re-ordena
|
||||
|
||||
pendiente: código/tutorial para re-ordenar la cuadrícula a una configuración predeterminada.
|
Loading…
Reference in New Issue