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

viernes, 8 de febrero de 2008

Notas sobre mplayer

Antes de nada el necesario disclaimer: Mi configuración dista mucho de ser perfecta pero a mí me vale. No he tenido la necesidad de pegarme demasiado con las USE de gentoo - al menos en lo referente a mplayer - así que seguro que se podrá mejorar; pero sí puedo decir que puedo reproducir todo lo que necesito y como yo quiero, que no es poco ^_^

  • USE flags en gentoo referentes a mplayer

  • Las USE que yo estoy utilizando:
    bpk@osaka:$ grep USE /etc/make.conf
    USE="a52 aac bash-completion bzip2 cdparanoia cups doc dts dvd dvdr dvdread examples faad ffmpeg flac id3 ipod java live lzo matroska mp4 mpeg2 nptl nptlonly nvidia openal ppds samba screen svg theora vcd wma x264 xanim xvid -berkdb -gnome -ipv6 -arts -esd freetype utempter mjpeg"


    Las USE concretas referente al tema de reproducción multimedia con el mplayer son [1]
    a52, Enables support for decoding ATSC A/52 streams used in DVD
    aac, Enables support for MPEG-4 AAC Audio
    dts [2], Enables DTS Coherent Acoustics decoder support
    dvd, Adds support for DVDs
    dvdr, Adds support for DVD writer hardware (e.g. in xcdroast)
    dvdread [3], Enables usage of Ogle's libdvdread for DVD playback
    faad [4], ---
    ffmpeg, Enable ffmpeg-based audio/video codec support
    flac, Adds support for FLAC: Free Lossless Audio Codec
    live, Enables live.com streaming media support
    matroska, Adds support for the matroska container format
    openal, Adds support for the Open Audio Library
    theora, Adds support for the Theora Video Compression Codec
    vcd, Video CD support
    xanim, Enables support for xanim based codecs
    xvid, Adds support for xvid.org's open-source mpeg-4 codec

    Las USE referentes al tema de (re)codificación
    cdparanoia, Enables cdparanoia (audio CD ripper) support
    mp4, Enables mp4 encoding support
    wma [5], Add support for wma files through mplayer.
    x264, Enable h264 encoding using x264
    mjpeg [6], Enables mjpegtools support

    En el apartado media-video de la página de la que he sacado las descripciones de las USE [1] hay un par de tablas muy interesantes acerca de las que se pueden utilizar para los principales reproductores.

  • Parámetros mplayer

  • Una vez tengamos el mplayer instalado a nuestro gusto, tendremos que configurarlo de cara a nuestras necesidades.
    Para ello tenemos los archivos mplayer.conf y gui.conf, para el mplayer(-bin) y gmplayer(-bin) respectivamente. Además hay que tener en cuenta que, como muchos programas en linux, estos ficheros pueden estar en /etc (para que la configuración sea genérica para cualquier usuario) o en $HOME/.mplayer/ (configuración específica para cada usuario). El mplayer hace caso en este orden: 1º parámetros de ejecución. 2º Config de usuario. 3ª Config global.
    Respecto a las principales par'ametros que yo tengo puestos en el mplayer.conf, son los siguientes (no estoy seguro de si se son exáctamente igual los parámetros en el archivo gui.conf):

    Parámetros mplayer.conf
    vo=xv Usa la extensión XVideo de XFree86 4.x para activar la reproducción acelerada por hardware.
    double=yes Double buffering, recomendado para el tema de subtítulos.
    ao=alsa [7] Utiliza el controlador ALSA.
    monitoraspect=4:3 Especificamos el tipo de monitor.
    font="Bitstream Vera Sans" [8] Le especificamos que fuente utilizar.
    subfont-osd-scale=4 Establece el coeficiente de autoescala de los elementos del OSD.
    subfont-text-scale=3 Tamaño de las fuentes especificando la escala.

    Por supuesto hay muchos más, pero no tiene sentido extenderse. Lo suyo es ir mirando en el man de mplayer para cada cosa que queramos ir tocando ^_^

  • alias

  • Como yo utilizo el PC como HTPC y como PC de escritorio, suelo tirar de alias para reproducir las cosas dependiendo de donde/lo que me interese. Hay que tener en cuenta que es una gentoo de 64bits, así que uso mplayer / mplayer-bin / gmplayer / gmplayer-bin dependiendo de lo que me interese. Por simplificar pongo los ejemplos con el gmplayer.
    bpk@osaka:$ grep mplayer /home/bpk/.bash_aliases
    alias gmplayer_dolby_dts="gmplayer -ac hwdts,hwac3, -monitoraspect 16:9 -sws 9 -vf scale=1280:-2"
    alias gmplayer_dvd="gmplayer -ac hwdts,hwac3, -monitoraspect 16:9 -sws 9 -vf scale=1280:-2 dvd:// -dvd-device"
    alias gmplayer_entrelazado="gmplayer -ac hwdts,hwac3, -monitoraspect 16:9 -sws 9 -vf scale=1280:-2 -vf pp=hb/vb/dr/al/lb/tn:1:2:3"
    alias gmplayer_entrelazado2="gmplayer -ac hwdts,hwac3, -monitoraspect 16:9 -sws 9 -vf scale=1280:-2 -vf pp=fd"


  • kutre-scripts

  • Por último, tengo unos kutre-scripts que utilizo para que Staryu reproduzca las películas a golpe de ratón.
    Escenario: En F7 tengo levantadas unas KDE que sólo se ven desde el monitor del PC. En F8 tengo levantadas unas X con un eterm que se ven desde el proye y el monitor y que tienen la resolución nativa del proye.
    Para levantar las X de F8:
    bpk@osaka:$ cat X_720p
    #!/bin/sh
    X :1 -layout "Proye_720" & > /dev/null
    DISPLAY=:1 Eterm --geometry 210x53
    xhost +

    Para reproducir el archivo en F8. Tengo asociado el script como acción principal para determinados tipos de archivos y así que se reproduzcan los videos en F8.
    bpk@osaka:$ cat reproductor_proye
    #!/bin/sh
    export DISPLAY=:1
    chvt 8 & gmplayer-bin -ac hwdts,hwac3, -monitoraspect 16:9 -sws 9 -vf scale=1280:-2 "$1" && chvt 7
    export DISPLAY=:0

    Para reproducir carpetas que contienen un backup de DVD en su interior.
    bpk@osaka:$ cat dvd_proye
    #!/bin/sh
    kdialog --title "NOTA INFORMATIVA" --msgbox " Para que esto funcione, hay que 'clickar' sobre la carpeta SUPERIOR A VIDEO_TS. \
    De lo contrario no funcionará... Good luck ^_^"
    export DISPLAY=:1
    chvt 8 & xine -f dvd:///"$1" && chvt 7
    export DISPLAY=:0

    Faltan un montón de cosas: ajustar temas de offset, posición de subs, ventajas y desventajas de los distintos filtrados por software y hardware, etc. pero como cada persona necesita ajustar todos esos parámetros personalmente, no tiene sentido que me meta en ese fregado.

