Autor Tema: [Tutorial] Resolver los constantes fallos del MiniDLNA  (Leído 20102 veces)

0 Usuarios y 1 Visitante están viendo este tema.

taik

  • Visitante
[Tutorial] Resolver los constantes fallos del MiniDLNA
« en: 22-02-2013, 14:20 (Viernes) »
El tutorial lo vamos a ir desarrollando entre todos.  Os comento los problemas que he ido teniendo y que veo que el resto de foreros también.

1.- El minidlna no reconoce todos los ficheros

El problema en sí es bastante complejo porque puede ser debido a varias causas:

1.1.- Falta de RAM

Este punto es algo polémico. Hay quien preferirá activar la swap y asunto resuelto. Aunque según el caso esto puede ser relativo; si estamos ante una falta de memoria sin duda será la solución, pero en mi caso la falta de ram es debida a bugs que aún no sé si son debidos al minidlna o a alguna configuración del openwrt/linux  (¿I/O bloqueante?, ¿acceso a disco lento?,...)

---> ¿Cómo saber si el minidlna está fallando por falta de ram? Ejecutando el siguiente comando:

# dmesg | grep "Out of memory"

Si nos devuelve algo como esto:

[ 3436.436000] Out of memory: Kill process 3147 (minidlna) score 751 or sacrifice child

es porque el minidlna está petando y aquí se explica una solución:

https://foro.seguridadwireless.net/openwrt/minidlna-no-me-detecta-el-contenido-del-usb-excepto-si-hago-restart/msg268813/#msg268813

1.2.- ¿bloqueo por concurrencia a disco? (por confirmar)

Si no vemos nada raro en el punto 1.1 el problema puede ser debido al acceso concurrente de varios programas a disco (sólo son suposiciones, necesito compilarme un firmware con herramientas de debugueo).

Si arrancamos el minidlna de esta forma:

/usr/bin/minidlna -f /tmp/minidlna.conf  -d -R

veremos como el escaneo se detiene sin terminar de escanear todos los ficheros. No habrá nada raro en los logs y por más que se intente el problema se repetirá. La solución es detener todos los programas que accedan a disco y luego ejecutar el comando anterior. En mi caso el transmission estaba bloqueando al minidlna y hasta que no lo he detenido no ha podido terminar el escaneo de los ficheros multimedia. Es importantísimo que se complete el escaneo para que el minidlna genere la base de datos  y que ésta no acabe bloqueada.

Estos bloqueos pueden ser provocados por transmission, samba, ftp, etc. Aquí me surge una gran duda, ¿se bloquean los programas entre sí o es el minidlna el único que lo sufre?

2.- Inotify

Cuando el escaneo se ha completado es cuando funciona el inotify. En teoría, una vez construida la base de datos con el inotify funcionando nos podemos olvidar temporalmente de todos estos dolores de cabeza.

[2013/02/22 21:30:22] playlist.c:258: warn: Finished parsing playlists.
[2013/02/22 21:30:22] scanner.c:844: debug: Initial file scan completed
[2013/02/22 21:30:32] minissdp.c:680: info: SSDP M-SEARCH from 10.10.10.102:59000 ST: ssdp:all, MX: 3, MAN: "ssdp:discover"
[2013/02/22 21:30:32] minissdp.c:680: info: SSDP M-SEARCH from 10.10.10.102:59000 ST: ssdp:all, MX: 3, MAN: "ssdp:discover"
[2013/02/22 21:30:32] minissdp.c:680: info: SSDP M-SEARCH from 10.10.10.102:59000 ST: ssdp:all, MX: 3, MAN: "ssdp:discover"
[2013/02/22 21:30:33] inotify.c:153: debug: Add watch to /mnt/persa/multimedia/DLNA
[2013/02/22 21:30:33] inotify.c:153: debug: Add watch to /mnt/persa/musica
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/Cloud.Atlas.2012.720p.BluRay.x264-BiDA [PublicHD]
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/Cloud.Atlas.2012.720p.BluRay.x264-BiDA [PublicHD]/Sample
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/Lo Imposible [BluRay 1080p][DTS_AC3 5.1 Castellano_DTS English + Subs. ES_EN][2013]
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/The.Amazing.Spiderman.2012.iNTERNAL.REPACK.720p.BluRay.x264-BRHD [PublicHD]
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/seal.team.six.the.raid.on.osama.bin.laden.2012.720p.hdtv.x264-2hd
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/youtube
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/youtube/piscina
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/youtube/ted



3.- Problemas de lentitud asociados al tipo de partición

