# rm-rf.es | Administración de sistemas

Blog de un SysAdmin Unix, Gnu/Linux, Windows y lo que haga falta.

Convertir vídeos con audio AC3 a MP3 con ffmpeg

FFmpeg es es la mejor opción para realizar tareas con vídeo y audio, ya sea grabar, convertir o hacer streaming de audio y vídeo. Ya vimos como instalarlo en GNU/Linux aunque también puede ser utilizado en otros sistemas operativos, también Windows.

En este caso vamos a ver como convertir el audio de un vídeo de AC3 a MP3:

~$ ffmpeg -i video_ac3.avi -vcodec copy -acodec libmp3lame -ab 128k -ac 2 -threads 0 video_mp3.avi

Simplemente aseguraos de poner el vídeo original con el parámetro (-i) y al final de la línea de comandos el vídeo de destino. Podéis investigar las distintas opciones en la ayuda del comando. Si queréis aprovechar también la capacidad de todos los núcleos del sistema podéis dejar a ffmpeg que los utilice a su elección con el parámetro -threads a 0 como hemos puestos. Lanzará un hilo de ffpmeg por cada núcleo, si pusieramos -threads pues lanzaría los threads que inidicaramos.

Si lo queremos hacer directamente con un fichero de audio:

~$ ffmpeg -i audio.ac3 -acodec libmp3lame audio.mp3

Cómo descargar vídeos a través de RTMP

Hay sitios web, sobre todo los de cadenas de televisión que ofrecen ‘televisión a la carta’ que ofrecen visualización de sus programas, series y demás pero no está (a simple vista) la posibilidad de descargar los vídeos. Muchos de estos sitios web ofrecen sus vídeos por RTMP.

Definición de RTMP por Wikipedia:

Real Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server. Macromedia is now owned by Adobe, which has released an incomplete version of the specification of the protocol for public use.

The RTMP protocol has multiple variations:

The “plain” protocol which works on top of and uses TCP port number 1935 by default.
RTMPS which is RTMP over an TLS/SSL connection.
RTMPE which is RTMP encrypted using Adobe’s own security mechanism. While the details of the implementation are proprietary, the mechanism uses industry standard cryptography primitives.[1]
RTMPT which is encapsulated within HTTP requests to traverse firewalls. RTMPT is frequently found utilizing cleartext requests on TCP ports 80 and 443 to bypass most corporate traffic filtering. The encapsulated session may carry plain RTMP, RTMPS, or RTMPE packets within.

Para descargar estos vídeos desde GNU/Linux podemos utilizar rtmpdump, disponible en la mayoría de repositorios, en Debian y derivados lo instalamos desde apt:

# apt-get install rtmpdump

Para descargar el vídeo, primero debemos conocer la ruta completa al vídeo, para ello activamos el servidor rtmpdump:

$ rtmpsrv
RTMP Server v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL

Streaming on rtmp://0.0.0.0:1935