Tampoco me quiero meter en configuración de Xorg y demás zarandajas, pero si hace falta las subo a algún lado, que no son nada del otro mundo.

[1] listado de USE flags
[2] Desde el 7 de enero gentoo prefiere libdca a libdts: "Remove unused versions still depending only libdts because it's getting removed in favour of libdca." mplayer changelog
[3] Habitualmente no utilizo Ogle, pero lo tengo instalado para hacer pruebas alguna vez.
[4] No he encontrado info referente a esta USE, así que supongo que ya no tiene sentido tenerla. Lo que sí he encontrado es el paquete faad2.
-media-libs/faad2. AAC audio decoding library
[5] El paquete dir2ogg se encarga de realizar la conversión--> media-sound/dir2ogg: Converts Mp3, M4a, Wma, and Wav files to Ogg Vorbis format.
[6] El paquete /media-video/transcode tira de media-video/mjpegtools
[7] Con antiguas configuraciones de alsa + mplayer he tenido que especificarle el dispositivo. Por ejemplo:ao=alsa:device=spdif ó ao=alsa:device=hw=0.0
[8] En mi caso utilizo fuentes truetype font=/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf"

viernes, 11 de enero de 2008

Aumix - una forma de controlar el volumen en los script

Un pequeño complemento del artículo anterior... además de un método alternativo para controlar el volumen (para pisar el kurro de MoZ exclusivamente, que conste ~_^)

Concretamente voy a contar lo que hace aumix, para los que no lo conozcan. Según el man "This program adjusts the settings of an audio mixing device. It can be used from the command line, in scripts, or interactively with the keyboard or mouse."
Que viene a decir que es un programa para controlar los volúmenes y que se puede manejar desde la linea de comandos, scripts, o interactívamente.

A continuación unos ejemplos de uso. Aunque es muy sencillo de usar y en el manual está muy bien explicado.

Para ver qué volúmenes tenemos actualmente:
bpk@osaka:~$ aumix -q
vol 80, 80, R
pcm 90, 90
mic 100, 100, P
igain 0, 0


Creamos un directorio donde guardaremos los perfiles:
mkdir $HOME/.aumix/

Grabamos la configuración actual de los altavoces (se grabará en $HOME/.aumixrc):
aumix -f $HOME/.aumix/default -S

Modificaremos los volúmenes que queramos para un perfil concreto y lo grabaremos en $HOME/.aumix/
Creamos un perfil para silenciarlos:
aumix -v0 -c0 -l0 -m0 -w0 -W0 -f $HOME/.aumix/mute -S -q

