Mostrando las entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Linux. Mostrar todas las entradas

2018-03-06

Busqueda de fondos de pantalla

bash script para Linux debian-based

Hace tiempo que no publicaba nada por estos lares, pero hoy se me ocurrió pulir y compartir un script que hice hace unas semanas cuando buscaba cambiar mi carpeta de fondos aleatorios de forma automática.
Como bien verán en la imágen, el script lista (y copia si se desea) todas las imagenes con cierta relación de aspecto que encuentre en la carpeta donde se ejecuta, aunque tambien puede hacerlo en forma recursiva si se quiere revisar una carpeta con varias en su interior.

fah_list-walls - Ayuda y modo de empleo

Para hacerlo un poco más cómodo al uso, el valor que se ingresa como "relación de aspecto", puede en realidad ser expresado de varias maneras: "X:Y" como suele usarse hoy en día (ej. 16:9, 4:3, etc), en decimal con coma o punto (ej. 1.77 o 1,33), o como medidas en pixeles específicas (ej. 1280x720, 800x600, etc); y si se le definen 2 valores (mínimo y máximo) separados por ";" (punto y coma), fah_list-walls buscará todas las imagenes que concuerden con tal rango.
De todas maneras todo lo comentado se encuentra escrito en la Ayuda y modo de empleo que pueden visualizar, una vez "instalado" el script, ejecutando:
fah_list-walls -h

El mismo hace uso de paquetes que ya suelen venir por defecto en cualquier distribución basada en debian (como Linux Mint ó MX Linux, x ej), pero por las dudas dejo el comando para instalar las dependencias más improbables (otras como cp o tr es casi imposible que no existan instaladas):
sudo apt install -y bc imagemagick


Sin más que comentar, si desean usarlo tendrán que crear un archivo llamado fah_capture-screen dentro de /usr/local/bin/:
sudo nano /usr/local/bin/fah_capture-screen

Pegar el código del script en el mismo (Ctrl+Shift+V):
#!/bin/bash

# Versión 20170306

# Ayuda y modo de empleo
mostrarAyuda () {
  echo -e "\n\tLista todas las imagenes que correspondan al rango de relacion de aspecto ingresado. El script crea un archivo .LOG de la misma lis$
  echo -e "\tSi no se especifica rango, se busca por la relacion de aspecto 16:9 (1.77)";
  echo -e "\nUSO:"
  echo -e "\t${0##*/} [ -a <VALOR> | -c <VALOR> | -h | -l [<VALOR>] | -r |-s ]"
  echo -e "\nOPCIONES:"
  echo -e '\t-a\tAspect Ratio: Relacion de aspecto a buscar escrita como division, decimal o medida especifica en pixeles; pueder ser una en espec$
  echo -e "\t-c\tCopy: Define la direccion del directorio (path) a donde copiar los archivos que coincidan con la busqueda."
  echo -e "\t-h\tHelp: Ayuda y modo de empleo."
  echo -e "\t-l\tLog: Define el archivo de log. Por defecto: \"./FECHA_HORA.log\""
  echo -e "\t-r\tRecursive: Define que la busqueda sera recursiva a partir del directorio raiz en el que se ejecuta la misma."
  echo -e "\t-s\tSilence: Realiza el proceso sin crear log aunque haya sido definido en -l"
  echo -e "\nEJEMPLOS:"
  echo -e '\t'${0##*/}
  echo -e '\t'${0##*/}' -a "4:3"'
  echo -e '\t'${0##*/}' -s -a "1.70;1.78"'
  echo -e '\t'${0##*/}' -a "1366x768" -c /mi/directorio/de/fondos/'
  echo -e '\t'${0##*/}' -l milog.log -a "1399x768"'
  echo -e '\t'${0##*/}' -r -l milog.log'
  echo -e ""
}

# Valores por defecto
FECHA=$(date +"%Y%m%d_%H%M%S");
LIST="./$FECHA.txt";
DIR="";
RECURSIVE="";
MIN_AR="1.77";
MAX_AR="1.77";
CANT=0;

# Procesamiento de parametros
while getopts 'a:c:hl:rs' OPCION ; do
  case $OPCION in
    a)
      AUX=$OPTARG ;
      MIN_AR=$(echo "${AUX%%;*}") ;
      MAX_AR=$(echo "${AUX##*;}") ;
      MIN_AR=$(echo "$MIN_AR" | tr \:Xx \/);
      MAX_AR=$(echo "$MAX_AR" | tr \:Xx \/);
      MIN_AR=$(echo "$MIN_AR" | tr , .);
      MAX_AR=$(echo "$MAX_AR" | tr , .);
      MIN_AR=$(echo "$MIN_AR"  | bc -l);
      MAX_AR=$(echo "$MAX_AR"  | bc -l);
      if [ $(echo "$MIN_AR > $MAX_AR" | bc) -eq 1 ] ; then
        echo -e "\nWARNING: MIN=$MIN_AR no puede ser mayor a MAX=$MAX_AR\n\tSe asume MIN=$MAX_AR y MAX=$MIN_AR" ;
        AUX=$MIN_AR;
        MIN_AR=$MAX_AR;
        MAX_AR=$AUX;
      fi
      ;;
    c)
      COPY=$OPTARG ;
      ;;
    h)
      mostrarAyuda ;
      exit 0 ;
      ;;
    l)
      LIST=$OPTARG ;
      ;;
    r)
      RECURSIVE="TRUE";
      ;;
    s)
      LIST="" ;
      ;;
    \?)
      echo -e "\nERROR: -$OPTARG no es un parametro valido" ;
      mostrarAyuda ;
      ;;
    :)
      echo -e "\nERROR: Opción -$OPTARG requiere un valor" ;
      mostrarAyuda ;
      exit 1 ;
      ;;
  esac
