การบัฟเฟอร์ปัญหากับ kodi (บน openelec)


9

ทุกครั้งที่ฉันพยายามสตรีมวิดีโอหนัก ๆ (ส่วนใหญ่ 1080p) ผ่านเครือข่าย (webdav, sftp ... ) มันจะล้มเหลวหรือฉันได้รับข้อความ“ แคชเต็ม” ฯลฯ วิดีโอเริ่มเล่น แต่สุ่มหยุด (เพื่อบัฟเฟอร์อีกครั้ง , ฉันคิดว่า).

ฉันรู้ว่านี่เป็นปัญหาที่พบบ่อยและฉันรู้ว่าการปรับแต่งที่ฉันสามารถทำได้ ( ขดเกินไป)

สิ่งแวดล้อม:

ฉันใช้ 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
--------------------------------------------------------------------------

ปัญหาวิดีโอ

Nope หากคัดลอกลงในการ์ด 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 ดังนั้นหรือเครือข่ายหรือการถอดรหัสเป็นคอขวด

ปัญหาอื่น ๆ

ข้อผิดพลาดใน logfile (ที่มีการดีบักวิดีโอ, ffmpeg debug) ยกเว้นการดีบักและการแจ้งเตือน:

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

ตกลงดังนั้นขดไม่ได้รับการปรับให้เหมาะสมสำหรับการสตรีมวิดีโอ แต่ SFTP ล่ะ มันควรจะเป็นเค้กชิ้นหนึ่ง

ปัญหาการกำหนดค่า?

การทดสอบล่าสุดข้างต้น (แคช sdcard) เป็นสิ่งที่น่าสนใจ มันเริ่มเล่นวิดีโอหลังจาก dowloading ประมาณ 150M (!) บน sdcard ( .kodi/temp/filecache000.cache) แม้ว่ามันจะทำงานได้ดี แต่ก็ไม่ใช่วิธีแก้ปัญหาที่สามารถใช้งานได้เพราะมันเริ่มช้าเกินไป

มันดูเหมือนว่าจะพยายามที่จะดาวน์โหลดจำนวนเดียวกันของ 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 buffer) จึงล้มเหลวในกรณีนี้

แก้ไข: ทดสอบบน Archlinux

ฉันติดตั้ง kodi บน Archlinux เพื่อตรวจสอบว่าเป็นปัญหาของ kodi หรือ openelec เหมือนกัน: วิดีโอ HD ขาด ๆ หาย ๆ ดังนั้นจึงดูเหมือนว่าจะเป็นข้อบกพร่องในโคดี มันเหมือนปัญหาโปรโตคอลมากกว่า (SFTP และ WebDAV: http) เพราะการทดสอบของฉันกับ SSHFS นั้นใช้งานได้ดีมาก น่าเสียดายที่การติดตั้ง SSHFS บน openelec นั้นไม่สำคัญ

แก้ไข 2: วิธีแก้ปัญหา

ฉันเขียนที่นี่เพราะมันไม่ได้แก้ไขปัญหาบัฟเฟอร์โดยตรง แต่ฉันได้ติดตั้ง Kodi บน Archlinux มานานกว่าหนึ่งปีแล้วและมันทำงานได้ดีอย่างสมบูรณ์ มันน้อย noob มิตรกว่า openelec แต่สำหรับผู้ที่สนใจ:

  • ติดตั้ง Archlinux สำหรับ ARM (ง่ายมากเพียงทำตามคำแนะนำ - สำหรับ rpi1 สำหรับอันที่เพิ่งจะเปลี่ยนแพลตฟอร์ม);
  • ติดตั้ง Kodi ( ทำตามคำแนะนำของ Archlinux wiki - โดยพื้นฐานแล้วติดตั้งkodi-rbpแพ็คเกจ);
  • เปิดใช้งานบริการ kodi เพื่อเรียกใช้ kodi โดยอัตโนมัติเมื่อเริ่มต้น: # systemctl enable kodi.service;
  • ติดตั้ง SSHFS: pacman -Suy sshfs;
  • ใช้ประโยชน์มากSSHFS automountingกับ/etc/fstabที่จะติดหุ้นที่ห่างไกลของคุณ

เสร็จสิ้น อย่าลืมอัปเดต frenquently ( pacman -Suy)