Creamos un perfil con el volumen al que nos gusta jugar al quake:
aumix -v75 -m60 -w90 -W0 -f $HOME/.aumix/quake -S -q

Una vez tengamos creados los perfiles, podemos cargarlos de la siguiente forma:
aumix -f $HOME/.aumix/perfil_audio -L

Para lo que es realmente útil aumix, es para scriptear nuestras aplicaciones. Perogrullada de ejemplo:
bpk@soaka:~$cat quake.sh
#!/bin/sh
aumix -f $HOME/.aumix/quake
/opt/quake3/bin/quake3



Un par de apuntes.

El aumix ejecuta secuencialmente todo los parámetros que le indiquemos. Así que si ponemos el -q al principio, nos devolverá los valores antes de efectuar los
cambios.
Por ejemplo, cuidado si indicamos el -S antes de -f $HOME/.aumix/mute, porque grabará la configuración en el archivo por defecto $HOME/.aumixrc

En mi caso concreto, los único volúmenes que tengo que tocar en el portátil son -v (Volumen principal) -w (PCM), pero eso dependerá de las conexiones que use cada uno. En el manual indica a qué canal corresponde a cada letra.

miércoles, 9 de enero de 2008

Script para silenciar-dessilenciar altavoces, cascos...

Quien no tiene hoy en dia un ordenador con 40 salidas de audio de minijack (o mas) front, rear, supu... Normalmente para el dia a dia solo sueles usar alguna de estas. Muchos, como yo no tenemos altavoces 5.1 (7.1, 8.1 .... cuando parara...) para el ordena, para lo que lo usamos es para currar, escuchar musica y pa echarnos unos quakes a lo sumo. Normalmente tendras los altavoces estero (con o sin subwofer) y unos cascos. Dependiendo de la tarea y del entorno usaras cascos o altavoces y es posible que o tengas el duplicador de front con cascos y altavoces a la vez enchufados o que tengas que agacharte y mirarle el culo a tu precioso ordenador para cambiar mini-jacks cada vez que quieras cambiar de altavoces a cascos...

¡¡¡Bueno pues se acabo!!!
Se acabo el agacharte para poner los cascos y asi poder ver p*rn*... pelicul... series de.... (¿hay algo que no este prohibido aun y sea socialmente aceptable...?) a, si, videos de tus amigos en sus vacaciones en la palma en youtube el tener apagado los altavoces y escuchar un sonidillo de fondo en los cascos, con los mensajes del chuceras de turno que esta conectado a las 3 am al gaim, molestando asi tus dulces sueños.

Lo primero es duplicar el audio que sale por los altavoces principales salga tambien por los altavoces traseros :

En alsamixer, Duplicate Front, que este en on ([00])

Gracias a esto podras tener conectados altavoces y cascos a la vez y te sonara estereo por ambos.

Ahora creamos un script que vamos a llamar switch-alsa-output ...
(En el caso de mi tarjeta el master es el front.... npi de porque)
... en el que ponemos el siguiente codigo :

if amixer get Master | grep off; then
  amixer -q set Master unmute;
  amixer -q set Surround mute;
else
  amixer -q set Master mute;
  amixer -q set Surround unmute;
fi


Ejecutamos y comprobamos que cambia la salida del audio de uno a otro.

Ya como ultimo paso me meti como root, copie el script a /usr/local/bin

su
cp switch-alsa-output /usr/local/bin


Cambie permisos

chown root:audio /usr/local/bin/switch-alsa-output
chmod 750 /usr/local/bin/switch-alsa-output


audio es el grupo de usuarios que tienen acceso al audio del sistema en gentoo... No se como sera en otras distros...

Salud3!

El 99% del script esta sacado de aqui :: http://www.esdebian.org/forum/viewtopic.php?forum=38&showtopic=91279

Gracias infinitas a elsenyordelcaos por su aportacion.

martes, 25 de septiembre de 2007

El NTP de los pobres


Bueno, de los pobres, o de los vagos, o de los kutres....el caso es que aquí va mi segundo kutre-script.

Hace unos meses, me encontré en una red en la que el UDP estaba capado... yo tampoco sé en qué estarían pensando cuando decidieron esa política de seguridad, pero los caminos de lo políticos haciendo de admin son inescrutables.

El caso es que estuve investigando alguna solución que permitiese hacer NTP por TCP y no encontré nada.
La siguiente opción consistía en encapsular UDP dentro de TCP, pero no era viable al tratarse de una red aislada, sin otras redes de apoyo externas o que dieran este tipo de servicos. Además están muy desaconsejados este tipo de workarounds.
Por último, yo que antes de nada soy práctico, pensé "¿porqué no hago la consulta a algún servidor web y le meto la hora a las bravas?". Y a mí todo lo que sea meter a las bravas siempre me ha parecido una buena idea, así que creé el siguiente kutre-script:

root@osaka:~# cat /usr/local/bin/time_sync.sh
#!/bin/bash
date -u -s "`wget -O- http://www.time.gov/timezone.cgi?UTC/s/0 2> /dev/null \
| sed -n -e 's/.*size="[75]".*>\(.*\)<br>$/\1/p'`" >& /dev/null


¿Se nota que estoy intentando aprender bash scripting? xD

Ahora sólo hay que añadirlo al cron del usuario root. Para editar el cron, desde una terminal de root, ejecutamos:
root@osaka ~-> crontab -e

Y añadimos la siguiente linea:
00 09 * * * root /usr/local/bin/time_sync.sh

Yo sólo sincronizo una vez al día, porque a la peña de las páginas web les sienta muy mal que utilicen sus páginas las máquinas en vez de las personas, y no es plan de que se cabreen y pongan CAPTCHAs ^_^. Si quieres ponerlo más a menudo, ya sabes:
man -S 5 crontab

Por si un copypaste es demasiado kurro time_sync.sh

PD: Por supuesto, gracias a la gente de http://www.time.gov/ , sin vosotros esto no habría sido posible xDD

NOTA: He actualizado el artículo y el script porque ha cambiado la URL desde la que extraer la hora.
Ya sabes: apt-get update && apt-get upgrade net_para_los_pobres (just kidding)

miércoles, 29 de agosto de 2007

Grabar DVD con un archivo de más de 4 GB


Voy a empezar a publicar algunos de los kutre-scripts que tengo por ahí pululando, y voy a empezar por este.

Respecto al tema de los ficheros de más de 4 GB. Si alguna vez lo habéis intentado, os habréis dado cuenta de que no puedes grabarlo en un DVD de la manera tradicional.
Por lo que he leído, es algo relacionado con que mkisofs no puede crear imágenes UDF "puras" y crea imágenes híbridas UDF / Joliet.[1]

Por si alguien no se fía del script (no le culpo, yo tampoco lo haría ^_^) los pasos a seguir serían los siguientes:

  1. Creamos un archivo del tamaño de la imagen que queramos.
    dd if=/dev/zero of=file.iso bs=2048 count=tamaño_imagen

  2. Convertimos el fichero creado a formato UDF.
    mkudffs file.iso

  3. Montamos el fichero.
    mount -o loop -t udf file.iso punto_de_montaje

  4. Copiamos los contenidos que queramos
    cp archivo_tocho punto_de_montaje

  5. Borramos el directorio de lost+found
    rm punto_de_montaje/lost+found/ -Rf

  6. Desmontamos
    umount punto_de_montaje

  7. Tostamos
    cdrecord -v -dao -dev=/dev/grabadora -driveropts=burnfree file.iso


Cuando lo hice no pensaba subirlo a ningún lado, así que estará un poco verde y puede que necesites adaptarlo un poco. Si tenéis algún tipo de sugerencia / mejora / problemas, como siempre serán bien recibidos (0 no)

El kutre-script de marras:
grabar_4GB



¡Besitos anales!



[1] Mientras me documentaba para escribir esta reseña, leo en el man de mkisofs que el tema de UDF está en fase alpha, así que hay esperanzas de que no tarde mucho en estar disponible y ser estable.

jueves, 4 de enero de 2007

Interfaces Graficas con scripts



Seguro que muchas veces hemos pensado en crear alguna interfaz para nuestros scripts, puesto que a veces , bien para ripear, para algunos scripts de pasar a mp3 etc, (o para las novias).

Pues precisamente existe una utilidad basada en gtk llamada Xdialog la cual tiene miles de opciones, pero un simple ejemplo puede ser el siguiente:

Xdialog --msgbox "mierda" 0 0

donde los parametros son los siguientes:

Xdialog --opcion "mensaje" with heigth

Dependiendo del option, tendras mas opciones despues del with en este caso es la longitud 0 seria la minima.

si haceis la prueba vereis que sale una caja de texto ajustada al texto.

tambien se pueden poner cajas de texto, botones, combos y un largo etc, e incluso se pueden poner
cajas de usuario y password:

Xdialog --password --2inputsbox "cuidado" 0 0 "usuario" "" "password" "
en este caso, si pulsamos ok, nos devolvera el usuario/password y si pulsamos cancelar, no nos devolvera nada.

los parametros son:

Xdialog --subtipo --tipo titulo with height tituloventana1 valorventana1 tituloventana2 valorventana2

bueno y nos oss imaginais la cantidad de opciones que existen.


Para instalarlo, ya sabeis:

apt-get install Xdialog. y con un sudo para los ubunteros.

os dejo el link de la referencia para que os incheis. ala.

http://thgodef.nerim.net/xdialog/doc/index.html

Un Saludo.

Seguidores