done

# BUSQUEDA DE IMAGENES
checkImages () {
  for FILE in "$DIR"*.{png,jpg,jpeg,bmp,tiff} ; do
    if [ -f "$FILE" ] ; then
      SIZE=$(identify -format '%w/%h' "$FILE");
      if [ ! -z "$SIZE" ] ; then
        AR=$(echo "$SIZE" | bc -l);
        if [ $(echo "$AR >= $MIN_AR" | bc) -eq 1 ] && [ $(echo "$AR <= $MAX_AR" | bc) -eq 1 ] ; then
          if [ -z "$LIST" ] ; then
            LIST="/dev/null" ;
          else
            echo -e "$FILE" > "$LIST" ;
            if [ -f "$LIST" ] ; then
              LIST=$(readlink -f "$LIST") ;
            else
              echo -e "\nERROR: No se encontro el listado de archivos";
              exit 1;
            fi
          fi
          echo "$FILE";
          let CANT+=1;
          if [ ! -z "$COPY" ] ; then
            cp "$FILE" "$COPY" ;
          fi
        fi
      fi
    fi
  done
}

checkImages ;
if [ ! -z "$RECURSIVE" ] ; then
  for DIR in */ ; do
    checkImages "$DIR";
  done
fi

echo -e "\nImagenes que corresponden a la busqueda: $CANT";

Cerrar el archivo (Ctrl+X) y aceptar guardar las modificaciones cuando nano lo pregunte.

Y por último darle permisos de ejecución:
sudo chmod +x /usr/local/bin/fah_list-walls


Que lo disfruten ^_^

2014-11-08

Capturar pantalla en video con FFmpeg

bash script para Linux debian-based

A pesar de que en Comandos útiles de FFmpeg ya publiqué cómo capturar la pantalla completa en video directamente pasando los valores por consola, la idea de este script es que se encargue de hablar con FFmpeg para simplificarte las cosas.
Funciona en cualquier distro basada en debian (Linux Mint, Ubuntu, etc) con los paquetes necesarios instalados (los cuáles podrán ver al final de esta entrada) y toma todos los valores que necesite automáticamente.
El mismo da la posibilidad de definirle a cuántos FPS (frames per second, cuadros por segundo) y de cuánto tiempo se quiere realizar la captura, así como también el lugar en donde se guardará el archivo de video resultante, por supuesto. En caso de no definirse la salida, el video se almacenará en formato mkv en el home o carpeta personal con la fecha y hora de inicio de grabación.