MiniDLNA lists Movies and Photos by file name in its DB, and Music entries by ID3 tags instead of file names. If Music collection wasn't tagged in UTF8 but in a local charset, MiniDLNA might not identify and transcode it correctly to UTF8 for display in media players, or the original tags codepage(s) may be absent in your system, so the tags won't be readable even when media file names are. In this case consider re-tagging your collection to UTF-16BE or UTF-8 encoding with an ID3 Tag Converter.
Picking the "right" file system for your Media_Collection is a trade-off: XFS and EXT4 show fast read/write for HDs and lower CPU load critical for small Plug Computers with attached storage. NTFS is most compatible with Windows when plugging a drive directly for faster copy, while network file systems like Samba, NFS or iSCSI allow import to Windows any Linux FS with slower data copy. As file fragmentation affects playback, store your Movies on a non-system drive formatted in XFS (prevents fragments), NTFS (fragment resistant and easy to defrag), or EXT4 (uses large file extents), and avoid EXT3 or less resistant FAT32. For smaller Flash drives with seldom fragmented Music and Photo files, VFAT (FAT32) and EXT4 show faster writes with less CPU load, but EXT4 may affect memory wear due to journaling, and less compatible with media players. Proper drive partitioning, block alignment and mount options (i.e. async,noatime...- choice depends on file system and memory type) can greatly accelerate flash and HD drive speed among other advantages.

Fuente: https://wiki.archlinux.org/index.php/Minidlna
Optimizaciones para ext4: http://blog.smartlogicsolutions.com/2009/06/04/mount-options-to-improve-ext4-file-system-performance/


« Última modificación: 22-02-2013, 21:45 (Viernes) por taik »

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4604
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #1 en: 26-02-2013, 14:57 (Martes) »
La verdad es que no hago un uso muy intensivo de minidlna, ya que tengo un PopCorn A200 que se 'traga' lo que le des y que tira de samba.
Pero de vez en cuando, lo pongo para dar servircio a un reproductor de BluRay Samsung y, excepto el tema del refresco ... no me he encontrado con ningún problema  ^-^
« Última modificación: 26-02-2013, 14:59 (Martes) por jar229 »
Valoraciones positivas en compra/venta:
175 en Htcmania
240 en Har2mano
12 en gsmspain
 ....
 
Mis equipos en venta: https://drive.google.com/open?id=1Zi_bqLSfg_qCT8sx6JhPaWVvSeZXpcka

taik

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #2 en: 26-02-2013, 17:08 (Martes) »
Con tu PopCorn yo tampoco tendría ningún problema con el minidlna  ;D

La verdad es que el hilo puede llevar al engaño, funcionar me funciona y el problema se puede resumir en "problemas de refresco" de los ficheros. Lo que peta no es el demonio del minidlna sino el proceso hijo que crea para escanear los ficheros. Si este proceso hijo falla lo más que pasa es que nunca termina de tener actualizada la lista de películas. Ahora, si llega el viernes por la noche y de las 30 pelis descargadas sólo te escanea dos que además ya has visto... entonces el bug pasa de ser una feature a una gran ****da  >:D

kapoll

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #3 en: 06-03-2013, 14:02 (Miércoles) »
Siguiendo con la conversación del otro hilo de minidlna
 Tema: MINIDLNA, no me detecta el contenido del USB excepto si hago RESTART
He probado a parar transmission samba y el ftp y a inicial minidlna con /usr/bin/minidlna -f /tmp/minidlna.conf  -d -R, pero sigue sin aparecerme los archivos mpg.
A continuación os pongo un par de errores de dos archivos mpg.

[2013/03/06 12:57:22] metadata.c:741: warn: Opening /mnt/sda5/DESCARGAS/terminadas/Cubiertas.mpg failed!
[2013/03/06 12:57:22] scanner.c:503: warn: Unsuccessful getting details for /mnt/sda5/DESCARGAS/terminadas/Cubiertas.mpg!


[2013/03/06 12:58:01] metadata.c:767: debug: File Skyfall.CVCD.DVDrip.[www.TodoCVCD.com].mpg does not contain a video stream.
[2013/03/06 12:58:01] scanner.c:503: warn: Unsuccessful getting details for /mnt/sda5/DESCARGAS/terminadas/Skyfall.CVCD.DVDrip.[www.TodoCVCD.com].mpg!


Muchas Gracias

taik

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #4 en: 06-03-2013, 14:36 (Miércoles) »
Esos errores (si no recuerdo mal) son sólo warnings sin importancia que no influyen en que se listen en tu cliente DLNA ¿Seguro que el escaneo ha finalizado? Deberías ver un mensaje como este:

[2013/02/22 21:30:22] scanner.c:844: debug: Initial file scan completed

taik

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #5 en: 06-03-2013, 14:40 (Miércoles) »
Ups, no me percaté que el segundo mensaje te está diciendo que la película no contiene un flujo de video... Comprueba que la película se ve bien en tu pc sin usar el DLNA.

kapoll

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #6 en: 06-03-2013, 17:03 (Miércoles) »
He probado el video del segundo mensaje y si que funciona bien en el pc. El mensaje de escaneo terminado si que aparece :
[2013/03/06 16:00:54] scanner.c:802: warn: Scanning /mnt/sda5 finished (4 files)!
[2013/03/06 16:00:54] playlist.c:125: warn: Parsing playlists...
[2013/03/06 16:00:54] scanner.c:848: debug: Initial file scan completed

No se que puede ser.


taik

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #7 en: 06-03-2013, 17:15 (Miércoles) »
Pegame lo siguiente:

# grep "signal 15" /donde/tengais/el/log/minidlna.log
# grep "database is locked" /donde/tengais/el/log/minidlna.log
# ls -l /donde/tengas/la_base_de_datos.db

También pégame /tmp/minidlna.conf

Instala "file":

# opkg update
# opkg install file

Y me pegas la salida del comando:

# file nombre_del_fichero_mpg_problematico.mpg

kapoll

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #8 en: 06-03-2013, 18:05 (Miércoles) »
Aqui tienes:

root@OpenWrt:~# grep "signal 15" /mnt/sda5/minidlna/log/minidlna.log
[2013/03/06 11:59:12] minidlna.c:154: warn: received signal 15, good-bye

root@OpenWrt:~# grep grep "database is locked" /mnt/sda5/minidlna/log/minidlna.log
grep: database is locked: No such file or directory

root@OpenWrt:~# ls -l /mnt/sda5/minidlna/db/files.db
-rw-r--r--    1 root     root         86016 Mar  6 16:00 /mnt/sda5/minidlna/db/files.db

/tmp/minidlna.conf

# this file is generated automatically, don't edit

port=8200

network_interface=br-lan

friendly_name=OpenWrt DLNA Server

db_dir=/mnt/sda5/minidlna/db

log_dir=/mnt/sda5/minidlna/log

inotify=yes

enable_tivo=no

strict_dlna=no

album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

notify_interval=900

serial=12345678

model_number=1

root_container=.

media_dir=/mnt/sda5



root@OpenWrt:/mnt/sda5/DESCARGAS/terminadas# file Cubiertas.mpg
Cubiertas.mpg: MPEG sequence, v1, system multiplex

root@OpenWrt:/mnt/sda5/DESCARGAS/terminadas# file Skyfall.CVCD.DVDrip.[www.TodoCVCD.com].mpg
Skyfall.CVCD.DVDrip.[www.TodoCVCD.com].mpg: MPEG sequence, v1, system multiplex

Gracias

taik

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #9 en: 06-03-2013, 18:40 (Miércoles) »
root@OpenWrt:~# grep grep "database is locked" /mnt/sda5/minidlna/log/minidlna.log
grep: database is locked: No such file or directory

Es grep, no grep grep  >:D

Pásame por privado el enlace de donde has bajado el video para probarlo. Parece que todo está bien.

Pégame esto:

# dmesg | grep "minidlna"

Y luego yo probaría reiniciar el router, pero antes de reiniciarlo ejecuta el comando anterior para no perder los logs.  Al reiniciar ya debería arrancar el demonio minidlna utilizando la base de datos actualizada.


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4604
Re: Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #10 en: 06-03-2013, 18:44 (Miércoles) »
Los CVCD son ficheros con video en mpeg1 con bitrate variable. Vamos que se salen del 'estandar' VCD. Igual van por ahí los tiros ...

La verdad es que a día de hoy, y si no van a ser reproducidos por un DVD del 'año de la polca' hay muchísimos formatos con mayor calidad ... mkv, avi, etc.

Enviado desde mi U30GT-H usando Tapatalk 2
Valoraciones positivas en compra/venta:
175 en Htcmania
240 en Har2mano
12 en gsmspain
 ....
 
Mis equipos en venta: https://drive.google.com/open?id=1Zi_bqLSfg_qCT8sx6JhPaWVvSeZXpcka

taik

  • Visitante
Re: Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #11 en: 06-03-2013, 18:47 (Miércoles) »
Sí, yo creo que la clave es lo que dice jar.

