Con esta sencilla línea, se puede extraer los frames de un vídeo:

#!/bin/bash
#extrae.sh
ffmpeg -i $1 -y -ss 5 -an -sameq -f image2 -r $2 filename%03d.jpg

Donde $1 es el fichero, y $2 los frames por segundo.

Se llamaria:

$> ./extrae.sh video.avi 18 # para extraer 18 frames por segundo

La salida sería 18 imágenes por cada segundo que ocupe el vídeo :), es decir para un vídeo de 10 segundos tendríamos 180 imágenes.

Fuente:

http://ubuntuforums.org/showthread.php?t=1141293

Espero que os sirva.
Un saludo

Convertir de ogv a mp4 usando ffmpeg

Publicado: 22 octubre, 2014 en comandos
Etiquetas:, , ,

Un pequeño apunte para convertir del formato de video ogv a mp4:

ffmpeg -i out.ogv outfile.mp4

Espero que os sirva.

Un saludo.

CakePHP (I) un pequeño vistazo

Publicado: 30 septiembre, 2014 en cakePHP
Etiquetas:

Hola, en estos post quiero hablar de CakePHP, un framework al que le tengo mucho cariño y me ha dado buenos y malos momentos como todo :).  Cake esta basado en la misma filosofía que Ruby&Rails y se distribuye bajo la licencia MIT License.

Los patrones de diseño que utiliza:

Site oficial desde donde lo podemos descargar:

Ventajas que nos ofrece el framework:

  • Compatible con PHP4 y PHP5
  • CRUD de la base de datos integrado
  • URLs amigables
  • Sistema de plantillas rápido y flexible
  • Ayudas para AJAX, Javascript, HTML, forms y más
  • Trabaja en cualquier subdirectorio del sitio
  • Validación integrada
  • Scaffolding de las aplicaciones
  • Access Control Lists
  • Sintetización de datos
  • Componentes de seguridad y sesión

Instalación.

Tan fácil como descargarlo del site oficial y descomprimirlo en tu directorio público de tu webserver y seguir los pasos que te indica.

Versión que voy a comentar:

En los siguientes post la versión que voy a probar es la 2.5.4 la actual versión estable a fecha de Septiembre de 2014.

Fuente:

Espero que con este post y los siguientes os sirva CakePHP tanto como a mí :)

Un saludo.

Un buen validador de formularios basado en JQuery

Enlace  —  Publicado: 26 abril, 2014 en Sin categoría
Etiquetas:

Instalar latex en Ubuntu

Buena entrada para instalar Latex y texmaker en Ubuntu

Enlace  —  Publicado: 2 febrero, 2014 en GNU/Linux, Sistemas operativos

 

Interesante web donde se puede probar código javascript además de distintos frameworks: mootools, YUI, jquery etc.

 

Para probar javascript

Enlace  —  Publicado: 18 enero, 2014 en Javascript
Etiquetas:, , ,

En el post anterior se explicaba como compilar, ejecutar  y ejecutar cUrl o crear un programa/script que use libcURL. En este post se explicará como mandar una petición HTTP Post a un servidor.  Si no se tiene muy claro la forma en que trabaja un servidor Web con estas llamadas leer en wikipedia ( en inglés ) este artículo http://en.wikipedia.org/wiki/POST_%28HTTP%29

Este tipo de método de respuesta del protocolo HTTP es utilizado para mandar datos a un servidor, en este post explicaré como mandar datos a un servidor sin entrar en su código es decir solo conoceremos código HTML o cliente.

Supongamos que tenemos este formulario web que modifica el volumen de sonido de un servidor remoto ( http://localhost/modifysound

formulario web

El código HTML sería el siguiente:

<div class="Notes form">
<form id="SoundsEditForm" accept-charset="utf-8" method="post" action="/modifysound">
<div style="display:none;">
<input type="hidden" value="POST" name="_method">
</div>
<fieldset>
<legend>
<input id="sound" type="number" value="23" name="data[Sounds][sound]">
<div class="submit">
<input type="submit" value="Save">
</div>
</form>
</div>

Los campos Input son los que configuran los valores que se le envía al servidor cuando hacemos la petición POST, en este caso nuestro programa los mandará automaticamente, en este caso el formulario solo tiene un campo:

<input id="sound" type="number" value="23" name="sound">

La respuesta del servidor correcta sería:

<p>
 <h2>TCP/IP Connection</h2>
OK.
Attempting to connect to '127.0.0.1' on port '5000'...OK.
Sending HTTP HEAD request...OK.
Closing socket...OK.
</p>

El código C para hacer la petición:

{
	CURL *curl;
	CURLcode res;
	//
	// Init Curl
	//
	curl = curl_easy_init();
	if(!curl) 
	{
		return 1;
	}
	//
	// Init parameters
	//
	curl_easy_setopt(curl, CURLOPT_URL, "http://localhost/modifysound");
	curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "data[Sounds][sound]=45");
	//
	// Execute command ( curl )
	//
	res = curl_easy_perform(curl);
	//
	// Check Errors
	//
	if(res != CURLE_OK)
	{
		fprintf(stderr, "curl_easy_perform() failed: %s\n",
		curl_easy_strerror(res));
	}
	//
	// always cleanup 
	//
	curl_easy_cleanup(curl);
	return 0;
}

Una vez se compile y ejecute el programa por la salida estándar deberíamos de ver  una respuesta del servidor, En este ejemplo no se ha descrito el código de la parte del servidor solo del cliente, con lo cual la parte del servidor se debería desarrollar en el lenguaje/framework que se prefiera.

En las opciones de cURL hay que destacar CURLOPT_POSTFIELDS, si en este formulario existiese más de un campo a mandar al servidor ser mandaría de esta manera: “dato1=2&dato3=3” donde se le envía dos variables dato1 y dato3 con los valores 2 y 3.

Espero que os sirva.
Un saludo.