aboutsummaryrefslogtreecommitdiffstats
path: root/web/ffmpeg.html
blob: 2dfcebed08bdb463a820367ee311987fc1993c09 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!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'>
 <link rel='icon' href='./img/icon_bola.gif' type='image/gif' sizes='16x16'> 
<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>
<h2 id='llega(n) aquí'>llega(n) aquí</h2>
<p><a href='./apuntes.html'>{apuntes}</a></p>

</section>
</main>
<footer>
<p><a href='./index.html'>{🥭}</a></p>
<p>página actualizada en: 
<time datetime='2021-05-21'>sejmana-1660, día 2</time>
 (12021-05-21)
</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