fah_capture-screen - Ayuda y modo de empleo

Entonces, para ponerlo en marcha tendremos que crear un archivo llamado fah_capture-screen dentro de /usr/local/bin/:
cd /usr/local/bin && sudo nano fah_capture-screen

En el cuál pegaremos (Ctrl+Shift+V) el código del script:
#!/bin/bash

# Versión 20141108_2

# Ayuda y modo de empleo
mostrarAyuda () {
   echo -e "\nfah_capture-screen: Captura pantalla completa en video."
   echo -e "\nUSO:"
   echo -e "\tfah_capture-screen [ -f <VALOR> | -t <VALOR> | -h | -o <SALIDA[.mkv|.mp4|.avi]> ]"
   echo -e "\nOPCIONES:"
   echo -e "\t-f\tFPS (Frames Por Segundo). Por defecto: 30."
   echo -e "\t-h\tAyuda y modo de empleo."
   echo -e "\t-o\tArchivo de salida donde se almacenará la captura. Por defecto: \"~/FECHA_HORA.mkv\""
   echo -e "\t-t\tTiempo hasta finalizar la captura, en segundos o del modo \"hh:mm:ss[.xxx]\". Por defecto: infinito."
   echo -e "\nEJEMPLOS:"
   echo -e "\tfah_capture-screen"
   echo -e "\tfah_capture-screen -o ./videos/mivideo.mp4"
   echo -e "\tfah_capture-screen -f 60 -o mivideo.mkv"
   echo -e "\tfah_capture-screen -f 25 -t 30 -o mivideo.avi"
   echo -e ""
}

# Procesamiento de parámetros
while getopts 'f:t:o:h' OPCION; do
   case $OPCION in
      f)
         FPS=$OPTARG
         ;;
      t)
         TIME=$OPTARG
         ;;
      o)
         OUTPUT=$OPTARG
         ;;
      h)
         mostrarAyuda
         exit 0;
         ;;
      \?)
         echo -e "\nERROR: -$OPTARG no es un parámetro válido."
         mostrarAyuda
         exit 1;
         ;;
       :)
         echo -e "\nERROR: Opción -$OPTARG requiere un parámetro."
         mostrarAyuda
         exit 1;
         ;;
   esac
done

# Valores por defecto
FPS=30
OUTPUT="$HOME/"$(date +"%Y%m%d_%H%M%S")".mkv"
LINE=$(xrandr -q | grep Screen);
WIDTH=$(echo ${LINE} | awk '{ print $8 }');
HEIGHT=$(echo ${LINE} | awk '{ print $10 }' | awk -F"," '{ print $1 }');

if [ ${TIME} ]; then
   ffmpeg -f x11grab \
    -r ${FPS} \
    -s ${WIDTH}x${HEIGHT} \
    -i ${DISPLAY} \
    -t ${TIME} \
    -vcodec libx264 \
    -vpre lossless_ultrafast \
    -y ${OUTPUT}
else
   ffmpeg -f x11grab \
    -r ${FPS} \
    -s ${WIDTH}x${HEIGHT} \
    -i ${DISPLAY} \
    -vcodec libx264 \
    -vpre lossless_ultrafast \
    -y ${OUTPUT}
fi
Cerramos el archivo (Ctrl+X) y aceptamos guardar las modificaciones cuando nano nos lo pregunte.

Luego le daremos permisos de ejecución y de lectura/escritura para evitar tener que usar sudo cuando queramos ejecutarlo:
sudo chmod +x fah_capture-screen && sudo chmod 775 fah_capture-screen

Y por último lo ponemos en práctica:
cd ~ && fah_capture-screen
Para finalizar la grabación: Ctrl+C. Esto guardará el video capturado en el home o carpeta personal.


EDIT 20141109: Agrego video de prueba del script ^_^ (música by Mariano Babich)


Nota importante: Estos paquetes pueden ser necesarios para el correcto funcionamiento de FFmpeg con casi todas sus funciones:
sudo apt-get install -y build-essential ubuntu-restricted-extras ffmpeg libavcodec-extra-53