150 MB อาจอยู่ในระดับสูง แต่ 5 MB อาจต่ำเกินไปสำหรับเนื้อหาบิตเรตที่ ~ 1 MB / s หากคุณต้องการหลีกเลี่ยงความไม่แน่นอน ฉันจะทิ้งความหวาดระแวงเกี่ยวกับการ์ด SD คุณซื้อมันมาใช้ใช่มั้ย ถ้าไม่มันจะปลอดภัยยิ่งขึ้นในตู้ที่แห้งและเย็น
goldilocks

ขอบคุณสำหรับความกังวลของคุณ แต่ระวังคำถามของฉันไม่ได้เกี่ยวกับ sdcard buffer เพียงอย่างเดียว ประการที่สอง 150M ที่ ~ 1MB / s ... ใช่ 150s นี่คือความยาวอย่างไร้เหตุผล มีตัวเลือกในการเปลี่ยนขนาดบัฟเฟอร์เมื่อใช้ sdcard หรือไม่ นี่อาจเป็นทางออก จากนั้นไม่ว่าขนาดแคชใดก็จะโหลดวิดีโอทั้งหมด (บางครั้งมีหลาย GB) บน sdcard ไม่ใช่เฉพาะบัฟเฟอร์ ฉันรู้ว่า sdcard ราคาถูก มันไม่ใช่เรื่องใหญ่ ฉันรู้ว่า. แต่ทำไมฉันถึงต้องกังวลเกี่ยวกับ sdcard ในขณะที่ RAM ควรใช้งานได้
Gui-Don

ขออภัยฉันกระชับลงเล็กน้อยหลังจากมองกลับไปที่มัน ฉันไม่ได้ใช้ Kodi ดังนั้นฉันจึงไม่สามารถช่วยเหลือได้มากนักนี่เป็นเพียงข้อสังเกตทั่วไป IMO การบัฟเฟอร์ลงดิสก์เป็นกลยุทธ์ที่ดีกว่าการบัฟเฟอร์เป็น RAM เพราะหากคุณเติม RAM เต็ม 100% ระบบจะไม่มีดิสก์แคชเหลืออยู่ซึ่งจะส่งผลกระทบต่อการดำเนินงานทุกด้านอย่างเห็นได้ชัด อย่างไรก็ตามหากคุณไม่ได้เติม RAM และไม่มีอะไรทำสิ่งที่คุณกำลังเขียนไปยังดิสก์ (และการอ่านจาก) พร้อมกันจะได้รับการใส่ดิสก์แคช - เช่น RAM แต่จัดการแบบไดนามิกโดยเคอร์เนลซึ่งเป็น อะไรทำให้กลยุทธ์นี้ดีขึ้น
goldilocks

ในกรณีที่ยังไม่ชัดเจน: ระบบปฏิบัติการใช้ RAM ที่ไม่ได้รับอนุญาตเท่าที่จะทำได้สำหรับการแคช (ฉันเรียกสิ่งนี้ว่า "แคชดิสก์" ซึ่งเป็นชื่อเรียกผิดเล็กน้อย แต่เน้นถึงความจริงที่ว่าโดยปกติแล้วมันมักอ่านเนื้อหาจากดิสก์เป็นส่วนใหญ่ ) บนปี่มันจะไม่เป็นเรื่องผิดปกติสำหรับที่จะเป็นทุก RAM ปราศจากข้อผูกมัดนี้เป็น "บัฟเฟอร์" ตัวเลขจากfree- ดังนั้นสิ่งที่น่าสนใจในการโพสต์ของคุณคือความจริงที่ว่าจำนวนนี้มีขนาดค่อนข้างเล็ก หากคุณเพิ่มแคชของดิสก์ของ Kodi หมายเลขนั้นสามารถ / ควรเพิ่มขึ้นในขณะที่การดำเนินการเพื่อให้ตรงกับมัน
goldilocks

1
ฉันเห็น;) ตกลงฉันเข้าใจว่าการใช้ดิสก์ดีกว่าการเติม RAM มันเป็นทางออกที่ดีที่จะทำให้มันใช้งานได้ถ้าฉันสามารถลดขนาดบัฟเฟอร์ที่ต้องการเพื่อเล่นวิดีโอ BTW ดูเหมือนว่าจะเป็นเปอร์เซ็นต์แทนที่จะเป็นจำนวนที่แน่นอน ถึงกระนั้นฉันอยากรู้ว่าเกิดอะไรขึ้นที่นี่ เป็นเรื่องแปลกที่ฉันไม่ได้ใช้ RAM มากถึงแม้ในขณะที่วิดีโอกำลังบัฟเฟอร์
Gui-Don

