Cada vez que intento transmitir videos pesados (principalmente 1080p) a través de la red (webdav, sftp ...), falla o aparece el mensaje "caché está lleno", etc. Los videos comienzan a reproducirse, pero se detienen aleatoriamente (para volver a almacenar en búfer) , Supongo).
Sé que este es un problema común y sé los ajustes que puedo hacer ( curl también).
El entorno:
Utilizo un RPi modelo B y tengo una conexión a Internet de 100M / b. He estado probando con Kodi 14.2 y Kodi 15 (openelec 5.0.7, openelec 5.95.2).
Los exámenes:
Hasta ahora, entre muchas opciones adicionales, esto es lo que probé:
Cache\Protocol | Webdav | SFTP (local and internet)
--------------------------------------------------------------------------
No cache | not loading | loads quickly, no error, stops frequently
--------------------------------------------------------------------------
(5mb cache) | not loading | slow to load, cache error, stops randomly
--------------------------------------------------------------------------
(25mb cache) | not loading | very slow to load, cache error, stops randomly
--------------------------------------------------------------------------
sdcard cache | not loading | incredibly slow to load, no error, fine
--------------------------------------------------------------------------
Problema de video?
No Si se copia en la tarjeta SD, funciona sin problemas.
Problema de RAM?
Entendería la limitación de hardware si la RAM estuviera llena, pero, mientras free -m
veo videos, me da esto:
total used free shared buffers
Mem: 373 236 137 4 34
-/+ buffers: 202 171
Swap: 0 0 0
Parece que hay muchos disponibles ...
Dato interesante, como notó @goldilocks, los buffers son inusualmente bajos.
¿Problema de red?
Si estoy descargando un archivo de video manualmente con SFTP, mientras reproduzco este mismo archivo al mismo tiempo, funciona. Velocidad de descarga: ~ 1.5MB / s. Entonces, ni la red, ni el descifrado es un cuello de botella.
Otro problema?
Errores en el archivo de registro (con depuración de video, depuración ffmpeg), excepto depuración y avisos:
ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached
ERROR: OMXPlayerVideo: Got MSGQ_IS_ERROR(-1) Aborting
De acuerdo, curl no está optimizado para la transmisión de video. ¿Pero qué hay de SFTP? Debería ser pan comido.
Problema de configuración?
La última prueba anterior (caché de tarjeta sd) es interesante. Comienza a reproducir el video, después de descargar unos 150M (!) En la tarjeta sd ( .kodi/temp/filecache000.cache
). Aunque funciona bien, no es una solución viable, ya que es demasiado lento para comenzar.
Parece intentar descargar la misma cantidad de RAM, ignorando la configuración advancedsettings.xml
. Lo comprobé, el archivo se carga sin ningún problema. Este es un ejemplo de algo que probé ( .kodi/userdata/advancedsettings.xml
):
<advancedsettings>
<network>
<buffermode>1</buffermode>
<cachemembuffersize>5242880</cachemembuffersize>
<readbufferfactor>4.0</readbufferfactor>
<curlclienttimeout>60</curlclienttimeout>
<curllowspeedtime>20</curllowspeedtime>
</network>
</advancedsettings>
Nota: algunas de estas opciones ya no son correctas en kodi 17, consulte la respuesta de @ZacWolf para actualizar
Entonces, ¿alguien tiene alguna idea? ¿Qué podría estar mal aquí? Cualquiera sea la solución, también quiero saber por qué falla el uso normal (RAM buffer) en este caso.
EDITAR: Prueba en Archlinux
Instalé kodi en Archlinux, para determinar si es un problema de kodi u openelec. Es lo mismo: los videos HD son entrecortados, por lo que parece ser un error en kodi. Es más como un problema de protocolo (SFTP y WebDAV: http) porque mi prueba con SSHFS funciona muy bien. Desafortunadamente, no es trivial instalar SSHFS en openelec.
EDIT 2: una solución
Lo escribo aquí, porque no aborda directamente el problema del almacenamiento en búfer, pero he instalado kodi en Archlinux durante más de un año y funciona perfectamente bien. Es menos amigable para los novatos que openelec, pero para aquellos que estén interesados:
- Instale Archlinux para ARM (muy fácil, solo siga la guía ; es para rpi1, para una más reciente, simplemente cambie la plataforma);
- Instale Kodi ( siga la guía wiki de Archlinux , básicamente, instale el
kodi-rbp
paquete); - Habilitar el servicio Kodi Kodi se ejecute automáticamente en el arranque:
# systemctl enable kodi.service
; - Instalar SSHFS:
pacman -Suy sshfs
; - Utilice el muy útil montaje automático SSHFS con
/etc/fstab
para montar su parte distante.
Hecho. No te olvides de actualizar con frecuencia ( pacman -Suy
).
free
- por lo que algo interesante en su puesto es el hecho de que este número es relativamente pequeño. Si aumenta el caché de disco de Kodi, ese número podría / debería aumentar mientras está en acción para igualarlo.