Y estos son más a elección, depende de lo que vayan a hacer, puede q nunca los necestien, pero por las dudas se los dejo:
sudo apt-get install x264 libx264-123 libx264-dev

2014-11-04

Comandos útiles de FFmpeg


A pesar de que existen soft con intefaz gráfica como Avidemux o Audacity, los cuáles a veces utilizo, hace un tiempo que termino eligiendo FFmpeg para casi todo lo relacionado con grabación, edición y conversión de video y/o audio, más que nada por su simplicidad (una vez que te acostumbras) y velocidad, sobre todo cuando uno puede utilizarlo en scrips própios hechos en bash, x ejemplo, para facilitar aún más su uso.

Luego de un tiempo de usar FFmpeg x consola, acomodando cada vez las opciones que necesitaba para cada cosa, de a poco me fuí anotando los comandos simples q más uso y haciendo también algunos script en bash para no tener que pensar (sí, no-pensar, no-pensar!), así que quería compartirlos ya q pueden serles de utilidad (aunque sea a quienes usan Linux).

Entonces, a lo que viene el post. En esta oportunidad voy a dejar varios comandos últiles y en próximos post iré dejando algunos scripts para automatizar y simplificar algunas cosillas.

Primero que nada, para poder utilizar el FFmpeg en todo su esplendor sin renegar porque les falte un codec o librería para hacer tal o cuál cosa, instalando estos paquetes estoy casi seguro que no necesitarán de ningún otro
sudo apt-get install -y build-essential ubuntu-restricted-extras ffmpeg libavcodec-extra-53

Si notan algún problema, pueden instalar o fijarse si tienen instalados estos paquetes. Deberían encontrarse instalados o haberse instalado junto a los paquetes antes señalados.
sudo apt-get install x264 libx264-123 libx264-dev


Bueno, ahora sí, empecemos:


Obtener información de un video
ffmpeg -i VIDEO.avi


Concatenar archivos de audio (unir en un solo archivo 2 o más archivos de audio, uno detras de otro)
ffmpeg -i "concat:AUDIO1.mp3|AUDIO2.mp3|AUDIO3.mp3" -acodec copy AUDIO.mp3


Extraer audio de un video
ffmpeg -i VIDEO.mp4 -ab 196608 AUDIO.mp3
El valor "196608" corresponde al bitrate (en bits) del mp3 de salida, 192Kbps en este caso.


Silenciar un video (quitarle el audio)
ffmpeg -i VIDEO.avi -vcodec copy -an VIDEO.avi


Añadir audio a un video
ffmpeg -i VIDEO.mkv -i AUDIO.mp3 -acodec copy -vcodec copy -map 0:0 -map 1:0 VIDEO-CON-AUDIO.mkv


Extraer imágenes de un video (convertir video a imágenes)
ffmpeg -i VIDEO.mp4 -r 25 IMAGEN%d.png
Esto guardará las imágenes numeradas (IMAGEN1.png, IMAGEN2.png, etc) en la carpeta donde se ejecute el comando. "-r 25" (opcional) corresponde a la cantidad de imagenes que queremos se extraigan por cada segundo de reproducción del video. Ya que en definitiva se corresponde con los FPS (frames per second, cuadros por segundo) del video, se recomienda poner un valor igual o menor para evitar imágenes repetidas.


Capturar pantalla completa en video (ver script automatizado)
ffmpeg -f x11grab -r 30 -s 1280x1024 -i :0.0 -vcodec libx264 -vpre lossless_ultrafast -y VIDEO.mp4
"-r 30" corresponde a la candidad de FPS (frames per second, cuadros por segundo) a la que se quiere grabar y "-s 1280x1024" la resolución de pantalla.


Por ahora hasta ahí nomás queda. Pueden ser pocos comandos pero la verdad son los que recuerdo en este momento porque son los que más utilizo. Más adelante puede que agregue más y, cuando publique los posts con los scripts, agrego los enlaces a los mismos.


Fuente: La Inet y mis pruebas y errores.

2013-02-17

Que hacer luego de instalar Linux Mint 14 Xfce