คำตอบ:


2

แก้ไข (12/2017)

Kodi v17 เปลี่ยนชื่อและย้ายแท็กใน advancedsetting.xml

<cachemembuffersize> เปลี่ยนชื่อเป็น <memorysize>

<readbufferfactor> เปลี่ยนชื่อเป็น <readfactor>

และพวกเขาถูกลบออกจาก <network> และเพิ่มไปยัง <cache>

advancesettings.xml ของฉันตอนนี้ดูเหมือนว่า:

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

นี่เป็นอุปกรณ์สำหรับ Vero4K โดยเฉพาะซึ่งมีหน่วยความจำมากกว่า Pi ดังนั้นคุณจะต้องปรับแต่งการตั้งค่าเหล่านี้เฉพาะสำหรับหน่วยความจำที่มีอยู่ของคุณ
ZacWolf

1

ฉันกำลังใช้ Pi 3 กับ OpenElec อยู่และฉันก็พบปัญหาบัฟเฟอร์มากมายเช่นกัน

ฉันกำลังสตรีมไปที่ Wi-Fi เพราะฉันคิดว่ามันอยู่ติดกับเราเตอร์และไม่ควรมีปัญหาใด ๆ หลังจากเสียบผ่านอีเทอร์เน็ตฉันต้องลบไฟล์ xml ขั้นสูงทั้งหมดพร้อมกันเมื่อปัญหาบัฟเฟอร์หยุดลง

ทั้งแล็ปท็อปและโทรศัพท์ของฉันเล่นได้ดีผ่าน Wi-Fi โดยไม่ต้องบัฟเฟอร์ดังนั้นบางสิ่งกับ Wi-Fi ในตัวของ Pi 3 บน OpenElec ทำให้เกิดปัญหา


ฉันดีใจที่คุณแก้ไขปัญหาของคุณและฉันมั่นใจว่าจะช่วยให้ผู้คนจำนวนมากที่ประสบปัญหานี้ ในกรณีของฉันฉันใช้อีเธอร์เน็ตตั้งแต่เริ่มต้น สำหรับ rpi1 ฉันไม่คิดว่านี่เป็นวิธีแก้ปัญหา ที่ถูกกล่าวว่ามันแปลกที่คุณมีปัญหาที่คล้ายกันใน rpi3 เนื่องจากมันมี RAM มากเป็นสองเท่าของ rpi1 ... ฉันอาจจะผิด แต่ดูเหมือนว่าการจัดการแคชบน kodi นั้นเป็นแค่เส็งเคร็ง
Gui-Don

-1

ฉันมีปัญหาเดียวกันและฉันใช้'แฮ็ค'ตอนนี้ทำงานได้อย่างราบรื่น

--- แก้ไข --- กำลังติดตาม @Simulant ข้อเสนอแนะ:

  • ติดตั้งเครื่องมือบำรุงรักษา xunity
  • เข้าสู่โปรแกรม (ไม่ใช่การตั้งค่า) xunity - tweaks
  • เลือก 'เพิ่ม 0 แคชขั้นสูง XML

1
กรุณาระบุคีย์ fakts จากแหล่งที่เชื่อมโยงของคุณ มิฉะนั้นถ้าแหล่งที่เชื่อมโยงจะออฟไลน์โพสต์ของคุณจะไร้ประโยชน์
Simulant

1
Xunity ไม่ใช่แค่ GUI สำหรับจุดประสงค์นั้นใช่หรือไม่ ฉันหมายถึงมันแตกต่างจาก tweaking ไฟล์advancedsettings.xmlอย่างไร ที่จริงแล้วฉันไม่ได้ตั้งค่าแคชมันเป็นวิธีที่ช้าในการโหลดสำหรับวิดีโอ SFTP หรือ webdav
Gui-Don

มันเป็นกุย แต่จากประสบการณ์ของฉันการแก้ไขโดยตรงอาจเป็นเรื่องยุ่งยาก (เนื่องจากสิทธิ์ ฯลฯ ) Addon ใช้งานได้ดีฉันใช้มัน :-)
เมียร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.