Chaque fois que j'essaie de diffuser des vidéos lourdes (principalement 1080p) via le réseau (webdav, sftp ...), cela échoue ou je reçois le message "le cache est plein", etc. Les vidéos commencent à jouer, mais s'arrêtent au hasard (pour tamponner à nouveau , J'imagine).
Je sais que c'est un problème commun et je connais les réglages que je peux faire ( boucler aussi).
L'environnement:
J'utilise un RPi modèle B et j'ai une connexion Internet de 100M / b. J'ai testé avec Kodi 14.2 et Kodi 15 (openelec 5.0.7, openelec 5.95.2).
Les tests:
Jusqu'à présent, parmi de nombreuses options supplémentaires, voici ce que j'ai essayé:
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
--------------------------------------------------------------------------
Problème vidéo?
Nan. S'il est copié sur la carte SD, il fonctionne correctement.
Problème de RAM?
Je comprendrais la limitation matérielle si la RAM était pleine, mais, en regardant des vidéos, free -m
me donne ceci:
total used free shared buffers
Mem: 373 236 137 4 34
-/+ buffers: 202 171
Swap: 0 0 0
Il semble qu'il y en ait beaucoup disponibles ...
Fait intéressant, comme l'a remarqué @goldilocks, les tampons sont inhabituellement bas.
Problème de réseau?
Si je télécharge un fichier vidéo manuellement avec SFTP, tout en lisant ce même fichier en même temps, cela fonctionne. Vitesse de téléchargement: ~ 1,5 Mo / s. Donc, ni le réseau, ni le décryptage n'est un goulot d'étranglement.
Un autre problème?
Erreurs dans le fichier journal (avec débogage vidéo, débogage ffmpeg), à l'exception du débogage et des notifications:
ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached
ERROR: OMXPlayerVideo: Got MSGQ_IS_ERROR(-1) Aborting
OK, donc curl n'est pas optimisé pour le streaming vidéo. Mais qu'en est-il du SFTP? Ce devrait être un morceau de gâteau.
Problème de configuration?
Le dernier test ci-dessus (cache sdcard) est intéressant. Il commence à lire la vidéo, après avoir téléchargé environ 150M (!) Sur la carte SD ( .kodi/temp/filecache000.cache
). Bien qu'il fonctionne bien, ce n'est pas une solution viable car il est trop lent à démarrer.
Il semble essayer de télécharger la même quantité de RAM, en ignorant la configuration advancedsettings.xml
. J'ai vérifié, le fichier est chargé sans aucun problème. Voici un exemple de quelque chose que j'ai testé ( .kodi/userdata/advancedsettings.xml
):
<advancedsettings>
<network>
<buffermode>1</buffermode>
<cachemembuffersize>5242880</cachemembuffersize>
<readbufferfactor>4.0</readbufferfactor>
<curlclienttimeout>60</curlclienttimeout>
<curllowspeedtime>20</curllowspeedtime>
</network>
</advancedsettings>
Remarque: certaines de ces options ne sont plus correctes dans kodi 17, voir la réponse @ZacWolf pour la mise à jour
Alors, quelqu'un a une idée? Qu'est-ce qui pourrait mal ici? Quelle que soit la solution, je veux également savoir pourquoi une utilisation normale (mémoire tampon RAM) échoue dans ce cas.
EDIT: Test sur Archlinux
J'ai installé kodi sur Archlinux, pour déterminer s'il s'agit d'un problème kodi ou openelec. C'est la même chose: les vidéos HD sont saccadées, donc il semble que ce soit un bug dans kodi. Cela ressemble plus à un problème de protocole (SFTP et WebDAV: http) car mon test avec SSHFS fonctionne très bien. Malheureusement, il n'est pas trivial d'installer SSHFS sur openelec.
EDIT 2: une solution de contournement
Je l'écris ici, car il ne résout pas directement le problème de mise en mémoire tampon, mais j'ai installé kodi sur Archlinux depuis plus d'un an maintenant, et cela fonctionne parfaitement bien. Il est moins convivial que openelec, mais pour ceux qui sont intéressés:
- Installez Archlinux pour ARM (très facile, suivez simplement le guide - c'est pour rpi1, pour les plus récents, changez simplement de plateforme);
- Installez Kodi ( suivez le guide du wiki Archlinux - en gros, installez le
kodi-rbp
paquet); - Activez le service kodi pour exécuter automatiquement kodi au démarrage:
# systemctl enable kodi.service
; - Installer SSHFS:
pacman -Suy sshfs
; - Les très utiles SSHFS le montage automatique avec
/etc/fstab
pour monter votre part lointaine.
Terminé. N'oubliez pas de mettre à jour fréquemment ( pacman -Suy
).
free
- donc quelque chose d'intéressant dans votre article est le fait que ce nombre est relativement petit. Si vous augmentez le cache sur disque de Kodi, ce nombre pourrait / devrait augmenter pendant l'action pour le faire correspondre.