네트워크 (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
curl은 비디오 스트리밍에 최적화되어 있지 않습니다. 그러나 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에서 테스트
Kodi 또는 openelec 문제인지 확인하기 위해 Archlinux에 kodi를 설치했습니다. HD 비디오가 고르지 않아 kodi의 버그 인 것 같습니다. SSHFS 테스트가 훌륭하게 작동하기 때문에 프로토콜 문제 (SFTP 및 WebDAV : http)와 비슷합니다. 불행히도 openelec에 SSHFS를 설치하는 것은 쉬운 일이 아닙니다.
편집 2 : 해결 방법
버퍼링 문제를 직접 해결하지 못하기 때문에 여기에 작성했지만 Archlinux에 kodi를 1 년 이상 설치했으며 완벽하게 작동합니다. openelec보다 덜 멍청하지 않지만 관심이있는 사람들에게는 다음과 같습니다.
- Archlinux for ARM을 설치하십시오 (매우 쉬우 므로 가이드를 따르십시오 -최신 버전의 경우 rpi1의 경우 플랫폼 변경).
- (KODI를 설치 아치 리눅스 위키 가이드를 따라 - 기본적으로 설치
kodi-rbp
패키지); - kodi 서비스가 시작시 kodi를 자동으로 실행하도록 설정하십시오
# systemctl enable kodi.service
. - SSHFS를 설치하십시오.
pacman -Suy sshfs
; - 원격 공유를 마운트 하려면 매우 유용한 SSHFS 자동 마운트 를 사용하십시오
/etc/fstab
.
끝난. 자주 업데이트하는 것을 잊지 마십시오 ( pacman -Suy
).
free
- 게시물에 뭔가 흥미로운는이 숫자가 상대적으로 작다는 사실은 그래서. Kodi의 디스크 간 캐시를 늘리면 실제로 일치하는 횟수만큼 증가 할 수 있습니다.