每次我尝试通过网络(webdav,sftp ...)流传输较重的视频(大多为1080p)时,要么失败,要么我收到消息“缓存已满”等。视频开始播放,但随机停止(以再次缓冲) , 我猜)。
我知道这是一个常见问题,我知道我可以做的调整(也可以卷曲)。
环境:
我使用的是RPi模型B,并且具有100M / b的互联网连接。我一直在用Kodi 14.2和Kodi 15(openelec 5.0.7,openelec 5.95.2)进行测试。
测试:
到目前为止,在许多其他选项中,这是我尝试的方法:
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
--------------------------------------------------------------------------
视频有问题吗?
不。如果将其复制到sd卡上,则运行平稳。
RAM问题?
如果RAM已满,我会理解硬件的局限性,但是在观看视频时,free -m
会看到以下信息:
total used free shared buffers
Mem: 373 236 137 4 34
-/+ buffers: 202 171
Swap: 0 0 0
似乎有很多可用的...
有趣的事实,正如@goldilocks注意到的那样,缓冲区异常低。
网络问题?
如果我要使用SFTP 手动下载视频文件,同时播放此文件,则可以正常工作。下载速度:〜1.5MB / s。因此,网络也不是解密的瓶颈。
还有其他问题吗?
日志文件中的错误(带有视频调试,ffmpeg调试),但调试和注意事项除外:
ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached
ERROR: OMXPlayerVideo: Got MSGQ_IS_ERROR(-1) Aborting
好的,因此卷曲并未针对视频流进行优化。但是SFTP呢?应该是小菜一碟。
配置问题?
上面的最后一个测试(sdcard缓存)很有趣。在sdcard(.kodi/temp/filecache000.cache
)上下载约150M(!)后,它开始播放视频。尽管运行良好,但由于启动速度太慢,因此不是可行的解决方案。
似乎尝试下载相同数量的RAM,而忽略了中的配置advancedsettings.xml
。我检查了一下,文件加载没有任何问题。这是我测试过的示例(.kodi/userdata/advancedsettings.xml
):
<advancedsettings>
<network>
<buffermode>1</buffermode>
<cachemembuffersize>5242880</cachemembuffersize>
<readbufferfactor>4.0</readbufferfactor>
<curlclienttimeout>60</curlclienttimeout>
<curllowspeedtime>20</curllowspeedtime>
</network>
</advancedsettings>
注意:其中一些选项在kodi 17中不再正确,请参阅@ZacWolf答案以获取更新
那么,有人有什么主意吗?这有什么问题吗?无论采用哪种解决方案,我都想知道为什么在这种情况下正常使用(RAM缓冲区)会失败。
编辑:在Archlinux上测试
我在Archlinux上安装了kodi,以确定这是kodi还是openelec问题。一样:高清视频不连贯,因此这似乎是kodi中的错误。这更像是协议问题(SFTP和WebDAV:http),因为我对SSHFS的测试效果很好。不幸的是,在openelec上安装SSHFS并非易事。
编辑2:解决方法
我在这里编写它是因为它不能直接解决缓冲问题,但是我已经在Archlinux上安装了kodi一年多了,并且运行良好。它比openelec不友好,但对于那些感兴趣的人:
- 安装用于ARM的Archlinux(非常容易,只需按照指南进行操作 -适用于rpi1,对于最新的版本,只需更改平台);
- 安装Kodi(遵循Archlinux Wiki指南 -基本安装
kodi-rbp
软件包); - 启用科迪服务在启动时自动运行科迪:
# systemctl enable kodi.service
; - 安装SSHFS:
pacman -Suy sshfs
; - 使用非常有用的SSHFS挂载与
/etc/fstab
挂载你遥远的份额。
做完了 不要忘记频繁更新(pacman -Suy
)。
free
-因此,您的帖子中有一个有趣的事实是,该数字相对较小。如果您增加Kodi的磁盘缓存,则该数字可能会/应该在实际操作中增加以匹配它。