15 septiembre 2010

¿Cómo convertir ficheros flv a avi o mpeg?

Este es  un rápido Cómo, porque pienso que hay muchas páginas en la red que extienden el
tema con mayor profundidad y detalle.

Como prerrequisito tenemos que tener instalado ffmpeg. Si lo  tenemos instalado tendremos instaladas todas
las librerías que necesita.

Lo primero que podemos hacer es ver la información del fichero que queremos convertir
# ffmpeg -i fichero.flv.

Para convertir a un formato sería tan fácil  como ejecutar
# ffmpeg -i fichero.flv fichero.avi

o bien

# ffmpeg -i fichero.flv fichero.mpeg.

Existen múltiples recursos en los que nos que nos enseñan una completa utilización del programa:

http://www.hiteshagrawal.com/ffmpeg/converting-audiovideos-using-ffmpeg
http://mundogeek.net/archivos/2008/10/10/19-cosas-utiles-que-puedes-hacer-con-ffmpeg/
http://ubuntuforums.org/showthread.php?t=1117283
http://howto-pages.org/ffmpeg/

Como descargar videos o audio flash en linux

La manera en la que lo hago yo es un poco manual, pero a mi me  funciona perfectamente.

Cuando comenzamos a ver el vídeo o a escuchar el audio desde el navegador, es normal que veamos cómo se está descargando el fichero flash en segundo plano en la barra de progreso



En este momento si listamos los ficheros que tenemos en /tmp podremos ver uno que coincide con la hora en la que iniciamos la reproducción del flash, y que comienza por "flash" seguido de letras y números. Ésta es nuestra reproducción.

Cuando finalice de descargar todo el buffer, podremos ver cómo ya no varía el tamaño de este fichero. En este momento podemos copiar este fichero donde queramos, y ponerle extensión .flv para no confundirlo con un mpeg, o un mp3.

09 septiembre 2010

Script para ejecutar chown sólo en ficheros con un uid determinado

Hace unos días me llegó una petición de  uno de nuestros clientes. Quería poder ejecutar chown sin ser root sobre determinados ficheros. La particularidad de la petición es que si no eres root, sólo puedes cambiar de propietario tus ficheros.

Pensamos en solucionarlo configurando sudo de modo que el usuario pudiera utilizar chown, pero no tuvimos que darle ni una vuelta para darnos cuenta de que era una opción demasiado peligrosa, ya que de esa manera, el usuario podría cambiar el propietario de cualquier fichero.

Ahora sí comenzamos a darle unas vueltas  y finalmente escribimos un script. El script es muy sencillo, existe un array con la lista de usuarios a los que puede pertenecer el fichero o ficheros a modificar, es decir, si tengo el usuario "pepe", el usuario "manolo", y el usuario "perico" y sólo quiero poder ejecutar chown para ficheros que pertenecen a "pepe" y a "manolo", son estos dos usuarios los que tengo que incluir en el array.

La sintaxis es como la de chown, pero con el nombre del script, y si además está en sudoers será:

#sudo mchown usuario fichero
No es que sea la octava maravilla del mundo, pero cumple su función .

El script en cuestión es éste:



#/bin/bash

##########################################################################
# Shellscript:  mchown - cambia el propietario de un fichero o ficheros
# Date       :  2010-9-9
# Categoria   : Utilidades de ficheros
##########################################################################


PN=`basename "$0"`                      # Nombre del programa
VER='1.0'

Uso () {
    echo >&2 "$PN  Cambia los permisos de ficheros con usuarios determinados
                  en el directorio actual, $VER

     Uso: $PN usuario [fichero...]

     Se puede dar el nombre de ficheros determinados o utilizar *. No es recursivo.
     "
     exit 1
}
# Comprobamos si existen los tres usuarios en el sistema

USUARIOS=( usuario1 usuario2 usuario3 usuario4)
i=0
while [ $i -lt 4 ]; do
   usr=`id -u ${USUARIOS[$i]} 2>/dev/null`
   case $? in
      0) USUID[$i]=$usr;
        indice=$i
      ;;
      *)
      ;;
   esac
   (( i=i+1 ))
done

[ $# -lt 1 ] && Uso

# Si nos dan PN,  usuario y fichero continuamos

nuevoprop=$1
while [ $# -gt 1 ] ; do
    for propiet in "${USUID[@]}"; # Iteramos sobre el array
    do
        fichero=`stat -c %u $2` # comprobamos el uid del fichero
        if [ $fichero == $propiet ]; # Validamos el uid del fichero
            then
            chown $nuevoprop $2
            unset fichero
        fi
     shift # movemos la posicion del parametro un lugar
    done

done


Liberada versión 1.3.2 de wine

Se ha liberado la versión 1.3.3 de wine

En la nota del lanzamiento destacan entre otras cosas una actualización del motor de Gecko, incluyendo ahora una versión de 64 bits, una nueva implementación del soporte de consola en terminales Unix, nuevas funciones en dlls de tiempo de ejecución de C y el arreglo de algunos bugs.

Wine es el emulador que permite ejecutar aplicaciones Windows en otros Sistemas operativos.

08 septiembre 2010

Aquí viene la "Internet TV Android" de Sony

Sony  ha presentado en primicia mundial la primera televisión Google. La ha presentado en la IFA de Berlín y va a tener un procesador Atom CE4100 de 1,2 Ghz.


Esta televisión va a costar entre 2000 y 3000 dólares (en USA).







Además de Sony habrá otros partners de Google que fabriquen televisiones Android, probablemente a precios más asequibles