viernes, 14 de diciembre de 2012

Ver, y grabar, canales de TDT Españoles e Hispanoamericanos, con un script: TVenLinux.sh

El tema de hoy trata sobre un magnífico script ( TVenLinux.sh ) en bash ( visible y editable, desde gedit ) para ver y grabar lo emitido en streaming por varios canales de tdt Españoles/Hispanoamericanos -televisión digital terrestre -  en sistemas GNU/Linux / BSD , que se puede usar en pcs sin tarjeta capturadora / sintonizadora de tdt . El script se puede bajar desde: http://www.tvenlinux.com/  El autor -Busindre -, al que desde aquí le doy la enhorabuena por su excelente trabajo, y le doy las gracias por compartirlo, lo actualiza a menudo: actualmente hay más de 80 canales de la tdt Española y algunos Hispanoamericanos.

Además el autor muy amablemente nos dice: "En la cabecera del script tienes mi correo electrónico para lo que quieras, solo tienes que abrir el script con un editor de texto y encontrarás mi dirección (No olvides quitar los corchetes). No tengo tiempo para ser el servicio técnico de nadie, ni puedo añadir emisiones pirata por motivos obvios, pero si tienes algo constructivo que decirme, bugs que reportar, avisarme de canales que se han quedado sin emisión (Ojo, no todos emiten las 24H), añadir mejoras u ofrecerme un maravilloso puesto de trabajo, no lo dudes y escríbeme".

Lo explicado a continuación hace referencia a la versión 13-12-2012 de TVenLinux.sh. Una vez bajado este archivo hay que darle permisos de ejecución para que se convierta en el script original.

Se necesita: tener instalados previamente los siguientes paquetes Mplayer, Curl, Rtmpdump y Zenity para entornos Gtk o Kdialog para escritorio que usen Qt como Kde. Se necesita una buena conexión a Internet, y tener ancho de banda no saturado ( cerrar por tanto programas del tipo P2P, Youtube, Torrent, etc...) para no tener problemas con la recepción.

No se necesita: tarjeta capturadora / sintonizadora de tdt. Eso que nos ahorramos.

Cosas que se pueden editar en el script: En el propio texto del script están muy bien explicadas las opciones que se pueden editar:

CACHE_STREAMING=12 # Segundos que estará descargando el streaming de TV antes de empezar a reproducirlo, aumentar los segundos para conexiones lentas. Este tiempo hay que tenerlo en cuenta a la hora de guardar el archivo multimedia, ya que también se guardará con cierta desinscronización con respecto a lo que se ve en la ventana del reproductor multimedia.
CACHE_MPLAYER=10000 # Número de Kbytes que usará Mplayer para poder retroceder en la visualización del streaming de TV.
SAVE=0 # Cambiando el valor a 1 no preguntará si queremos guardar lo visualizado. Útil si no te interesa guardar y se quiere evitar la pregunta.
MPLAYER_HELP=0 # Cambiar el valor a 1 para no mostrar la ventana de "Teclas útiles de Mplayer".
REPRODUCTOR="mplayer" # Cambiar el reproductor ( vlc, cvlc y ffplay ). Si prefieres que mplayer termine en vez de esperar más datos introduce: "mplayer_old".
# touch /tmp/versiontv # Descomentar esta linea (Quitar la primera almohadilla) si se quiere que TVenLinux NO busque actualizaciones de forma automática.
y en  la última línea del script:
bash $0 # Comentar esta linea, anteponerle el símbolo # ,  si no queremos que se ejecute de nuevo la ventana de selección de canales una vez terminada la emisión.

Como se usa: Para ejecutar el programa, primero se le dan permisos de ejecución, y luego podemos hacerlo desde consola ($ ./TVenLinux.sh) o bien doble clic desde el entorno gráfico, o añadiendo una entrada al menú de aplicaciones. Por defecto el script lanza mplayer como programa con el que ver la emisión de tdt, por lo que en esta sección explico lo que pasa cuando se ejecuta el script tal como viene por defecto.

