diff options
Diffstat (limited to 'web/ffmpeg.html')
-rw-r--r-- | web/ffmpeg.html | 144 |
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>🥭 — 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 <output.mp4> +</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> |