Kodi ile arabelleğe alma sorunları (openelec'te)


9

Ağda (webdav, sftp ...) ağır (çoğunlukla 1080p) videolar yayınlamaya çalıştığımda, ya başarısız oluyor ya da “önbellek dolu” mesajı alıyorum. Videolar oynatılmaya başlıyor, ancak rastgele duruyor (tekrar arabelleğe almak için) , Sanırım).

Bu yaygın bir sorun olduğunu biliyorum ve yapabileceğim tweaks biliyorum ( kıvırmak da).

Çevre:

RPi model B kullanıyorum ve 100M / b internet bağlantım var. Kodi 14.2 ve Kodi 15 (openelec 5.0.7, openelec 5.95.2) ile test yapıyorum.

Testler:

Şimdiye kadar, birçok ek seçenek arasında denedim:

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
--------------------------------------------------------------------------

Video sorunu mu var?

Hayır! SD karta kopyalanırsa sorunsuz çalışır.

RAM sorunu mu var?

RAM doluysa donanım sınırlamasını anlayabilirim, ancak video izlerken free -mbana bunu verir:

             total         used         free       shared      buffers
Mem:           373          236          137            4           34
-/+ buffers:                202          171
Swap:            0            0            0

Orada bol kullanılabilir ...

İlginç bir gerçek, @goldilocks'un fark ettiği gibi, tamponlar alışılmadık derecede düşüktür.

Ağ sorunu?

Aynı videoyu aynı anda oynatırken SFTP ile manuel olarak bir video dosyası indiriyorum, işe yarıyor. İndirme hızı: ~ 1.5MB / s. Yani ne ağ ne de şifre çözme bir darboğaz değildir.

Başka bir sorun mu var?

Hata ayıklama ve bildirimler hariç günlük dosyasındaki hatalar (video hata ayıklama, ffmpeg hata ayıklama ile):

ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached
ERROR: OMXPlayerVideo: Got MSGQ_IS_ERROR(-1) Aborting

Tamam, bu nedenle kıvrılma video akışı için optimize edilmedi. Peki ya SFTP? Bir parça kek olmalı.

Yapılandırma sorunu mu yaşıyorsunuz?

Yukarıdaki son test (sdcard önbellek) ilginçtir. SD kartta () yaklaşık 150M (!) İndirdikten sonra videoyu oynatmaya başlar .kodi/temp/filecache000.cache. İyi çalışmasına rağmen, başlamak için çok yavaş olduğu için uygun bir çözüm değildir.

Yapılandırmayı yok sayarak aynı miktarda RAM indirmeye çalışıyor gibi görünüyor advancedsettings.xml. Kontrol ettim, dosya herhangi bir sorun olmadan yüklenir. Bu, test ettiğim bir şeyin örneği ( .kodi/userdata/advancedsettings.xml):

<advancedsettings>
    <network>
        <buffermode>1</buffermode>
        <cachemembuffersize>5242880</cachemembuffersize>
        <readbufferfactor>4.0</readbufferfactor>
        <curlclienttimeout>60</curlclienttimeout>
        <curllowspeedtime>20</curllowspeedtime>
    </network>
</advancedsettings>

Not: bu seçeneklerden bazıları kodi 17'de artık doğru değil, güncelleme için @ZacWolf yanıtına bakın

Yani, birinin bir fikri var mı? Burada ne yanlış olabilir? Çözüm ne olursa olsun, bu durumda normal kullanımın (RAM tamponu) neden başarısız olduğunu da bilmek istiyorum.

EDIT: Archlinux üzerinde test

Kodi veya openelec sorunu olup olmadığını belirlemek için Archlinux'a kodi yükledim. Aynı şey: HD videolar dalgalı, bu yüzden kodi'de bir hata gibi görünüyor. Daha çok bir protokol sorunu (SFTP ve WebDAV: http) gibi çünkü SSHFS ile testim harika çalışıyor. Ne yazık ki, openelec'e SSHFS kurmak önemsiz değil.

EDIT 2: Geçici bir çözüm

Buraya yazıyorum, çünkü doğrudan arabelleğe alma sorununu çözmüyor, ancak Archlinux'a bir yıldan fazla bir süredir kodi kurdum ve mükemmel çalışıyor. Openelec'ten daha az noob dostu, ancak ilgilenenler için:

  • ARM için Archlinux'i yükleyin (çok kolay, sadece kılavuzu izleyin - rpi1 için, daha yakın zamanda, sadece platformu değiştirin);
  • Kodi'yi yükleyin ( Archlinux wiki kılavuzunu izleyin - temel olarak kodi-rbppaketi yükleyin );
  • Kodi hizmetinin başlangıçta kodi'yi otomatik olarak çalıştırmasını sağlayın # systemctl enable kodi.service:;
  • Sshfs yükleyin: pacman -Suy sshfs;
  • Çok faydalı kullanın Automounting sshfs ile /etc/fstabsizin uzak paylaşıyoruz.

Bitti. Frentely güncellemeyi unutmayın ( pacman -Suy).


150 MB yüksek tarafta olabilir, ancak choppiness önlemek için ~ 1 MB / s bit hızı içeriği için muhtemelen 5 MB çok düşük. SD kartla ilgili paranoyayı terk ederim. Bunu kullanmak için aldın değil mi? Aksi takdirde, serin ve kuru bir dolapta bir yerde daha güvenli olacaktır.
goldilocks