Una vez ejecutado aparece una primera ventana en la que aparecen los canales, una descripción de su temática, e información de la emisión en un momento dado (El autor del script, también recomienda consultar la página http://www.programacion-tdt.com/ para ver la programación diaria  de los canales de tdt.) . Para alcanzar rápidamente un canal, vale con teclear su nombre sobre la pantalla o bien usar la combinación "Cntrl + F" para buscar . Para ordenar alfabéticamente canales solo pulse en el nombre de la columna "Canales" o bien "Temática". Una vez seleccionado un canal, para cambiar de canal hay que cerrar el reproductor (Letra Q o cerrar la ventana), pero por  otra parte, se pueden arrancar varias instancias del scrit/programa a la vez.


Una vez seleccionado un canal, hacemos click en él o damos al botón aceptar, y tras unos segundos se ejecuta el reproductor mplayer, que reproduce la emisión del canal elegido, y una ventana de "Teclas útiles de Mplayer" que nos indica las teclas importantes para el manejo del vídeo en mplayer.



Mientras se va reproduciendo la emisión, se va creando un archivo temporal multimedia en el directorio /tmp ; cuando cerramos la ventana de mplayer, el script nos pregunta si queremos guardar:  ¿Desea guardar el streaming de vídeo en disco ? , si decimos que no, el archivo temporal creado en /tmp se borrará, si por el contrario decimos que si, nos dejara guardar el archivo creado en /tmp en el directorio que queramos, tras lo cual se borrará el archivo multimedia temporal. Es decir el script nos permite ver la emisión a través del reproductor mplayer, y después guardar todo el vídeo en el disco duro.

El único problema que se ha detectado es la desincronización del audio con respecto al vídeo  en muchos de los canales, aunque el script TVenLinux ha previsto este inconveniente, ya que se soluciona con volver unos segundos hacia atrás el vídeo, tal como se indica en la web de desarrollo.

El autor recomienda usar mplayer, y ese es el reproductor que viene configurado por defecto para ser usado, pero se puede cambiar el reproductor por vlc, cvlc o ffplay fácilmente en la sección de "Configuración" con la variable "REPRODUCTOR".  Gracias a ello, yo cambio mplayer por vlc (vlc es el ejecutable del reproductor multimedia Videolan) como reproductor del script, y el resultado es el siguiente.
Como uso el script, con Videolan como reproductor multimedia:  Si se reproduce el script con vlc, Videolan se puede configurar de la siguiente forma:
Videolan->View->advanced controls , con ello en la barra de herramientas de Videolan aparecen unos iconos nuevos, entre los que hay uno (botón rojo) con el que se puede, haciendo click en él, grabar el vídeo en formato multimedia, mientras se reproduce el vídeo, de forma que se puede grabar todo, o alguna/s parte/s de él, haciendo click para que empiece a grabar o pare la grabación. La/s grabaciones realizadas de esta forma se guardaran en uno o varios archivos multimedia en la carpeta /home/usuario. Ademas del botón para grabar la reproducción, en la barra de herramientas de Videolan habrán aparecido otros botones que nos permiten: tomas fotos de los fotogramas, hacer que se reproduzca fotograma a fotograma,


También permite modificar muchos mas detalles de como se ve y se oye el vídeo durante la reproducción, pero estos cambios no se reflejaran  en el archivo multimedia que se guardará, ni con la herramienta de Videolan, ni al cerrar el programa.
Videolan->herramientas->Efectos y filtros ( o con Ctrl+e ): pantalla de sonido y de vídeo


y además sigue estando vigente la opción de que al cerrar la pantalla de Videolan, despues de la reproducción, el script te pregunta si quieres grabar todo el vídeo que se ha reproducido anteriormente en el directorio que quieras.

-- Con vlc como reproductor del script puedes grabar el vídeo ( todo, o alguna/s parte/s de él ) mientras se reproduce, con la herramienta de Videolan,  o  todo el vídeo, después de cerrar la ventana del reproductor.
-- Con mplayer como reproductor del script puedes grabar el vídeo: todo el vídeo, después de cerrar la ventana del reproductor.
——————————

2 comentarios:

  1. Hola hatteras

    Muy bueno, yo lo utilizo con Vlc

    funciona de maravilla

    ResponderEliminar
  2. Hola hatteras:
    Gracias por haber dedicado el esfuerzo de descubrinos este script, la verdad es que funciona perfectamente

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.