Como bien indican en este blog es necesario ahora redirigir todo el tráfico RTMP a nuestro equipo (al servidor que acabamos de levantar en el puerto TCP 1935, lo hacemos con IPTABLES:

# iptables -t nat -A OUTPUT -p tcp --dport 1935 -j REDIRECT

Ahora lo que debemos hacer es ir a nuestro navegador y reproducir el vídeo que queramos descargar, dejando el servidor rtmp escuchando en la terminal. Cuando empiece la reproducción el rtmpsrv capturará el tráfico y nos dirá directamente el comando que tenemos que ejecutar para la descarga del vídeo, ejemplo:

WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-45dvJQ/pkcs11: No such file or directory
WARNING: Trying different position for client digest!

rtmpdump -r "rtmp://aragontvvodfs.fplive.net/aragontvvod" -a "aragontvvod" \
-f "LNX 11,9,900,152" \
-W "http://alacarta.aragontelevision.es/js/flowplayer/flowplayer.commercial-3.2.7.swf" \
-p "http://alacarta.aragontelevision.es/programas/aragon-en-abierto/jueves-16-de-enero-16012014-1806" \
-y "mp4:/web/19241/19241.mp4" -o 19241.flv
Closing connection... done!

Ahora simplemente deshabilitamos la redirección de tráfico con IPTABLES y descargamos el vídeo:

# iptables -t nat -D OUTPUT -p tcp --dport 1935 -j REDIRECT

Descargamos:

$ rtmpdump -r "rtmp://aragontvvodfs.fplive.net/aragontvvod" \
-a "aragontvvod" -f "LNX 11,9,900,152" \
-W "http://alacarta.aragontelevision.es/js/flowplayer/flowplayer.commercial-3.2.7.swf" \
-p "http://alacarta.aragontelevision.es/programas/aragon-en-abierto/jueves-16-de-enero-16012014-1806" \
-y "mp4:/web/19241/19241.mp4" -o 19241.flv
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-45dvJQ/pkcs11: No such file or directory
Connecting ...
INFO: Connected...
Starting download at: 0.000 kB
INFO: Metadata:
INFO:   duration              5748.75
INFO:   moovPosition          40.00
INFO:   width                 640.00
INFO:   height                360.00
INFO:   videocodecid          avc1
INFO:   audiocodecid          mp4a
INFO:   avcprofile            100.00
INFO:   avclevel              30.00
INFO:   aacaot                2.00
INFO:   videoframerate        25.00
INFO:   audiosamplerate       48000.00
INFO:   audiochannels         2.00
INFO: tags:
INFO:   ©too                 Lavf54.63.104
INFO: trackinfo:
INFO:   length                73583616.00
INFO:   timescale             12800.00
INFO:   language              und
INFO: sampledescription:
INFO:   sampletype            avc1
INFO:   length                275940160.00
INFO:   timescale             48000.00
INFO:   language              und
INFO: sampledescription:
INFO:   sampletype            mp4a
656177.338 kB / 5748.74 sec (99.9%)
Download complete

Applet para controlar brillo de pantalla en XFCE

Por defecto el gestor de ventanas XFCE no ofrece un applet que permita regular el brillo del monitor, algo muy necesario en equipos portatiles para no quedarte ciego con el brillo por defecto que ofrecen las instalaciones.

Normalmente se usa xbacklight o modificando directamente el valor en ficheros de configuración, ejemplo:

echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness

Si queréis disponer de un applet en la barra de menús para poder cambiar este valor a golpe de click simplemente tenéis que instalar los plugins xfce4-power-manager-plugins a través de apt o el gestor de paquetes que utilicéis según distribución:

$ sudo apt-get install xfce4-power-manager-plugins

Una vez instalado pincháis con el botón derecho en el panel, “Add New Items” y seleccionáis “Brightness plugin”, lo colocáis donde queráis y bingo:

brightness

Dia: creación de diagramas en GNU/Linux

Para aquellos que necesiten crear diagramas en GNU/Linux y no dispongan de acceso a otros programas como Visio, Dia es una buena alternativa con licencia GPL que también está disponible en otras plataformas como MacOS X, Unix y Windows.

Dia ofrece soporte a muchos tipos de diagramas y contiene objetos especiales para cada uno de ellos: flujos de trabajo, UML, red, etc. Los diagramas se pueden guardar en formato XML y exportar a otros como EPS, SVG, XFIG, WMF y PNG.

Podéis descargarlo a través del sitio oficial o utilizar los repositorios de las distribuciones correspondientes.

dia diagrams

Cuidando la vista con f.lux

Creo que no soy el único que pasa cerca de 11 horas al día frente a la pantalla del ordenador. Nuestro trabajo nos lo exige y además somos “masocas” y al llegar a casa más de lo mismo. Como todos sabemos esto no es bueno para la vista y todo lo que pueda ayudarnos a cuidarla y tener mejores hábitos bienvenido sea.

Ahora mismo estoy probando el software f.lux que está disponible para GNU/Linux, Windows, Mac, iPad/iPhone. Básicamente lo que hace es regular el calor y tono de luz de la pantalla según la hora del día en la que nos encontremos (lo detecta por coordenadas) o según el tipo de iluminación que tengamos en la habitación.

El cambio es progresivo, si estamos muchas horas frente al ordenador no notaremos cambios bruscos de color y brillo sino algo gradual. Yo de momento lo estoy probando a ver si noto algo, según opiniones por Internet sí que se nota y no se fuerza tanto la vista, sobre todo cuando estamos por la noche en el PC.

Para instalarlo con APT:

$ sudo add-apt-repository ppa:kilian/f.lux
$ sudo apt-get update
$ sudo apt-get install fluxgui
f.lux

Vmail: interfaz en Vim para Gmail

Vmail Vim Gmail
Vmail Vim Gmail

Seguimos con otra entrada relacionada con Vim, eso sí, esta es realmente curiosa. Ayer, leyendo el twitter de nixCraft descubrí Vmail, una interfaz en Vim para Gmail.

Vmail ha sido desarrollado a partir de la versión 7.3 de Vim y usando Ruby 1.9.2. En el sitio web de Vmail tenéis todos los detalles y documentación de como usarlo. Para su instalación debemos disponer de las dependencias Ruby 1.9.0 o superior con soporte SSL, libsqlite3-dev, sqlite3 y lynx text-only-mode web browser si queremos ver las partes HTML de los correos, todo ello instalable a través de gestores de paquetes, yum en RHEL y derivados y apt en Debian, etc.

Instalación (con ruby gem):

# gem install vmail

Para ejecutarlo:

# vmail

Al igual que vim, cuenta con un fichero de configuración por usuario (.vmailrc), os recomiendo leer la documentación para sacar todo el partido a la aplicación ya que es muy completa. Por cierto, Vmail usa TLS (Transport Layer Security) para la autenticación IMAP y SMTP.

SLAMD Distributed Load Generation Engine

slamd logoPese a que Sun Microsystems ya no mantiene un desarrollo activo de la aplicación, SLAMD (SLAMD Distributed Load Generation Engine) sigue siendo una excelente opción para realizar todo tipo de pruebas de carga, rendimiento y stress a nuestras redes, servidores y aplicaciones.

SLAMD nos ofrece a apenas un click de distancia decenas de pruebas de stress, las cuales podemos personalizar según nuestros requerimientos, volumen de carga/stress a aplicar, etc. Por ejemplo tenemos distintos trabajos para hacer testing a LDAP (importar, exportar, búsquedas asíncronas, generadores de carga con búsquedas múltiples…), también HTTP (en este caso mucho más potente JMeter), pruebas SMTP, IMAP y POP3, scripting, SQL, Throughput de red, pruebas TCP, stress de CPU, etc. Una vez realizados los tests recibimos informes con una gran cantidad de información relevante que podemos exportar en HTML, PDF o texto plano, incluye cifras, máximos, mínimos y medias, gráficos…

informe  slamd

La forma más sencilla de hacerlo funcional no requiere instalación, podemos bajar todo el aplicativo, cliente, servidor y Tomcat en un único paquete, descomprimirlo y arrancar Tomcat:

$ wget http://files.unboundid.com/slamd/slamd-2.0.1.zip
$ unzip slamd-2.0.1.zip
$ cd slamd/bin/
$ ./catalina.sh  start

Accedemos a la aplicación a través de http://hostname:8080. La primera vez que accedemos tenemos que inicializar la base de datos interna, una vez realizado ya podemos comenzar las pruebas que queramos. Si necesitamos generar la carga distribuida desde varios servidores, únicamente tenemos que habilitar en ellos el cliente. Lo descomprimimos, modificamos el fichero de configuración indicando el servidor al que se conectará  y arrancamos:

$ ls -l slamd_client*
-rw-r--r-- 1 alex alex 5294716 2010-03-20 17:58 slamd_client-2.0.1.zip
$ unzip slamd_client-2.0.1.zip
$ ls -l slamd_client/slamd_client.conf
-rw-r--r-- 1 alex alex 1259 2010-03-20 17:58 slamd_client/slamd_client.conf
$ slamd_client/start_client.sh

Para poder ejecutar el cliente de forma independiente al servidor debemos tener instalado JAVA en el equipo. Os recomiendo de todas formas leer las guías de QuickStart (OpenDocument  |  PDF ) y la de Herramientas (OpenDocument  |  PDF ) para sacarle un mayor partido a la aplicación.

grafico slamd

Cómo ver el estado, modelo y número de serie de discos duros en hpacucli

En esta entrada vamos a ver como ver el estado, modelo (P/N), número de serie y características de cada uno de los discos físicos conectados a la controladora de un servidor HP Proliant. Lo vamos a hacer mediante la utilidad de HP hpacucli, de la cual ya hablé en otras ocasiones: hpacucli: gestión de RAID Array en servidores HP desde Linux.

En mi caso además de por la utilidad evidente de los datos que nos facilita es útil para los casos en el que hay que contactar con soporte de HP y necesitan el Part Number o número de serie del disco físico.

Lo primero que hacemos es acceder a hpacucli desde la shell ssh:

# hpacucli 
HP Array Configuration Utility CLI 8.40-4.0
Detecting Controllers...Done.
Type "help" for a list of supported commands.
Type "exit" to close the console.

=>

Tenemos que averiguar la controladora a la cual están conectados los discos, la mayoría de veces es el slot 0 pero conviene revisarlo:

=> controller all show    

Smart Array P410i in Slot 0 (Embedded)    (sn: XXXXXX)

Ahora ya podemos visualizar los datos de todos los discos o de cada uno en concreto. En este caso ha sido necesario para averiguar el nº de serie y P/N de un disco averiado:

=> controller slot=0 pd all show detail

Smart Array P410i in Slot 0 (Embedded)

   array A (Failed)

      physicaldrive 1I:1:1
         Port: 1I
         Box: 1
         Bay: 1
         Status: OK
         Drive Type: Data Drive
         Interface Type: SAS
         Size: 72 GB
         Rotational Speed: 15000
         Firmware Revision: HPDC
         Serial Number: XXXXXX
         Model: HP      XXXXXX
         PHY Count: 2
         PHY Transfer Rate: 6.0GBPS, Unknown
      physicaldrive 1I:1:2
         Port: 1I
         Box: 1
         Bay: 2
         Status: Failed
         Drive Type: Data Drive
         Interface Type: SAS
         Size: 72 GB
         Rotational Speed: 15000
         Firmware Revision: HPD3
         Serial Number: XXXXXX
         Model: HP      XXXXXX
         PHY Count: 2
         PHY Transfer Rate: 6.0GBPS, Unknown
Ver el perfil de Alejandro García García en LinkedIn