kapoll

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #12 en: 06-03-2013, 19:30 (Miércoles) »
Acabo de mandarte los enlaces por privado.
En grep "database is locked" /mnt/sda5/minidlna/log/minidlna.log y en dmesg | grep "minidlna" , no me sale nada.

taik

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #13 en: 06-03-2013, 19:54 (Miércoles) »
Por lo que veo los dos videos son CVCD.

Apoyo la teoría de jar. El minidlna reconoce mpeg1 pero aunque estos ficheros lo son es como si no lo fueran. He buscado información sobre este formato y tiene una pinta de ser made-in-spanish que no puede con ella  ;)

Si tienes mucho interes en reproducirlos por dlna puedes buscar como hacer que el minidlna haga transcode, lo que no sé es si el router tiene capacidad suficiente. Y sino conviertelos desde tu PC a otro formato.

Ya modificaré el tutorial para añadir este nuevo caso.

kapoll

  • Visitante
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #14 en: 06-03-2013, 20:39 (Miércoles) »
El problema es que casi todos los videos de mi biblioteca tienen ese formato, ya que se han descargado de la misma página, así es que tendre que renovar mi biblioteca de videos  ;D .
Gracias por vuestra ayuda

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4604
Re: Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #15 en: 06-03-2013, 21:34 (Miércoles) »
Pues la verdad es que es un formato que a día de hoy deja mucho que desear (en cuanto a calidad de imagen y sonido se refiere).

Si tu TV (o reproductor ) lo soporta, busca cosas en formato mkv en calidad microhd. Relación calidad/tamaño de archivo, es de lo mejor que hay ;D

Enviado desde mi U30GT-H usando Tapatalk 2
Valoraciones positivas en compra/venta:
175 en Htcmania
240 en Har2mano
12 en gsmspain
 ....
 
Mis equipos en venta: https://drive.google.com/open?id=1Zi_bqLSfg_qCT8sx6JhPaWVvSeZXpcka

kapoll

  • Visitante
Re: Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #16 en: 07-03-2013, 07:40 (Jueves) »
Al final creo q voy a optar por seguir vuestro consejo y renovar mi biblioteca d videos ;D , así hago un poco de limpieza en mi disco duro.
Gracias por todo

Enviado desde mi GT-I9000 usando Tapatalk 2

raphik

  • Visitante
Inotify funciona, pero hay que habilitarlo en el kernel.
« Respuesta #17 en: 21-08-2014, 10:55 (Jueves) »

2.- Inotify
Cuando el escaneo se ha completado es cuando funciona el inotify. En teoría, una vez construida la base de datos con el inotify funcionando nos podemos olvidar temporalmente de todos estos dolores de cabeza.

Inotify es un servicio de Linux que vigila los cambios en el sistema de archivos y los reporta a las aplicaciones.

La opción de configuración "inotify=yes" de minidlna obliga a minidlna a escuchar los informes del servicio inotify del kernel y a actualizar su base de datos en consecuencia. El caso es que, por defecto, el kernel de OpenWRT no tiene este servicio habilitado. Y el problema es que si el kernel no informa, minidlna no se entera.



Para habilitarlo hay que seleccionar "inotifyd" en el menu de configuración de opciones de compilación (make menuconfig) y compilar.



La ruta es:
Código: [Seleccionar]
Base system  --->
<*> busybox................................ Core utilities for embedded Linux (NEW)
Miscellaneous Utilities  --->
[*] inotifyd

Saludos.

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4604
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #18 en: 26-08-2014, 11:48 (Martes) »
Como siempre, estupendo aporte raphik  >:(
Valoraciones positivas en compra/venta:
175 en Htcmania
240 en Har2mano
12 en gsmspain
 ....
 
Mis equipos en venta: https://drive.google.com/open?id=1Zi_bqLSfg_qCT8sx6JhPaWVvSeZXpcka

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4604
Re: [Tutorial] Resolver los constantes fallos del MiniDLNA
« Respuesta #19 en: 26-08-2014, 19:50 (Martes) »
Además de activar inotify a lo hora de compilar, hay que hacer algo más ?

Lo digo porque en mi caso, y a pesar de haber activado esa opción, minidlna sigue sin enterarse cuando quito o pongo ficheros  >:D

Testeado en un router WDN600 con compilación propia (Barrier Braker 14_07 RC3) y minidlna v.1.1.3
Valoraciones positivas en compra/venta:
175 en Htcmania
240 en Har2mano
12 en gsmspain
 ....
 
Mis equipos en venta: https://drive.google.com/open?id=1Zi_bqLSfg_qCT8sx6JhPaWVvSeZXpcka