Ogni volta che provo a trasmettere video pesanti (principalmente 1080p) attraverso la rete (webdav, sftp ...), o non riesce o ricevo il messaggio "cache è piena" ecc. La riproduzione dei video inizia, ma si arresta in modo casuale (per eseguire nuovamente il buffer , Suppongo).
So che questo è un problema comune e conosco le modifiche che posso fare ( anche arricciare ).
L'ambiente:
Uso un modello RPi B e ho una connessione Internet 100M / b. Ho provato con Kodi 14.2 e Kodi 15 (openelec 5.0.7, openelec 5.95.2).
I test:
Finora, tra molte altre opzioni, questo è quello che ho provato:
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 video?
No. Se copiato sulla scheda SD, funziona senza problemi.
Problema RAM?
Comprenderei la limitazione hardware se la RAM fosse piena, ma, mentre guardo i video, free -m
mi dà questo:
total used free shared buffers
Mem: 373 236 137 4 34
-/+ buffers: 202 171
Swap: 0 0 0
Sembra che ci siano molti disponibili ...
Fatto interessante, come notato da @goldilocks, i buffer sono insolitamente bassi.
Problema di rete?
Se si sta scaricando un file video manualmente con SFTP, durante la riproduzione di questo stesso file allo stesso tempo, funziona. Velocità di download: ~ 1,5 MB / s. Quindi, né la rete, né la decrittazione sono un collo di bottiglia.
Altro problema?
Errori nel file di registro (con debug video, debug ffmpeg), ad eccezione del debug e degli avvisi:
ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached
ERROR: OMXPlayerVideo: Got MSGQ_IS_ERROR(-1) Aborting
OK, quindi l'arricciatura non è ottimizzata per lo streaming video. Ma che dire di SFTP? Dovrebbe essere un gioco da ragazzi.
Problema di configurazione?
L'ultimo test sopra (cache sdcard) è interessante. Inizia a riprodurre il video, dopo aver scaricato circa 150 M (!) Sulla scheda SD ( .kodi/temp/filecache000.cache
). Anche se funziona bene, non è una soluzione praticabile in quanto è troppo lento per avviarsi.
Sembra provare a scaricare la stessa quantità di RAM, ignorando la configurazione advancedsettings.xml
. Ho controllato, il file viene caricato senza alcun problema. Questo è un esempio di qualcosa che ho testato ( .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: alcune di queste opzioni non sono più corrette in Kodi 17, vedere la risposta di @ZacWolf per l'aggiornamento
Qualcuno ha qualche idea? Cosa potrebbe essere sbagliato qui? Qualunque sia la soluzione, voglio anche sapere perché il normale utilizzo (buffer RAM) non riesce in questo caso.
EDIT: Test su Archlinux
Ho installato kodi su Archlinux, per determinare se si tratta di un problema di kodi o openelec. È lo stesso: i video HD sono instabili, quindi sembra essere un bug in Kodi. È più come un problema di protocollo (SFTP e WebDAV: http) perché il mio test con SSHFS funziona alla grande. Sfortunatamente, non è banale installare SSHFS su openelec.
EDIT 2: una soluzione alternativa
Lo scrivo qui, perché non affronta direttamente il problema del buffering, ma ho installato kodi su Archlinux da più di un anno e funziona perfettamente. È meno amichevole rispetto a openelec, ma per coloro che sono interessati:
- Installa Archlinux per ARM (molto semplice, basta seguire la guida - è per rpi1, per quello più recente, basta cambiare la piattaforma);
- Installa Kodi ( segui la guida wiki di Archlinux - in sostanza, installa il
kodi-rbp
pacchetto); - Attivare il servizio Kodi per eseguire automaticamente Kodi all'avvio:
# systemctl enable kodi.service
; - Installare SSHFS:
pacman -Suy sshfs
; - Usa l' utilunt SSHFS molto utile con
/etc/fstab
per montare la tua condivisione distante.
Fatto. Non dimenticare di aggiornare in modo frenetico ( pacman -Suy
).
free
- quindi qualcosa di interessante nel tuo post è il fatto che questo numero è relativamente piccolo. Se aumenti la cache su disco di Kodi, quel numero potrebbe / dovrebbe aumentare mentre sei in azione per abbinarlo.