İlginiz için teşekkürler. Ancak, sorumun yalnızca sdcard buffer ile ilgili olmadığını unutmayın. İkinci olarak, 150M, ~ 1MB / s'de ... Evet, 150s. Bu çok saçma. Sdcard kullanırken arabellek boyutunu değiştirme seçeneği var mı? Bu bir çözüm olabilir. Ardından, önbellek boyutu ne olursa olsun, yalnızca arabelleğe değil tüm videoyu (bazen birkaç GB) sdcard'a yükler. Biliyorum, sdcard ucuz. Çok önemli değil. Biliyorum. Ama neden RAM çalışırken sdcard'ı rahatsız etmeliyim?
Gui-Don

Özür dilerim - Geriye baktıktan sonra bunu biraz tonladım. Kodi'yi kullanmadım, bu yüzden burada fazla yardımcı olamam, sadece genel bir gözlemdi. IMO, diske arabelleğe alma, RAM'e arabelleğe alma işleminden daha iyi bir stratejidir, çünkü RAM'i% 100 doldurursanız, sistemin tüm yönlerini belirgin şekilde etkileyecek hiçbir disk önbelleği kalmaz . Bununla birlikte, RAM'i doldurmazsanız ve başka bir şey yapmazsanız, diske yazdığınız (ve aynı anda okuduğunuz) kesinlikle disk önbelleğine konur - RAM, ancak çekirdek tarafından dinamik olarak yönetilir. bunu daha iyi bir strateji yapan şey.
goldilocks

Bu net değilse: İşletim sistemi önbellekleme için olabildiğince birleşik RAM kullanır (Ben buna hafif bir yanlış isim olan "disk önbelleği" olarak bahsettim, ancak genellikle çoğunlukla diskten sıkça okunan şeyler olduğunu vurgular. ). Pi'de, tüm taahhüt edilmemiş RAM olması olağandışı olmayacaktır , bu "tamponlar" rakamıdır free- bu nedenle mesajınızdaki ilginç bir şey, bu sayının nispeten küçük olmasıdır. Kodi'nin disk önbelleğini artırırsanız, hareket halindeyken bu sayı yaklaşık olarak eşleşecek şekilde artabilir / artabilir.
goldilocks

1
Gördüm;) Tamam, anlıyorum disk kullanmak RAM doldurmak daha iyidir. Videoyu oynatmak için gereken arabellek boyutunu azaltabilirsem, çalışması için iyi bir çözümdür. BTW, mutlak bir miktardan ziyade bir yüzde gibi görünüyor. Yine de, burada ne olduğunu merak ediyorum. Video arabelleğe alınırken bile çok fazla RAM kullanmam tuhaf.
Gui-Don

Yanıtlar:


2

DÜZENLE (12/2017)

Kodi v17 , advancedsetting.xml dosyasında etiketleri yeniden adlandırdı ve yerini değiştirdi

<cachemembuffersize>, <memorysize> olarak yeniden adlandırıldı

<readbufferfactor>, <readfactor> olarak yeniden adlandırıldı

VE bunlar <ağ> 'dan kaldırıldı ve <önbellek>' e eklendi

Advancesettings.xml artık şuna benziyor:

<?xml version="1.0" encoding="utf-8"?>
<advancedsettings>
        <cache>
                <memorysize>524288000</memorysize>
                <buffermode>1</buffermode>
                <readfactor>6</readfactor>
        </cache>
</advancedsettings>

Bu özellikle bir Pi'den daha fazla belleğe sahip bir Vero4K cihazı içindir, bu nedenle mevcut belleğinize özgü bu ayarları değiştirmeniz gerekir.
ZacWolf

1

Ben OpenElec ile Pi 3 çalıştırıyorum ve ben de arabelleğe alma sorunları bir sürü koştu.

Doğrudan yönlendiricinin yanında olduğunu ve herhangi bir sorun olmamasını düşündüm gibi Wi-Fi üzerinden akış oldu. Ethernet üzerinden taktıktan sonra, arabellek sorunları durduğunda gelişmiş xml dosyasını bir araya getirmeliyim.

Dizüstü bilgisayarım ve telefonum arabelleğe almadan Wi-Fi üzerinden iyi çalışıyor, bu nedenle Pi 3'ün OpenElec'teki yerleşik Wi-Fi'siyle ilgili bir şey soruna neden oluyor.


Sorununuzu çözdüğünüze sevindim ve bu sorunla karşılaşan birçok kişiye yardımcı olacağından eminim. Benim durumumda baştan beri ethernet kullandım. Rpi1 için bunun bir çözüm olduğunu düşünmüyorum. Olduğu söyleniyor, rpi3 üzerinde benzer bir sorun vardı garip, rpi1 iki kat daha fazla RAM var ... Ben yanlış olabilir ama kodi önbellek işleme sadece berbat gibi görünüyor.
Gui-Don

-1

Aynı sorunu yaşadım ve bu 'hack'i kullandım , şimdi işler sorunsuz çalışıyor.

--- edit --- @Simulant önerisini takiben:

  • Xunity bakım aracını takın.
  • Programa girdim (ayarlar değil), xunity - tweaks.
  • '0 Önbellek Gelişmiş XML Ekle' seçeneğini belirleyin.

1
Lütfen bağlantılı kaynağınızdaki önemli yazıları çıkarın. Aksi takdirde, bağlı kaynak çevrimdışıysa yayınınız işe yaramaz.
Simulant

1
Xunity bu amaç için sadece bir GUI değil mi? Yani, advancedsettings.xml dosyasını kendim değiştirmekten nasıl farklı ? Aslında, önbellek ayarı yapmadım, SFTP veya webdav videoları için yavaş yüklemek için bir yol.
Gui-Don

Bir GUI. Ancak deneyimlerime göre doğrudan düzenleme zor olabilir (izinler vb. Nedeniyle). Eklenti güzel çalışıyor, ben kullandım :-)
Meir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.