viernes, 23 de abril de 2010

50 estilos css para tabs

Si te estas pensando en incluir alguna sección en tu sitio web de gran contenido y no sabes como distribuir tanta información, pues una solucionó esta en incluir tabs, asi tendras en cada pestaña contenido diferente y no saturaras tu sitio... en hongkiat.com han hecho una lista de 50 estilos de ccs para que los incluyas en tus proyectos:

Link: 50 Css styles

Cacoo - Creacion de diagramas online

Cacoo es herramienta de dibujo que le permite crear una variedad de esquemas tales como los mapas de sitio, UML y diagramas de red, todo esto en tiempo real y de forma gratuita.

Link: http://cacoo.com/

Comandos útiles de FFMPEG

Obtener informaciones de un archivo de vídeo
ffmpeg-i video.avi
Gire X imágenes a una secuencia de vídeo
ffmpeg-f image2-i imagen% d.jpg video.mpg
Este comando va a transformar todas las imágenes del directorio actual (llamado image1.jpg, imagen2.jpg, etc ...) a un archivo de video llamado video.mpg
Girar un vídeo a las imágenes de X
ffmpeg-i imagen% video.mpg d.jpg
Este comando generará los archivos con el nombre image1.jpg, imagen2.jpg, ...
Los siguientes formatos de imagen también están disponibles: PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.

Codificar una secuencia de vídeo para el iPpod / iPhone
ffmpeg-i source_video.avi acodec de entrada-AAC-ab-128kb vcodec mpeg4-b-1200kb mbd 2-4 banderas mv + trell aic-2-2-cmp subcmp 2-s 320x180-título X final_video.mp4
Donde:
Fuente: source_video.avi
Codec de audio: AAC
Audio bitrate: 128kb / s
Códec de vídeo: MPEG4
Video bitrate: 1200kb / s
Tamaño de vídeo: 180px 320px par
de creación de vídeo: final_video.mp4
Codificación de vídeo para la PSP
ffmpeg-i source_video.avi-b 300-s 320x240-vcodec 32-ar 24000-acodec aac final_video.mp4 xvid-ab
Donde:
Fuente: source_video.avi
Codec de audio: AAC
Audio bitrate: 32kb / s
Video Codec: xvid
Video bitrate: 1200kb / s
Tamaño de vídeo: 180px 320px par
de creación de vídeo: final_video.mp4
Extraer el sonido de un vídeo, y guardarlo como MP3
ffmpeg-i source_video.avi-vn-ar 44100-ac 2-ab 192-f mp3 sound.mp3
Donde:
video Fuente: source_video.avi
Audio bitrate: 192kb / s
formato de salida: mp3
de creación de sonido: sound.mp3
Convertir un archivo WAV a MP3
ffmpeg-i son_origine.avi-vn-ar 44100-ac 2-ab 192-f mp3 son_final.mp3
Convertir. Avi video a. Mpg
ffmpeg-i video_origine.avi video_finale.mpg
Convertir. Mpg a. Avi
ffmpeg-i video_finale.avi video_origine.mpg
Convertir. Avi a gif animado (sin comprimir)
ffmpeg-i video_origine.avi gif_anime.gif
Mezclar un video con un archivo de sonido
ffmpeg-i-i son.wav video_origine.avi video_finale.mpg
Convertir. Avi a. Flv
ffmpeg-i video_origine.avi-ab 56-ar 44100-b 200-r 15-s 320x240-f flv video_finale.flv
Convertir. Avi a dv
ffmpeg-i video_origine.avi-s pal-r pal-aspect 4:3-ar 48000-ac 2 video_finale.dv
O bien:
ffmpeg-i video_origine.avi objetivo pal-dv video_finale.dv
Convertir. Avi a mpeg para reproductores de DVD
ffmpeg-i source_video.avi objetivo 2000000000-de aspecto de 16:9 pal-dvd-ps finale_video.mpeg
Donde:
destino de salida pal-dvd: Formato
ps 2000000000 tamaño máximo del archivo de salida, en bits (en este caso, 2 Gb)
Aspecto 16:9: Widescreen
Comprimir. Avi a divx
ffmpeg-i-s video_origine.avi 320x240-vcodec msmpeg4v2 video_finale.avi
Comprimir Ogg Theora a MPEG DVD
ffmpeg-i-s film_sortie_cinelerra.ogm 720x576-vcodec acodec mpeg2video-mp3 film_termina © e.mpg
Comprimir. Avi a mpeg2 SVCD
NTSC:
ffmpeg-i video_origine.avi objetivo ntsc-svcd video_finale.mpg
PAL formato:
ffmpeg-i video_origine.avi objetivo pal-svcd video_finale.mpg
Comprimir. Avi a VCD mpeg2
NTSC:
ffmpeg-i video_origine.avi objetivo ntsc-vcd video_finale.mpg
PAL formato:
ffmpeg-i video_origine.avi objetivo pal-vcd video_finale.mpg
Multi-pass encoding con ffmpeg
ffmpeg-i-pass fichierentree 2-passlogfile ffmpeg2pass fichiersortie-2

