aboutsummaryrefslogtreecommitdiffstats
path: root/web/ffmpeg.html
diff options
context:
space:
mode:
Diffstat (limited to 'web/ffmpeg.html')
-rw-r--r--web/ffmpeg.html144
1 files changed, 144 insertions, 0 deletions
diff --git a/web/ffmpeg.html b/web/ffmpeg.html
new file mode 100644
index 0000000..7522d6f
--- /dev/null
+++ b/web/ffmpeg.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' lang='es-MX,en'>
+<head>
+<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
+<meta content='initial-scale=1.0, maximum-scale=1.0, user-scalable=yes' name='viewport'/>
+<link rel='stylesheet' href='./static/estilo.css'>
+<title>🥭 &mdash; apuntes de ffmpeg</title>
+</head>
+<body>
+<header>
+<p><a href='./index.html'>{🥭}</a></p>
+<h1>apuntes de ffmpeg</h1>
+</header>
+<nav><ul><li><a href='#"trim" / cortar'>"trim" / cortar</a></li>
+<li><a href='#escalar'>escalar</a></li>
+<li><a href='#cambio de framerate'>cambio de framerate</a></li>
+<li><a href='#cambio de "velocidad"'>cambio de "velocidad"</a></li>
+<li><a href='#concatenar'>concatenar</a></li>
+<li><a href='#generar video desde serie de img'>generar video desde serie de img</a></li>
+<li><a href='#crop (y exportar desde recordmydesktop)'>crop (y exportar desde recordmydesktop)</a></li>
+<li><a href='#video a partir de una imagen'>video a partir de una imagen</a></li>
+<li><a href='#video a partir de serie de imágenes'>video a partir de serie de imágenes</a></li>
+<li><a href='#overlay de imagen sobre video'>overlay de imagen sobre video</a></li>
+
+</ul></nav>
+<main><section><p>
+notas de usos comunes que le doy a ffmpeg
+</p>
+</section><section>
+<h1 id='"trim" / cortar'>"trim" / cortar</h1>
+<pre>
+ffmpeg -i input.video -ss 5 -t 20 output.video
+</pre>
+<p>
+donde:
+<br/>
+-ss es el tiempo inicial
+<br/>
+-t es la duracion total del nuevo video
+</p>
+</section><section>
+<h1 id='escalar'>escalar</h1>
+<pre>
+ffmpeg -i input.video -vf scale=640:480 output.video
+</pre>
+<p>
+y para reducir el tamaño del archivo, suele ser útil recomprimir con crf (constant rate factor)
+</p>
+<pre>
+ffmpeg -i input.video -crf 24 output.video
+</pre>
+<p>
+en teoría 24 es una compresión difícil de percibir. números mayores comprimen más.
+</p>
+</section><section>
+<h1 id='cambio de framerate'>cambio de framerate</h1>
+<pre>
+ffmpeg -i input.video -r 30 output.video
+</pre>
+<p>
+o
+</p>
+<pre>
+ffmpeg -i input.video -filter:v fps=fps=30 output.video
+</pre>
+</section><section>
+<h1 id='cambio de "velocidad"'>cambio de "velocidad"</h1>
+<p>
+obtiene un video a 2x de velocidad:
+</p>
+<pre>
+ffmpeg -i input.video -filter:v "setpts=0.5*PTS" output.video
+</pre>
+<p>
+para hacer 60x (por ejemplo, convertir minutos a segundos):
+</p>
+<pre>
+ffmpeg -i input.video -filter:v "setpts=0.016*PTS" output.video
+</pre>
+</section><section>
+<h1 id='concatenar'>concatenar</h1>
+<p>
+hacer lista de videos con el formato:
+</p>
+<pre>
+file 'archivo1'
+file 'archivo2'
+file 'archivo3'
+</pre>
+<p>
+y luego:
+</p>
+<pre>
+ffmpeg -f concat -i lista.txt -c copy output.video
+</pre>
+</section><section>
+<h1 id='generar video desde serie de img'>generar video desde serie de img</h1>
+<pre>
+ffmpeg -framerate 30 -i frame-%04d.tif -pix_fmt yuv420p -c:v libx264 &lt;output.mp4&gt;
+</pre>
+</section><section>
+<h1 id='crop (y exportar desde recordmydesktop)'>crop (y exportar desde recordmydesktop)</h1>
+<pre>
+ffmpeg -i out.ogv -filter:v "crop=1280:720:0:0" -codec:v libx264 -codec:a libmp3lame output.mp4
+</pre>
+</section><section>
+<h1 id='video a partir de una imagen'>video a partir de una imagen</h1>
+<pre>
+# 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
+</pre>
+</section><section>
+<h1 id='video a partir de serie de imágenes'>video a partir de serie de imágenes</h1>
+<pre>
+# 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
+</pre>
+</section><section>
+<h1 id='overlay de imagen sobre video'>overlay de imagen sobre video</h1>
+<pre>
+ffmpeg -i input.mp4 -i imagen.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" output.mp4
+</pre>
+
+</section>
+</main>
+<footer>
+<p><a href='./index.html'>{🥭}</a></p>
+<p>página actualizada en:
+<time datetime='2021-05-20'>sejmana-1660, día 1</time>
+ (12021-05-20)
+</p>
+<a href='https://endefensadelsl.org/ppl_es.html' rel=external target=_blank>ppl: licencia de producción de pares</a></p>
+</footer>
+</body>
+</html>
Un proyecto texto-plano.xyz