<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux, Java y programación &#187; ffmpeg</title>
	<atom:link href="http://casidiablo.net/category/ffmpeg/feed/" rel="self" type="application/rss+xml" />
	<link>http://casidiablo.net</link>
	<description>Blog de Java, Programación y Linux</description>
	<lastBuildDate>Mon, 08 Mar 2010 03:41:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Paquetes DEB de FFmpeg para Ubuntu Intrepid</title>
		<link>http://casidiablo.net/paquetes-deb-ffmpeg-x264-ubuntu-intrepid/</link>
		<comments>http://casidiablo.net/paquetes-deb-ffmpeg-x264-ubuntu-intrepid/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 17:14:05 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[deb]]></category>
		<category><![CDATA[descarga]]></category>
		<category><![CDATA[paquetes]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2648</guid>
		<description><![CDATA[

Si bien es cierto, es posible instalar FFmpeg a través de los repositorios oficiales de Ubuntu, las personas que mantienen los paquetes no compilan dicho software con las opciones necesarias para manipular formatos no libres. La opción que teníamos antes era instalar los paquetes mediante el repositorio de Medibuntu, pero al parecer aún no han [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fpaquetes-deb-ffmpeg-x264-ubuntu-intrepid%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Paquetes%20DEB%20de%20FFmpeg%20para%20Ubuntu%20Intrepid%22%20%7D);"></div>
<p style="text-align: justify;">Si bien es cierto, es posible instalar <a href="http://casidiablo.net/ffmpeg/">FFmpeg</a> a través de los repositorios oficiales de Ubuntu, las personas que mantienen los paquetes no compilan dicho software con las opciones necesarias para manipular formatos <em>no libres</em>. La opción que teníamos antes era instalar los paquetes mediante el <a href="http://packages.medibuntu.org/">repositorio de Medibuntu</a>, pero al parecer aún no han subido FFmpeg para Intrepid.</p>
<p style="text-align: justify;">Afortunadamente, un lector llamado Eduardo se ha tomado la molestia de compilar las fuentes de <a href="http://casidiablo.net/ffmpeg/">FFmpeg</a> y <a href="http://es.wikipedia.org/wiki/X264">x264</a> y crear los paquetes <em>.deb</em> para Ubuntu Intrepid, con soporte para muchos más formatos, incluyendo los no libres. Él mismo me escribe los pasos necesarios para instalar dichos paquetes; lo primero, desinstalar los paquetes anteriores:</p>
<div class="consola">sudo apt-get purge ffmpeg x264 libx264-dev</div>
<p>Luego instalamos algunos paquetes necesarios con el siguiente comando:</p>
<div class="consola">sudo apt-get update<br />
sudo apt-get install build-essential libfaad-dev libfaac-dev libmp3lame-dev libtheora-dev</div>
<p>Luego descargamos los paquetes y los instalamos con los siguientes comandos:</p>
<div class="consola">sudo dpkg -i x264&#8230; .deb<br />
sudo dpkg -i ffmpeg&#8230;.. .deb</div>
<p>Y esto es todo. Desde aquí le doy las gracias a Eduardo por tomarse tantas molestias.</p>
<ul>
<li><strong><a class="tooltip" title="Descargar paquete para i386" href="http://casidiablo.net/descargar/FFmpeg+Intrepid">Descargar paquete DEB de FFmpeg para Ubuntu Intrepid</a></strong></li>
<li><strong><a class="tooltip" title="Descargar paquete para i386" href="http://casidiablo.net/descargar/x264+Intrepid">Descargar paquete DEB de X264 para Ubuntu Intrepid</a></strong></li>
</ul>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/deb/" rel="tag nofollow">deb</a>, <a href="http://casidiablo.net/tag/descarga/" rel="tag nofollow">descarga</a>, <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/linux/" rel="tag nofollow">linux</a>, <a href="http://casidiablo.net/tag/paquetes/" rel="tag nofollow">paquetes</a>, <a href="http://casidiablo.net/tag/ubuntu/" rel="tag nofollow">ubuntu</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/paquetes-deb-ffmpeg-x264-ubuntu-intrepid/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>FFmpeg &#8211; Tutoriales, ejemplos, tips</title>
		<link>http://casidiablo.net/ffmpeg/</link>
		<comments>http://casidiablo.net/ffmpeg/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 15:07:01 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2108</guid>
		<description><![CDATA[


FFmpeg es una completa herramienta para el procesamiento de audio y video. FFmpeg es desarrollado bajo Linux, pero puede ser usado en la mayoría de los sistemas operativos, incluyendo Windows.
El proyecto está compuesto por varias herramientas:

ffmpeg es una línea de comandos para convertir un tipo de video a otro. Soporta también grabación y codificación en [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fffmpeg%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22FFmpeg%20-%20Tutoriales%2C%20ejemplos%2C%20tips%22%20%7D);"></div>
<p style="text-align: center;"><img src="http://casidiablo.net/wordpress/wp-content/uploads/2008/10/ffmpeg-logo.png" alt="ffmpeg" /></p>
<p style="text-align: justify;"><a href="http://ffmpeg.mplayerhq.hu">FFmpeg</a> es una completa herramienta para el procesamiento de audio y video. FFmpeg es desarrollado bajo Linux, pero puede ser usado en la mayoría de los sistemas operativos, incluyendo Windows.</p>
<p style="text-align: justify;">El proyecto está compuesto por varias herramientas:</p>
<ul style="text-align: justify;">
<li><em>ffmpeg</em> es una línea de comandos para convertir un tipo de video a otro. Soporta también grabación y codificación en tiempo real desde una tarjeta de televisión.</li>
<li><em>ffserver</em> es un servidor HTTP de streaming multimedia para transmisiones en vivo.</li>
<li><em>ffplay</em> es un simple reproductor basado en SDL.</li>
<li><em>libavcodec</em> es una librería que contiene todos los de/codificadores de audio y video de FFmpeg. La mayoría de los codecs son desarrollados desde cero para asegurar el mejor rendimiento y para que su código sea fácil de reusar.</li>
<li style="text-align: justify;"><em>libavformat</em> es una librería que contiene los parsers y generadores para todos los formatos de audio y video comunes.</li>
</ul>
<h3>Instalación</h3>
<p style="text-align: justify;">La instalación de FFmpeg es muy sencilla bajo Linux puesto que se encuentra en los repositorios de todas las distribuciones más usadas. Por ejemplo, en Debian basta con ejecutar el siguiente comando para instalarlo:</p>
<div class="consola">apt-get install ffmpeg</div>
<p style="text-align: justify;">Si usas Ubuntu te recomiendo que lo instales desde los repositorios de <a href="http://www.medibuntu.org/">Medibuntu</a>, de tal manera que no tengas problemas con (de)codificadores de formatos privativos.</p>
<h3>Ejemplos de uso de ffmpeg</h3>
<ul style="text-align: justify;">
<li><a href="http://casidiablo.net/convertir-video-ffmpeg/"><strong>Lista de conversiones útiles de video usando ffmpeg</strong></a></li>
<li><a href="http://casidiablo.net/convertir-archivos-audio-ffmpeg/">Convertir WAV a MP3</a></li>
<li><a href="http://casidiablo.net/cambiar-resolucion-video-ffmpeg/">Cambiar resolución a un video</a></li>
<li><a href="http://casidiablo.net/extraer-partes-video-ffmpeg/">Limitar la duración o tamaño de un video</a></li>
<li><a href="http://casidiablo.net/ffmpeg-extraer-sonido/">Extraer audio de un video</a></li>
<li><a href="http://casidiablo.net/convertir-audio-estereo-mono-ffmpeg/">Cambiar canales de audio de estéreo a mono</a></li>
<li><a href="http://casidiablo.net/recortar-areas-video-ffmpeg/">Recortar áreas específicas de un video</a></li>
<li><a href="http://casidiablo.net/convertir-video-secuencia-fotos-ffmpeg/">Obtener secuencias de imagenes a partir de un video</a></li>
<li><a href="http://casidiablo.net/generar-video-desde-imagenes-ffmpeg/">Generar video a partir de una secuencia de imágenes</a></li>
<li><a href="http://casidiablo.net/pegar-videos-con-ffmpeg/">Unir videos usando ffmpeg</a></li>
<li><a href="http://casidiablo.net/anadir-o-quitar-pista-de-sonido-a-un-video-ffmpeg/">Añadir o quitar pista de sonido a un video</a></li>
<li><a href="http://casidiablo.net/pasar-video-a-gif-animado/">Convertir video en un GIF animado</a></li>
</ul>
<h3>Trabajando con hooks</h3>
<ul style="text-align: justify;">
<li><a href="http://casidiablo.net/camara-lenta-slow-motion-ffmpeg/">Video en cámara lenta (slow motion) con ffmpeg</a></li>
<li><a href="http://casidiablo.net/sobreponer-imagen-video/">Sobreponer imagen o texto a un video con ffmpeg &#8211; Uso de hooks [1ra parte]</a></li>
<li><a href="http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/">Parámetros avanzados de los hooks y imlib2.so en ffmpeg &#8211; [2da parte]</a></li>
<li><a href="http://casidiablo.net/poner-imagen-texto-movimiento-ffmpeg-hooks/">Sobreponer imagen o texto en movimiento [ffmpeg] &#8211; Uso de hooks [3ra parte]</a></li>
<li><a href="http://casidiablo.net/opciones-avanzadas-ffmpeg/">Efectos avanzados con hooks con ffmpeg [4ra parte]</a></li>
<li><a href="http://casidiablo.net/ffmpeg-sobreponer-imagen-texto-temporalmente/">Bonus: efectos con ffmpeg y el uso de hooks</a></li>
</ul>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/linux/" rel="tag nofollow">linux</a>, <a href="http://casidiablo.net/tag/tips/" rel="tag nofollow">tips</a>, <a href="http://casidiablo.net/tag/tutorial/" rel="tag nofollow">tutorial</a>, <a href="http://casidiablo.net/tag/video/" rel="tag nofollow">video</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/ffmpeg/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Lista de conversiones útiles de video usando ffmpeg</title>
		<link>http://casidiablo.net/convertir-video-ffmpeg/</link>
		<comments>http://casidiablo.net/convertir-video-ffmpeg/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 05:11:17 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[convertir]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2104</guid>
		<description><![CDATA[

Convertir un avi a mpg
ffmpeg -i entrada.avi salida.mpg
Convertir un mpg a avi
ffmpeg -i entrada.mpg salida.avi
Convertir avi a flv
ffmpeg -i entrada.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320×240 -f flv salida.flv
Convertir un vídeo para verlo en el iPod/iPhone
ffmpeg -i entrada.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fconvertir-video-ffmpeg%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Lista%20de%20conversiones%20%C3%BAtiles%20de%20video%20usando%20ffmpeg%22%20%7D);"></div>
<h3>Convertir un avi a mpg</h3>
<div class="consola">ffmpeg -i entrada.avi salida.mpg</div>
<h3>Convertir un mpg a avi</h3>
<div class="consola">ffmpeg -i entrada.mpg salida.avi</div>
<h3>Convertir avi a flv</h3>
<div class="consola">ffmpeg -i entrada.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320×240 -f flv salida.flv</div>
<h3>Convertir un vídeo para verlo en el iPod/iPhone</h3>
<div class="consola">ffmpeg -i entrada.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320×180 -title X salida.mp4</div>
<ul>
<li><strong>Video original</strong>: entrada.avi</li>
<li><strong>Codec de audio</strong>: aac</li>
<li><strong>Bitrate del audio</strong>: 128kb/s</li>
<li><strong>Codec de vídeo</strong>: mpeg4</li>
<li><strong>Bitrate del vídeo</strong>: 1200kb/s</li>
<li><strong>Tamaño del vídeo</strong>: 320×180</li>
<li><strong>Vídeo generado</strong>: salida.mp4</li>
</ul>
<h3>Convertir un vídeo para verlo en la PSP</h3>
<div class="consola">ffmpeg -i entrada.avi -b 300 -s 320×240 -vcodec xvid -ab 32 -ar 24000 -acodec aac salida.mp4</div>
<ul>
<li><strong>Video original</strong>: entrada.avi</li>
<li><strong>Codec de audio</strong>: aac</li>
<li><strong>Bitrate del audio</strong>: 32kb/s</li>
<li><strong>Codec de vídeo</strong>: xvid</li>
<li><strong>Bitrate del vídeo</strong>: 1200kb/s</li>
<li><strong>Tamaño del vídeo</strong>: 320×180</li>
<li><strong>Vídeo generado</strong>: salida.mp4</li>
</ul>
<h3>Convertir avi a dv</h3>
<div class="consola">ffmpeg -i entrada.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 salida.dv</div>
<h3>Convertir avi a mpeg para reproductores de dvd</h3>
<div class="consola">ffmpeg -i entrada.avi -target pal-dvd -ps 2000000000 -aspect 16:9 salida.mpeg</div>
<ul>
<li>target pal-dvd: Formato de salida</li>
<li>ps 2000000000: Tamaño máximo del archivo resultante en bits (en el ejemplo, 2Gb)</li>
<li>aspect 16:9: Panorámico</li>
</ul>
<h3>Comprimir avi a divx</h3>
<div class="consola">ffmpeg -i entrada.avi -s 320×240 -vcodec msmpeg4v2 salida.avi</div>
<h3>Comprimir Ogg Theora a Mpeg dvd</h3>
<div class="consola">ffmpeg -i entrada.ogm -s 720×576 -vcodec mpeg2video -acodec mp3 salida.mpg</div>
<h3>Comprimir avi a SVCD mpeg2</h3>
<p>Para PAL:</p>
<div class="consola">ffmpeg -i entrada.avi -target pal-svcd salida.mpg</div>
<p>Para NTSC:</p>
<div class="consola">ffmpeg -i entrada.avi -target ntsc-svcd salida.mpg</div>
<h3>Comprimir avi a VCD mpeg2</h3>
<p>Para PAL:</p>
<div class="consola">ffmpeg -i entrada.avi -target pal-vcd salida.mpg</div>
<p>Para NTSC:</p>
<div class="consola">ffmpeg -i entrada.avi -target ntsc-vcd salida.mpg</div>
<h3>Codificación con varias pasadas</h3>
<div class="consola">ffmpeg -i entrada -pass 2 -passlogfile ffmpeg2pass salida</div>
<p><strong>Fuente</strong>: <a href="http://www.catswhocode.com/blog/os/19-ffmpeg-commands-for-all-needs-824">CatsWhoCode</a> | traducción por <a href="http://mundo-geek.net">Zootropo</a></p>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/convertir/" rel="tag nofollow">convertir</a>, <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/tips/" rel="tag nofollow">tips</a>, <a href="http://casidiablo.net/tag/video/" rel="tag nofollow">video</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/convertir-video-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Bonus: efectos con ffmpeg y el uso de hooks</title>
		<link>http://casidiablo.net/ffmpeg-sobreponer-imagen-texto-temporalmente/</link>
		<comments>http://casidiablo.net/ffmpeg-sobreponer-imagen-texto-temporalmente/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 20:51:46 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[vhook]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2099</guid>
		<description><![CDATA[

Me comentaba Daniel de http://danubuntu.wordpress.com/ (bueno, la verdad no se si se llama Daniel, pero supongo), en un comentario a cerca de cómo sobreponer una imagen solo por unos segundos. Yo le respondí que ya había escrito sobre el tema en una de las entradas que he publicado sobre hooks, pero parece que entre tanta edición [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fffmpeg-sobreponer-imagen-texto-temporalmente%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Bonus%3A%20efectos%20con%20ffmpeg%20y%20el%20uso%20de%20hooks%22%20%7D);"></div>
<p style="text-align: justify;">Me <a href="http://casidiablo.net/sobreponer-imagen-video/#comment-3997">comentaba</a> Daniel de <a href="http://danubuntu.wordpress.com/">http://danubuntu.wordpress.com/</a> (bueno, la verdad no se si se llama Daniel, pero supongo), en un comentario a cerca de cómo sobreponer una imagen solo por unos segundos. Yo le respondí que ya había escrito sobre el tema en una de las entradas que he publicado sobre hooks, pero parece que entre tanta edición había quitado esa parte.</p>
<p style="text-align: justify;">Así que le(s) dejo el comando con el que se puede hacer esto.</p>
<h3>Sobreponiendo texto o imágenes durante algunos segundos</h3>
<div class="consola">ffmpeg -i entrada.avi -vhook &#8216;vhook/imlib2.so -t texto_y_texto -A max(0,255-exp(N/47))&#8217; salida.avi</div>
<p style="text-align: justify;">Lo que hace esto es, en realidad, quitarle el color al texto (recuerda que también se puede con imágenes), después de pasados unos segundos.</p>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/hook/" rel="tag nofollow">hook</a>, <a href="http://casidiablo.net/tag/linux/" rel="tag nofollow">linux</a>, <a href="http://casidiablo.net/tag/tips/" rel="tag nofollow">tips</a>, <a href="http://casidiablo.net/tag/vhook/" rel="tag nofollow">vhook</a>, <a href="http://casidiablo.net/tag/videos/" rel="tag nofollow">videos</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/ffmpeg-sobreponer-imagen-texto-temporalmente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Efectos avanzados con hooks con ffmpeg [4ra parte]</title>
		<link>http://casidiablo.net/opciones-avanzadas-ffmpeg/</link>
		<comments>http://casidiablo.net/opciones-avanzadas-ffmpeg/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 10:22:33 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[avanzadas]]></category>
		<category><![CDATA[edición]]></category>
		<category><![CDATA[efectos]]></category>
		<category><![CDATA[opciones]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2017</guid>
		<description><![CDATA[

Como hemos visto en otras entradas relacionadas con ffmpeg, esta herramienta es bastante útil para realizar una gran cantidad de tareas de edición de video. Sin embargo, aparte de simplemente convertir video o extraer audio, existen otros usos avanzados con el que podemos crear algunos efectos interesantes. En esta entrada aprenderemos a usar algunos de [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fopciones-avanzadas-ffmpeg%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Efectos%20avanzados%20con%20hooks%20con%20ffmpeg%20%5B4ra%20parte%5D%22%20%7D);"></div>
<p style="text-align: justify;">Como hemos visto en otras entradas relacionadas con <a href="http://casidiablo.net/category/ffmpeg">ffmpeg</a>, esta herramienta es bastante útil para realizar una gran cantidad de tareas de edición de video. Sin embargo, aparte de simplemente convertir video o extraer audio, existen otros usos avanzados con el que podemos crear algunos efectos interesantes. En esta entrada aprenderemos a usar algunos de ellos, todos en un solo ejemplo.</p>
<p style="text-align: justify;">Continuando con un ejemplo de otra entrada, en donde poníamos en <a href="http://casidiablo.net/camara-lenta-slow-motion-ffmpeg/">cámara lenta un video</a>, vamos a agregar un par de efectos. Lo primero será crear una cortina que cubra el video, y posteriormente un par de imágenes moviéndose que simularán un par de luces.</p>
<h3>Primer ejemplo &#8211; Crear un video estático a partir de una imagen con ffmpeg</h3>
<p style="text-align: justify;">Lo primero es crear un video en donde tengamos las cortinas estáticas. Así, <a href="http://casidiablo.net/wordpress/wp-content/uploads/2008/10/cortina.jpg">usando ésta imagen</a>, el comando sería el siguiente:</p>
<div class="consola" style="text-align: justify;">ffmpeg -loop_input -i cortina.jpg -t 10 cortina.mpg</div>
<p style="text-align: justify;">Esto creará un video con una imagen estática. La opción <code>-loop_input</code> es imprescindible puesto que el archivo de entrada es una simple imagen, es decir, solo un frame, y por tanto es necesario repetirlo durante el video. La opción <code>-t</code> indica a <code>ffmpeg</code> que el video durará 10 segundos.<span id="more-2017"></span></p>
<h3>Segundo ejemplo &#8211; Sobreponer imágenes en movimiento usando hooks</h3>
<p style="text-align: justify;">Ahora que tenemos el primer pedazo de nuestro video, vamos a jugar con otro tipo de efecto: movimiento de imágenes. Para ello vamos a ejecutar un comando bastante largo, pero fácil de digerir (eso espero):</p>
<div class="consola" style="text-align: justify;">ffmpeg -i cortina.mpg -vhook &#8216;/usr/lib/vhook/imlib2.so -x 100-(40*(sin(N/10))) -y ((H-(1.5*h))*(sin((N/10)+25)))+(h*2/3) -i luces.png&#8217; -vhook &#8216;/usr/lib/vhook/imlib2.so -x 150+(40*(sin(N/10))) -y ((H-(1.5*h))*(sin((N/15)+45)))+(h*2/3) -i luces.png&#8217; telon.mpg</div>
<p style="text-align: justify;">¡Es todo! ¡Un comando fácil de recordar! Bueno, la verdad no es tan complicado como puede parecer; sin embargo te recomiendo que lo ejecutes por partes:</p>
<div class="consola" style="text-align: justify;">ffmpeg -i cortina.mpg<br />
-vhook &#8216;/usr/lib/vhook/imlib2.so<br />
-x 100-(40*(sin(N/10)))<br />
-y ((H-(1.5*h))*(sin((N/10)+25)))+(h*2/3)<br />
-i luces.png&#8217;<br />
-vhook &#8216;/usr/lib/vhook/imlib2.so<br />
-x 150+(40*(sin(N/10)))<br />
-y ((H-(1.5*h))*(sin((N/15)+45)))+(h*2/3)<br />
-i luces.png&#8217; telon.mpg</div>
<p><strong>Explicación del comando anterior&#8230;</strong></p>
<p style="text-align: justify;">Ciertamente lo único difícil del comando anterior es el uso de los hooks (-vhook). Sin ellos el comando sería algo así:</p>
<div class="consola" style="text-align: justify;">ffmpeg -i cortina.mpg telon.mpg</div>
<p style="text-align: justify;">Por lo tanto es importante entender el uso y opciones de los hooks; sino tienes ni idea, puedes leer estos artículos en donde explico claramente qué son y cómo utilizarlos:</p>
<ul>
<li><a href="http://casidiablo.net/sobreponer-imagen-video/">Sobreponer imagen o texto a un video con ffmpeg &#8211; Uso de hooks [1ra parte]</a></li>
<li><a href="http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/">Parámetros avanzados de los hooks y imlib2.so en ffmpeg &#8211; [2da parte]</a></li>
<li><a href="http://casidiablo.net/poner-imagen-texto-movimiento-ffmpeg-hooks/">Sobreponer imagen o texto en movimiento [ffmpeg] &#8211; Uso de hooks [3ra parte]</a></li>
</ul>
<h3>Tercer ejemplo &#8211; Extraer una imagen a partir de un video</h3>
<p>Ahora vamos a extraer el primer frame del video al cual vamos a hacerle el montaje. En mi caso se llama lentas.mpg y <a href="http://casidiablo.net/camara-lenta-slow-motion-ffmpeg/">lo tomé de una entrada anterior</a>.</p>
<div class="consola">ffmpeg -itsoffset 0 -i lentas.mpg -vcodec png -vframes 1 -f rawvideo aun.png</div>
<p>Lo único a resaltar del comando anterior es el uso de la opción <code>-vframes</code> 1, que indica a <code>ffmpeg</code> que vamos a extraer un frame solamente. Luego creamos un video corto con dicha imagen:</p>
<div class="consola">ffmpeg -loop_input -i aun.png -t 3 mas_tiempo.mpg</div>
<p>Con el comando anterior creamos un video con una imagen estática, que en el siguiente pasos cubriremos con la cortina en movimiento&#8230;</p>
<h3>Cuarto ejemplo &#8211; Cortina en movimiento (efecto abrir un telón)</h3>
<p>En este caso usamos un hook para arrastrar la imagen de la cortina sobre el video que creamos en el paso anterior.</p>
<div class="consola">ffmpeg -i mas_tiempo.mpg -vhook &#8216;/usr/lib/vhook/imlib2.so -x 0 -y (-N*3) -i cortina.jpg&#8217; abre_telon.mpg</div>
<h3>Pasos finales</h3>
<p>Luego de realizar todos estos pasos, no nos queda mas sino unir los tres pedazos importantes y añadirle audio:</p>
<div class="consola">$ cat telon.mpg abre_telon.mpg lentas.mpg &gt; resultado.mpg<br />
$ ffmpeg -i resultado.mpg -i sonido.mp3 final.mpg</div>
<h3>El resultado del video&#8230;</h3>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/h0wKx-MwrdI&#038;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/h0wKx-MwrdI&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h3>Descargar archivos usados en el ejemplo</h3>
<p><a class="tooltip download" title="Contiene::cortina.jpg, luces.png, lentas.mpg" href="http://casidiablo.net/descargar/Archivos+Ejemplo+ffmpeg+hooks">Descargar archivos</a></p>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/avanzadas/" rel="tag nofollow">avanzadas</a>, <a href="http://casidiablo.net/tag/edicion/" rel="tag nofollow">edición</a>, <a href="http://casidiablo.net/tag/efectos/" rel="tag nofollow">efectos</a>, <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/opciones/" rel="tag nofollow">opciones</a>, <a href="http://casidiablo.net/tag/tip/" rel="tag nofollow">tip</a>, <a href="http://casidiablo.net/tag/tips/" rel="tag nofollow">tips</a>, <a href="http://casidiablo.net/tag/video/" rel="tag nofollow">video</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/opciones-avanzadas-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Sobreponer imagen o texto en movimiento [ffmpeg] &#8211; Uso de hooks [3ra parte]</title>
		<link>http://casidiablo.net/poner-imagen-texto-movimiento-ffmpeg-hooks/</link>
		<comments>http://casidiablo.net/poner-imagen-texto-movimiento-ffmpeg-hooks/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 16:45:19 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[movimiento]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[vhook]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2048</guid>
		<description><![CDATA[

Ahora que conocemos las variables que podemos usar con la librería imlib2, vamos con dos ejemplos simples en el que vamos a sobreponer una imagen en movimiento y luego un crear un efecto de &#8220;créditos&#8221; con archivo de texto.
Ejemplo 1 &#8211; Imagen en movimiento
En este sencillo ejemplo se insertará una imagen realizando una trayectoría lineal [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fponer-imagen-texto-movimiento-ffmpeg-hooks%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Sobreponer%20imagen%20o%20texto%20en%20movimiento%20%5Bffmpeg%5D%20-%20Uso%20de%20hooks%20%5B3ra%20parte%5D%22%20%7D);"></div>
<p style="text-align: justify;">Ahora que conocemos las variables que podemos usar con la librería <code>imlib2</code>, vamos con dos ejemplos simples en el que vamos a sobreponer una imagen en movimiento y luego un crear un efecto de &#8220;créditos&#8221; con archivo de texto.</p>
<h3>Ejemplo 1 &#8211; Imagen en movimiento</h3>
<p style="text-align: justify;">En este sencillo ejemplo se insertará una imagen realizando una trayectoría lineal a través del video. El comando es el siguiente:</p>
<div class="consola">ffmpeg -i entrada.avi <strong>-vhook &#8216;/usr/lib/vhook/imlib2.so -x 10+0.5*N -y 20+0.5*N -i tux.png&#8217;</strong> salida.mpg</div>
<h3>Explicación&#8230;</h3>
<p style="text-align: justify;">En este comando usamos las variables que <a href="http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/">se explican en la entrada pasada</a>:</p>
<ul style="text-align: justify;">
<li><strong>-vhook</strong>, activamos el uso de los hooks</li>
<li><strong>/usr/lib/vhook/imlib2.so</strong>, indica que usaremos la librería <code>imlib2</code></li>
<li><strong>-x 10+0.5*N</strong> y <strong>-y 20+0.5*N</strong>, representa la coordenada de la imagen en cada frame. Recordemos que <a href="http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/">N es igual al número del frame actual</a>. Por tanto, a medida que N va incrementando, las coordenadas X y Y también. Esto hace que la imagen se mueva en diagonal desde la esquina superior izquiera, hacia la esquina inferior derecha.</li>
<li style="text-align: justify;"><strong>-i tux.png</strong>, es la imagen a utilizar</li>
</ul>
<h3>Ejemplo 2 &#8211; Texto en movimiento [tipo créditos]</h3>
<p style="text-align: justify;">En el siguiente ejemplo usamos <code>imlib2</code> para leer un archivo de texto y mostrar su contenido en forma de créditos; el comando es:</p>
<div class="consola" style="text-align: justify;">ffmpeg -i entrada.avi <strong>-vhook &#8216;/usr/lib/vhook/imlib2.so -F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/10 -x 100 -y -1.0*N -f creditos.txt&#8217;</strong> salida.mpg</div>
<h3 style="text-align: justify;">Explicación&#8230;</h3>
<ul style="text-align: justify;">
<li style="text-align: justify;"><strong>-vhook</strong>, activamos el uso de los hooks</li>
<li style="text-align: justify;"><strong>/usr/lib/vhook/imlib2.so</strong>, indica que usaremos la librería imlib2</li>
<li style="text-align: justify;"><strong>-F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/10</strong>, indica que usaremos el tipo de letra Purisa a tamaño 10</li>
<li style="text-align: justify;"><strong>-x 100</strong> y <strong>-y </strong><strong>-1.0*N</strong>, representa la coordenada del texto en cada frame. Recordemos que <a href="http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/">N es igual al número del frame actual</a>. Como puedes ver el valor de X es siempre constante, puesto que no queremos que se mueva hacia los lados. Por otro lado, Y varía cada vez que pasemos al siguiente frame, o sea que, a medida que N va incrementando, las coordenadas Y también.<br />
En este ejemplo los créditos se mueven de abajo hacia arriba. Si quisieramos invertir dicho movimiento, bastaría con poner el parámetro de -y en positivo.</li>
<li style="text-align: justify;"><strong>-f creditos.txt</strong>, es el archivo de texto que contiene los créditos</li>
</ul>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/hook/" rel="tag nofollow">hook</a>, <a href="http://casidiablo.net/tag/imagen/" rel="tag nofollow">imagen</a>, <a href="http://casidiablo.net/tag/movimiento/" rel="tag nofollow">movimiento</a>, <a href="http://casidiablo.net/tag/tip/" rel="tag nofollow">tip</a>, <a href="http://casidiablo.net/tag/vhook/" rel="tag nofollow">vhook</a>, <a href="http://casidiablo.net/tag/video/" rel="tag nofollow">video</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/poner-imagen-texto-movimiento-ffmpeg-hooks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Parámetros avanzados de los hooks y imlib2.so en ffmpeg &#8211; [2da parte]</title>
		<link>http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/</link>
		<comments>http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 09:55:32 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[imlib2]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[vhook]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2043</guid>
		<description><![CDATA[

En el anterior artículo veíamos un par de ejemplos del uso de hooks, específicamente para sobreponer imágenes o texto en un video, aunque no hicimos nada avanzado. Antes de continuar con esta serie de ejemplos, vamos a repasar un poco las opciones avanzadas para imlib2.so.
Algunas veces necesitamos sobreponer imágenes o texto en movimiento, para lo [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fopciones-avanzadas-hook-ffmpeg%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Par%C3%A1metros%20avanzados%20de%20los%20hooks%20y%20imlib2.so%20en%20ffmpeg%20-%20%5B2da%20parte%5D%22%20%7D);"></div>
<p style="text-align: justify;">En el anterior artículo veíamos un par de ejemplos del uso de hooks, específicamente para <a href="http://casidiablo.net/sobreponer-imagen-video/">sobreponer imágenes o texto en un video</a>, aunque no hicimos nada avanzado. Antes de continuar con esta serie de ejemplos, vamos a repasar un poco las opciones avanzadas para <code>imlib2.so</code>.</p>
<p style="text-align: justify;">Algunas veces necesitamos sobreponer imágenes o texto en movimiento, para lo cual <code>imlib2.so</code> proporciona algunas variables y constantes que podemos usar al momento de fijar las coordenadas; estas son:</p>
<table border="1" align="center">
<tbody>
<tr>
<td><var>N</var></td>
<td>Número del frame (inicia en cero)</td>
</tr>
<tr>
<td><var>H</var></td>
<td>altura del frame</td>
</tr>
<tr>
<td><var>W</var></td>
<td>anchura del frame</td>
</tr>
<tr>
<td><var>h</var></td>
<td>altura de la imagen</td>
</tr>
<tr>
<td><var>w</var></td>
<td>anchura de la imagen</td>
</tr>
<tr>
<td><var>X</var></td>
<td>coordenada horizontal previa del texto o imagen</td>
</tr>
<tr>
<td><var>Y</var></td>
<td>coordenada vertical previa del texto o imagen</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Es posible además usar la constante <var>PI</var> y funciones matemáticas como por ejemplo seno (<code>sin</code>), valor absoluto (<code>abs</code>), tangente (<code>tan</code>), etc. (todas las que están disponibles  en el <a href="http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html#SEC17">evaluador de fórmulas de ffmpeg</a>).</p>
<p style="text-align: justify;">Y si te preguntas para qué demonios se utilzan las fórmulas matemáticas, pues bien&#8230; resultan especialmente útiles cuando se quieren realizar efectos de movimiento con curvas, de manera automática. Vamos a ver un ejemplo en la próxima entrada; pero antes es importante que tengas claro esto.</p>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/hook/" rel="tag nofollow">hook</a>, <a href="http://casidiablo.net/tag/imlib2/" rel="tag nofollow">imlib2</a>, <a href="http://casidiablo.net/tag/tip/" rel="tag nofollow">tip</a>, <a href="http://casidiablo.net/tag/vhook/" rel="tag nofollow">vhook</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/opciones-avanzadas-hook-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sobreponer imagen o texto a un video con ffmpeg &#8211; Uso de hooks [1ra parte]</title>
		<link>http://casidiablo.net/sobreponer-imagen-video/</link>
		<comments>http://casidiablo.net/sobreponer-imagen-video/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 12:00:58 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[sobreponer]]></category>
		<category><![CDATA[texto]]></category>
		<category><![CDATA[vhook]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2030</guid>
		<description><![CDATA[

Ésta vez aprenderemos algo bastante útil a la hora de editar videos con ffmpeg, y es el uso de hooks. Los hooks permiten esencialmente modificar videos. Se utilizan añadiendo la opción -vhook al ffmpeg, se pueden usar cuantos sean necesarios, y se ejecutarán en el orden en que son escritos en el comando.
Los hooks utilizan [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fsobreponer-imagen-video%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Sobreponer%20imagen%20o%20texto%20a%20un%20video%20con%20ffmpeg%20-%20Uso%20de%20hooks%20%5B1ra%20parte%5D%22%20%7D);"></div>
<p style="text-align: justify;">Ésta vez aprenderemos algo bastante útil a la hora de editar videos con <code>ffmpeg</code>, y es el uso de <a href="http://ffmpeg.mplayerhq.hu/hooks.html">hooks</a>. Los hooks permiten esencialmente modificar videos. Se utilizan añadiendo la opción <code>-vhook</code> al <code>ffmpeg</code>, se pueden usar cuantos sean necesarios, y se ejecutarán en el orden en que son escritos en el comando.</p>
<p style="text-align: justify;">Los hooks utilizan módulos externos para realizar las tareas de edición del video. Dichos módulos no son más que librerías dinámicas (.so, .dll, .dylib), que por lo general se encuentran en /usr/lib/vhook/. Dependiendo de la tarea deseada, utilizamos alguno de estos módulos; para el caso de sobreponer una imagen o texto utilizaremos <code>imlib2.so</code>.</p>
<h3>Uso de imlib2.so</h3>
<p style="text-align: justify;">Usando este módulo es posible sobreponer una imagen o texto a un video. Podemos especificar el texto directamente, o indicar un archivo de texto donde se encuentre.</p>
<table border="1" align="center">
<tbody>
<tr>
<td><samp>&#8216;-C &lt;rgb.txt&gt;&#8217;</samp></td>
<td>Nombre de archivo para leer el tipo de colores RGB a usar</td>
</tr>
<tr>
<td><samp>&#8216;-c &lt;color&gt;&#8217;</samp></td>
<td>El color del texto</td>
</tr>
<tr>
<td><samp>&#8216;-F &lt;fontname&gt;&#8217;</samp></td>
<td>Tipo de fuente y tamaño</td>
</tr>
<tr>
<td><samp>&#8216;-t &lt;text&gt;&#8217;</samp></td>
<td>El texto</td>
</tr>
<tr>
<td><samp>&#8216;-f &lt;filename&gt;&#8217;</samp></td>
<td>El nombre del archivo desde donde se leerá el texto</td>
</tr>
<tr>
<td><samp>&#8216;-x &lt;expression&gt;&#8217;</samp></td>
<td>coordenada x del texto o imagen</td>
</tr>
<tr>
<td><samp>&#8216;-y &lt;expression&gt;&#8217;</samp></td>
<td>coordenada y del texto o imagen</td>
</tr>
<tr>
<td><samp>&#8216;-i &lt;filename&gt;&#8217;</samp></td>
<td>Nombre del archivo de imagen</td>
</tr>
<tr>
<td><samp>&#8216;-R &lt;expression&gt;&#8217;</samp></td>
<td>Valor para color R (red=rojo)</td>
</tr>
<tr>
<td><samp>&#8216;-G &lt;expression&gt;&#8217;</samp></td>
<td>Valor para color G (green=verde)</td>
</tr>
<tr>
<td><samp>&#8216;-B &lt;expression&gt;&#8217;</samp></td>
<td>Valor para color B (blue=azul)</td>
</tr>
<tr>
<td><samp>&#8216;-A &lt;expression&gt;&#8217;</samp></td>
<td>Valor para el canal Alpha</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span id="more-2030"></span>Por lo general es necesario especificar el tipo de fuente a usar, a menos que los archivos de fuente estén dentro del la variable de entorno <code>FONTPATH</code>, además de indicar el tamaño de la misma, por ejemplo:</p>
<pre>-F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/20</pre>
<p style="text-align: justify;">donde 20 es el tamaño.</p>
<h3>Ejemplo 1 &#8211; Sobreponiendo texto en un video</h3>
<p style="text-align: justify;">En esta ocasión vamos a sobreponer un texto en un video, lo que resulta útil para poner una marca. Supongamos que queremos que en la parte superior izquierda del video aparezca el siguiente texto: &#8220;<em>http://casidiablo.net</em>&#8220;. El comando para realizar esto sería:</p>
<div class="consola"><code>ffmpeg -i entrada.avi <strong>-vhook '/usr/lib/vhook/imlib2.so -F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/15 -x 10 -y 10 -t http://casidiablo.net'</strong> salida.mpg</code></div>
<h3>Explicación&#8230;</h3>
<p style="text-align: justify;">Es un comando algo largo pero no es complicado. Veamos:</p>
<ul style="text-align: justify;">
<li>Primero añadimos la opción <strong><code>-vhook</code></strong> al comando <code>ffmpeg</code>, y entre comillas simples ponemos las opciones del hook.</li>
<li><code><strong>/usr/lib/vhook/imlib2.so</strong></code>, indica que el módulo a usar será imlib2.so</li>
<li><code><strong>-F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/15</strong></code>, indica que la fuente será Purisa y tendrá un tamaño de 22.</li>
<li><code><strong>-x 10 </strong></code>y <code><strong>-y </strong></code><code><strong>10</strong></code>, indican las coordenadas que tendrá el texto</li>
<li style="text-align: justify;"><code><strong>-t "Creado usando Linux"</strong></code>, es el texto a insertar</li>
</ul>
<p style="text-align: justify;">De igual manera, es posible insertar una imágen, lo cual veremos en el segundo ejemplo.</p>
<h3 style="text-align: justify;">Ejemplo 2 &#8211; Sobreponiendo imagen en un video</h3>
<p style="text-align: justify;">Ahora vamos a sobreponer una imagen en un video, por ejemplo esta:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://casidiablo.net/wordpress/wp-content/uploads/2008/10/tux.png" alt="" /></p>
<p style="text-align: justify;">El comando para realizar esto sería:</p>
<div class="consola" style="text-align: justify;"><code>ffmpeg -i entrada.avi <strong>-vhook '/usr/lib/vhook/imlib2.so -x 10 -y 10 -i tux.png'</strong> salida.mpg</code></div>
<h3 style="text-align: justify;">Explicación&#8230;</h3>
<p style="text-align: justify;">Esta vez es un poco más sencillo; veamos:</p>
<ul style="text-align: justify;">
<li>Primero añadimos la opción <strong><code>-vhook</code></strong> al comando <code>ffmpeg</code>, y entre comillas simples ponemos las opciones del hook.</li>
<li><code><strong>/usr/lib/vhook/imlib2.so</strong></code>, indica que el módulo a usar será imlib2.so</li>
<li><code><strong>-x 10 </strong></code>y <code><strong>-y </strong></code><code><strong>10</strong></code>, indican las coordenadas que tendrá la imagen</li>
<li><code><strong>-i tux.png</strong></code>, es la imagen a insertar</li>
</ul>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/hook/" rel="tag nofollow">hook</a>, <a href="http://casidiablo.net/tag/imagen/" rel="tag nofollow">imagen</a>, <a href="http://casidiablo.net/tag/sobreponer/" rel="tag nofollow">sobreponer</a>, <a href="http://casidiablo.net/tag/texto/" rel="tag nofollow">texto</a>, <a href="http://casidiablo.net/tag/tips/" rel="tag nofollow">tips</a>, <a href="http://casidiablo.net/tag/vhook/" rel="tag nofollow">vhook</a>, <a href="http://casidiablo.net/tag/video/" rel="tag nofollow">video</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/sobreponer-imagen-video/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Video en cámara lenta (slow motion) con ffmpeg</title>
		<link>http://casidiablo.net/camara-lenta-slow-motion-ffmpeg/</link>
		<comments>http://casidiablo.net/camara-lenta-slow-motion-ffmpeg/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 12:28:12 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[camara]]></category>
		<category><![CDATA[lenta]]></category>
		<category><![CDATA[slow motion]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=2019</guid>
		<description><![CDATA[

Otro de los trucos que podemos hacer con ffmpeg es poner un video en cámara lenta, también conocido como slow motion. El comando ésta vez es un poco más complejo, que no difícil, puesto que vamos a usar pipes; pero por supuesto al final explicaré cada parte.
Antes que nada es de aclarar que NO es [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fcamara-lenta-slow-motion-ffmpeg%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Video%20en%20c%C3%A1mara%20lenta%20%28slow%20motion%29%20con%20ffmpeg%22%20%7D);"></div>
<p style="text-align: justify;"><a href="http://www.youtube.com/watch?v=sc0Gbsw70Hk"><img style="float:left;" src="http://i4.ytimg.com/vi/sc0Gbsw70Hk/default.jpg" alt="" /></a>Otro de los trucos que podemos hacer con ffmpeg es poner un video en cámara lenta, también conocido como <em>slow motion</em>. El comando ésta vez es un poco más complejo, que no difícil, puesto que vamos a usar pipes; pero por supuesto al final explicaré cada parte.</p>
<p style="text-align: justify;">Antes que nada es de aclarar que NO es posible hacerlo únicamente con <code>ffmpeg</code>, sino que es necesario utilizar el comando <code>yuvfps</code>. Asi que si no lo tienes instalado:</p>
<div class="consola">apt-get install yuvfps</div>
<p style="text-align: justify;">Otro dato a tener en cuenta es que, <code>yuvfps</code> lee y escribe los datos del video desde y hacia la entrada (stdin) y salida (stdout) estándar, respectivamente. Este es el motivo por el cual podemos/debemos usar pipes.</p>
<h3>Ejemplo&#8230;</h3>
<p style="text-align: justify;">Supongamos que hemos descargado <a href="http://www.youtube.com/watch?v=IuP3XmjKNGs">este video del Youtube</a>, en donde una muchacha recibe un golpe fuertísimo, y queremos poner el video en cámara lenta. Pues bien, el comando sería el siguiente:</p>
<div class="consola">ffmpeg -i mujeres.flv -f yuv4mpegpipe &#8211; | yuvfps -s 15:1 -r 15:1 | ffmpeg -f yuv4mpegpipe -i &#8211; -f mpeg2video -r 29.97 -y lentas.mpeg</div>
<p>Después de ello, el video resultante (<em>lentas.mpeg</em>) <a href="http://www.youtube.com/watch?v=sc0Gbsw70Hk">quedaría algo así</a>.</p>
<h3>Explicación&#8230;</h3>
<p style="text-align: justify;">El comando en realidad se divide en tres partes principalmente:</p>
<ul style="text-align: justify;">
<li> La primera es cuando convertimos el video original en uno con formato yuv4mpegpipe (<code>ffmpeg -i mujeres.flv -f yuv4mpegpipe -</code>). Vemos que el nombre del archivo original es <em>mujeres.flv</em>, y con el comando <code>-f</code> le indicamos a <code>ffmpeg</code> que el formato del video de salida será <code>yuv4mpegpipe</code>. Por último, ponemos un guión (<code>-</code>) que representa el archivo de salida, y que será lo que pasemos como parámetro al siguiente comando&#8230;</li>
<li>El segundo comando (<code>yuvfps -s 15:1 -r 15:1</code>) disminuye la velocidad del video a la mitad. Puesto que <code>yuvfps</code> lee la <em>stdin</em>, en realidad está leyendo el archivo que representa el guión del comando anterior.</li>
<li style="text-align: justify;">Por último, reconvertimos el video generado por el comando anterior que está en formato <code>yuv4mpegpipe</code> (ffmpeg -f yuv4mpegpipe -i &#8211; ), generando un archivo en formato MPEG2 (<code>-f mpeg2video -r 29.97 lentas.mpeg</code>).</li>
</ul>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/camara/" rel="tag nofollow">camara</a>, <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/lenta/" rel="tag nofollow">lenta</a>, <a href="http://casidiablo.net/tag/slow-motion/" rel="tag nofollow">slow motion</a>, <a href="http://casidiablo.net/tag/tip/" rel="tag nofollow">tip</a>, <a href="http://casidiablo.net/tag/video/" rel="tag nofollow">video</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/camara-lenta-slow-motion-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Convertir video en un GIF animado [ffmpeg]</title>
		<link>http://casidiablo.net/pasar-video-a-gif-animado/</link>
		<comments>http://casidiablo.net/pasar-video-a-gif-animado/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 19:22:46 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[animado]]></category>
		<category><![CDATA[convertir]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=1970</guid>
		<description><![CDATA[


Otro sencillo truco que nos permitirá transformar un video en una imagen GIF con movimiento. El comando como siempre es muy sencillo:
ffmpeg -i video.mpeg imagen.gif
Sin embargo, si te llega a salir el error [gif @ 0xb7f2b208]ERROR: gif only handles the rgb24 pixel format, solo debes modificar un poco el comando:
ffmpeg -i video.mpeg -pix_fmt rgb24 imagen.gif
Con [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fpasar-video-a-gif-animado%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Convertir%20video%20en%20un%20GIF%20animado%20%5Bffmpeg%5D%22%20%7D);"></div>
<p style="text-align: center;"><img src="http://casidiablo.net/wordpress/wp-content/uploads/2008/10/video-gif.png" alt="video gif" /></p>
<p style="text-align: justify;">Otro sencillo truco que nos permitirá transformar un video en una imagen GIF con movimiento. El comando como siempre es muy sencillo:</p>
<div class="consola">ffmpeg -i video.mpeg imagen.gif</div>
<p style="text-align: justify;">Sin embargo, si te llega a salir el error <code>[gif @ 0xb7f2b208]ERROR: gif only handles the rgb24 pixel format</code>, solo debes modificar un poco el comando:</p>
<div class="consola">ffmpeg -i video.mpeg -pix_fmt rgb24 imagen.gif</div>
<p style="text-align: justify;">Con esto le indicamos a <code>ffmpeg</code> que el formato de los pixeles será rgb24.</p>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/animado/" rel="tag nofollow">animado</a>, <a href="http://casidiablo.net/tag/convertir/" rel="tag nofollow">convertir</a>, <a href="http://casidiablo.net/tag/ffmpeg/" rel="tag nofollow">ffmpeg</a>, <a href="http://casidiablo.net/tag/gif/" rel="tag nofollow">gif</a>, <a href="http://casidiablo.net/tag/imagen/" rel="tag nofollow">imagen</a>, <a href="http://casidiablo.net/tag/video/" rel="tag nofollow">video</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/pasar-video-a-gif-animado/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