Convertir videos con FFMPEG


He tenido la necesidad de convertir algunos videos avi a flv para su visualización el la web, se que existen varios programas en windows y linux para realizar esa sencilla tarea, pero lo interesante del asunto es que yo recibo diariamente viarios videos grabados por mi cámara IP y la tarea se vuelve tediosa cuando por la noche tengo que convertir esos videos, asi que la forma mas a adecuada de realizar esa tarea es mediante un script corriendo bajo un cron.
Así que en este post explicare la forma de realizar el script.
Primero que nada debemos saber en donde estan alojados nuestros videos y que estructura tienen las carpetas que los contienen, la estructura de mis carpetas es sencilla:
-Dia
-Hora
-Video1.avi
-Video2.avi
-Video3.avi
-....avi


únicamente tengo carpetas por día, que a su vez contienen carpetas por hora y dentro de esas están los videos, así que lo que el script tiene que hacer es entrar a la carpeta del día actual, entrar en cada una de las carpetas por hora y convertir los videos contenidos en ellas.

Los videos los guardara en una carpeta llamada flvs que se encuentra en el mismo nivel que las carpetas por dia, y dentro de esta seguira la misma estructura original Dia:Hora:Videos.

Hasta aqui la logica bien no?, ahora vamos a lo interesante, necesitamos saber que instruccion es la que me va a sacar el avi en flv, para eso utilizaremos FFMPEG y algunos parametros de conversion, la instruccion es:
ffmpeg -i video1.avi -ar 22050  -ab 32k  -r 25  -s 640x480  -vcodec flv video1.flv
donde:

-i Archivo origen
-ar Frecuencia de audio (Hz)
-ab Audio bit-rate
-r Video frame-rate
-s Resolution de salida
-vcodec Codec de salida
Adicionalmente como voy a mostrarlo en la web el link que quiero para representar cada dia va a ser una imagen, asi que necesito sacar una imagen de cualquier video, para ello utilizo nuevamente ffmpeg con parametros diferentes:
ffmpeg -i video1.flv -r 1 -t 1 -s qvga imagen1.jpg
donde:

-i Archivo origen
-r Video frame-rate
-t Tiempo
-s Resolucion

Esta instruccion me va a sacar una imagen del video video1.flv forzandolo a que sea de 1 frame y del segundo 1 del video.


Porteriormente se unen las tres partes: navegacion entre carpetas, convercion de video y obtencion de imagen, en un solo script getVideos.sh:
#!/bin/bash

 DIRECTORIO=$1
 echo "Entrando en $DIRECTORIO"
 echo "Creando flvs/$DIRECTORIO"
 mkdir "flvs/$DIRECTORIO"
 VAR=0
 DIR="flvs/$DIRECTORIO"
 for Dia in $(ls $1)
 do
  echo "Entrando en $DIRECTORIO/$Dia"
  for Hora in $(ls "$DIRECTORIO/$Dia")
  do
   for f in $(ls "$DIRECTORIO/$Dia/$Hora")
   do
    if [ ${f#*.} == 'avi' ]
    then
     TEMPFILE=$(basename $f)
     FILE=${TEMPFILE%.*}
     echo "Convirtiendo: $f y almacenando en $DIR/$FILE.flv"
     ffmpeg -i $f -ar 22050  -ab 32k  -r 25  -s 640x480  -vcodec flv -qscale 9.5 $DIR/$FILE.flv
    fi
    if [ $VAR -eq 0 ]
    then
     echo "Sacando imagen : $DIR.flv y almacenando en $DIR.jpg"
     ffmpeg -i $DIR/$FILE.flv -r 1 -t 1 -s qvga $DIR/1.jpg
    fi
    VAR=1
   done
  done
 done
Este script recibe como unico argumento el nombre de la carpeta por dia, navega por la carpeta del dia y recorre las carpetas de horas,crea la carpeta flvs/Dia/Hora si no existe, convierte el video a flv y lo guarda en dicha carpeta, obtiene la imagen del primer video solamente y la guarda en la misma carpeta, asi recursivamente hasta terminar con todos los videos almacenados en el dia.

Ahora solo tenemos que ejecutarlo asi:

$./getVideos.sh Lunes