Mi guía personal

Luego de instalar y actualizar Linux Mint 14 "Nadia" con escritorio Xfce desde la consola me dispongo a realizar las siguientes acciones para dejar la distro bien a gusto ^_^

  1. Desinstalacion thunderbird (prefiero evolution) y banshee (últimamente está muy pesado):
    sudo aptitude remove --purge thunderbird banshee


  2. Actualizacion lista de paquetes:
    sudo aptitude update


  3. Instalacion programas:
    sudo aptitude install skype evolution vlc audacious rar unrar build-essential
    • Skype: Mensajero.
    • Evolution: Cliente de correo electronico (con interfaz similar al Outlook 2003).
    • VLC: Reproductor de video, música y streaming (famoso por "reproducir lo que sea").
    • Audacious: Reproductor de música muy liviano (con soporte de skins al muy estilo WinAmp).
    • RAR, unRAR: Paquetes que agregan la posibilidad de comprimir/descomprimir archivos .rar, .7z, etc.
    • Build-Essential: Paquete muy útil para cuando es necesario compilar programas (por no encontrarse en los repositorios, x ej).


  4. Instalacion paquetes alternativos:
    sudo aptitude install opera chromium-browser && sudo update-alternatives --config x-www-browser && sudo update-alternatives --config gnome-www-browser
    • Opera: Navegador de Internet.
    • Chromium: Navegador de Internet.

    sudo aptitude install ssh vinagre filezilla nmap jedit
    • SSH: Paquete para poder realizar conexiones remotas por ssh.
    • Vinagre: Visor de escritorios remopor (por VNC, RDP y SSH).
    • FileZilla: Cliente de conexión FTP, FTPS y SFTP.
    • nmap: Potente analizador de redes y puertos.
    • jEdit: Editor de texto para programadores.

    sudo aptitude install ubuntu-restricted-extras non-free-codecs avidemux ffmpeg
    • Ubuntu Restricted Extras, NonFree Codecs: Codecs extras muy útiles al hacer conversiones de formatos con programas como ffmpeg.
    • Avidemux: Potente editor de video.
    • ffmpeg: Convesor de video y música (con varios chiches).

    sudo aptitude install alarm-clock
    • Alarm Clock: Despertador MP3.


  5. Instalación juegos y emuladores:
    sudo aptitude install gnome-games pcsxr visualboyadvance visualboyadvance-gtk desmume
    • Gnome-Games: Paquete con varios juegos simples (Chess, Mines, Mahjongg, etc).
    • PCSXr: Emulador de PlayStation 1.
    • VisualboyAdvance: Emulador de GameBoy.
    • DeSmuME: Emulador de Nintendo DS.


  6. Instalacion wine:
    sudo aptitude install wine
    • wine: Emulador que permite la instalación de programas para Windows.

    winetricks msxml3 msxml6 gecko ie6 vcrun2005sp1 vcrun2008 atmlib
    • msxml3, msxml6, gecko, ie6, vcrun2005sp1, vcrun2008, atmlib: Paquetes normalmente necesarios por varios programas de Windows.


  7. Instalación LAMP (para programación PHP):
    sudo aptitude install apache2

    sudo aptitude install php5 libapache2-mod-php5 php5-cli php5-mysql

    sudo aptitude install mysql-server

    sudo aptitude install mysql-client libmysqlclient18 libmysqlclient-dev

    sudo aptitude install phpmyadmin


  8. Actualización de lista de paquetes:
    sudo aptitude update

2012-02-22

Solo x Boludeo


Dejo 2 fondos q hice, uno hoy, para terminar la PC de un amigo, la cual armé rescatando partes de otras 2 PCs viejas y le instalé un WinXP (para éste era el fondo :P) y un Linux Mint 11.
Quedó una maquinola mas o menos usable, q se yo:
- 1.3GHz de procesador (AMD)
- 384MB de RAM (DIMM a 133)
- Disco de 80GB (Tenía otro pero no quiso saber nada...)
- Lectograbadora de CD de 2x (Si, sin comentarios, es lo q hay!)

