Cualquier aficionado a la informática te dirá que es mala idea instalarte la última versión de un programa. Es un buen consejo que deberías escuchar, las versiones recién publicadas suelen tener pequeños fallos que se van arreglando con el tiempo gracias a los reportes de los usuarios más adictos a las novedades.

A menos que te guste estar en el filo, es mejor esperar un poco.

Esto es precisamente lo que ha ocurrido con la última versión 12.1 de XBMC publicada hace poco, en la que se ha deslizado accidentalmente un fallo que ha hecho que mucha gente empiece a tener problemas para ver vídeos en streaming. A pesar de ser uno de los sistemas multimedia más estables que conozco, y a pesar de tener un elaborado sistema de control de calidad, no está exento de fallos.

Si a esto le unimos el segundo fallo, encontrado en realidad en Raspbmc pero que afecta igualmente a los usuarios de XBMC, tenemos lo que podría llamarse una semana desastrosa.

Pero no escribiría estas líneas si no tuviera la explicación a ambos problemas y también las soluciones, así que vamos allá 🙂

Al reproducir un vídeo oigo el audio, pero no veo la imagen

Si te resulta familiar este fallo es porque muy probablemente estés usando XBMC 12.1, y has intentado abrir un vídeo online. Al empezar a reproducir un vídeo remoto XBMC lanza un par de llamadas para averiguar el tamaño del fichero, el fallo en cuestión hace que no se realicen correctamente y el resultado es que el vídeo no se reproduce.

[image src=»https://blog.tvalacarta.info/wp-content/uploads/2013/04/audio-sin-video-en-xbmc-12.1.jpg» responsive=»true»]

No ha sido un fallo complicado, si seguimos la cronología vemos que días después un usuario lo detecta y lo notifica en el foro de XBMC:

http://forum.xbmc.org/showthread.php?tid=160613&page=2

Lo que acaba traduciéndose en una modificación que pasa a incluirse en el código fuente de XBMC, de forma que futuras versiones ya tengan este fallo arreglado.

https://github.com/xbmc/xbmc/commit/63a6dadd40815eb07ba940a60d012a23ce9a5eb4

Sin embargo XBMC 12.1 está publicado y tiene ese problema, así que si te has visto afectado por este fallo tienes dos opciones.

  • La primera, y la que yo te recomendaría, es que volvieras a instalarte XBMC 12.0. A menos que necesites alguna de las novedades de la 12.1, la versión anterior va muy bien y no tenía ese problema.
  • Y la otra opción es que esperes a que se publique una próxima versión 12.2 que ya está preparándose, puesto que incluirá todas las novedades de la 12.1 y ese problema resuelto.

Si quieres hacer una cosa u otra en Raspbmc ten en cuenta que puedes instalar diferentes versiones de XBMC si te vas a «Programs / Raspbmc settings / Nightly Build Config». Si ya tienes una versión que te funciona bien, te recomiendo que desactives las actualizaciones automáticas para evitar sorpresas de este tipo.

En mi Raspberry la reproducción se corta a los pocos segundos

Este segundo fallo lo reportó Losedes en el foro el otro día al intentar usar su nuevo Raspbmc. Igual que en el fallo anterior el problema se presenta también al intentar ver un vídeo online, pero esta vez sólo en Raspbmc y cuando tienes la configuración optimizada para streaming (fichero advancedsettings.xml).

La causa estaba bastante clara en este caso. Mientras que XBMC suele almacenar los próximos segundos del vídeo que estás viendo en memoria (buffer) para que vaya fluido, con la configuración optimizada para el streaming esos próximos segundos se graban en disco. De esa forma puedes pausar el vídeo, dejar que cargue varios minutos, y luego verlo sin interrupciones.

[image src=»https://blog.tvalacarta.info/wp-content/uploads/2013/04/buffering.jpg» responsive=»true»]

Si la escritura en disco no funciona, esa grabación no se puede hacer y la reproducción se corta. Ese es el fallo.

Lo que no era tan fácil de encontrar era la solución, y en realidad no es que la haya encontrado yo sino que después de mucho investigar he decidido darme de alta en el foro de Raspbmc para explicar hasta donde había llegado y ver si alguien podía darme alguna luz.

Aproximadamente una hora después me contestaron con una explicación de lo más lógica, que además ha resultado ser la correcta porque resuelve el problema.

La explicación es que Raspbmc reserva muy poco espacio para el almacenamiento de ficheros temporales como el del buffer, de forma que el truco de pausar el vídeo para dejar que cargue no funcionaba.

Y la solución es cambiar la configuración de Raspbmc para que no haga eso, editando el fichero «cmdline.txt» de tu tarjeta SD para añadir la directiva «persistent-logs», de forma que en lugar de esto:

dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2

Ponga esto:

dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2 persistent-logs

Editar ese fichero es muy fácil, ya que lo puedes hacer directamente con tu ordenador sobre la tarjeta SD. Simplemente apaga tu Raspberry, extrae la tarjeta SD e insértala en tu ordenador. Verás que uno de los ficheros es el «cmdline.txt», que puedes abrir con un editor de textos para hacer el cambio.

Luego vuelve a insertar la tarjeta SD en tu Raspberry y problema resuelto.