btw, todo el viaje q tuvo esta maquina para llegar a funcionar, le dió el nombre de Frankestein jaja.


El otro fondo es uno q hice hace varios días ya; para poner en la notebook, ya q me había cansado de la version anterior (era demasiado oscura).


Dejando de lado las introducciones, acá estan. Por supuesto, primero va el mas viejo :P

20120118 - MyLogo v2 [Full]

20120118 - MyLogo v2 [Wide]

20120118 - MyLogo v2 [4-3]

20120221 - BrokenXP [Full]

20120221 - BrokenXP [Wide]

20120221 - BrokenXP [4-3]


[P4NCH1 - Back in Race]

2011-10-02

Found a bug!

Chess de Gnome Games

Asquerosa la falla q encontré en el juego de ajedrez de gnome-games... Hace mil q no jugaba al ajedrez, asiq xa matar el aburrimiento me dispuse a perder algunos juegos contra la maquina, pero q pasó? No llego a terminar el 1º juego q encuentro un bug... Un movimiento imposible q hace la maquina para seguir haciendome mierda (no hacía falta, ya estaba al horno ¬¬). Por supuesto no me pienso qdar con los brazos cruzados en esto, si me van a humillar q sea siguiendo las reglas! Asiq, luego de publicar este posteo, pieso mandar un mail a gnome-games xa q se hagan cargo <_<* He dicho!

Acá las capturas...



[P4NCH1 - Back in Place]

2011-05-19

Go Green v2


Ya que hubo gente q se quejó de mi ultimo fondo, al grito de "hace mierda los ojos" (cosa q tenia razón... :S), me dispuse a "reeditar" dicho fondo, o mejor dicho, hacerlo de nuevo :P
Asiq, sin mas, acá tienen la v2 del fondo anterior (creo q qdó mucho mejor :D)

20110519 - Go Green v2 [Full]


20110519 - Go Green v2 [Wide]


20110519 - Go Green v2 [4-3]



[P4NCH1 - Back in Design]

Go Green

bizarro!

Aca tienen mi forma bizarra de un fondo "Go Green" de linux. Por q digo "bizarra"? Porque es a mi estilo, puros efectos, poco "normal", etc, que se yo, es mi estilo gente, si no les gusta, busquense uno x google! :P

20110519 - Go Green [Full]


20110519 - Go Green [Wide]


20110519 - Go Green [4-3]


[P4NCH1 - Back in Blah]

2011-04-20

Nos inundamos!

Flood, un pluggin xa Photoshop

Probando un pluggin q me pasó un amigo edité una imagen de fondo de los bisigi-themes xa ubuntu y otros sistemas linux. Acá tienen el resultado, mas mi nueva firma/logo (de estreno!!) :D

20110420 - Eco [Full]


20110420 - Eco [Wide]


20110420 - Eco [4-3]


[P4NCH1 - Back in Place]

2010-10-15

Linux Mint

el nuevo OS q tengo desde hace unas semanas ^_^

Linux Mint es una de las tantas distribuciones de GNU/Linux, basada en Ubuntu hasta su version 9 y ahora tambien en Debian.

No recuerdo xq se me ocurrió probar ésta distro, pero la verdad q es muy buena. Le he agregado las 1000 y una animaciones y vuela como si fuera una consola corriendo sobre una nave! :D
Tiene la ventaja, sobre otras distros, de largar varios LiveCDs con diferentes escritorios, como se puede encontrar en la pagina oficial. Verán q viene tanto con Gnome y KDE como con Fluxbox, Xfce y LXDE; con el extra de su version basada pura y exclusivamente en Debian.

El slogan del OS es "from freedom came elegance", por lo que es muy notable su diseño y capacidad de personalizarlo a gusto, casi sin perder fluidez.

Sin mas que decirles, acá les dejo un videíto del Linux Mint 9 (de 64bits con entorno Gnome) que hice una semana despues de instalarlo (ya bastante personalizado) y un fondo q hice hoy :D




20101015 - Linux Mint [Full]


20101015 - Linux Mint [Wide]


20101015 - Linux Mint [4:3]


Salu2 gente!

[P4NCH1 - Back in Race]