Vấn đề đệm với kodi (trên openelec)


9

Mỗi lần tôi cố phát trực tuyến các video nặng (chủ yếu là 1080p) qua mạng (webdav, sftp ...), nó sẽ thất bại hoặc tôi nhận được thông báo Bộ nhớ cache đã đầy đủ, v.v. Video bắt đầu phát, nhưng dừng lại ngẫu nhiên (để đệm lại , Tôi đoán).

Tôi biết đây là một vấn đề phổ biến và tôi biết các chỉnh sửa tôi có thể làm ( curl quá).

Môi trường:

Tôi sử dụng mô hình RPi B và tôi có kết nối internet 100M / b. Tôi đã thử nghiệm với Kodi 14.2 và Kodi 15 (openelec 5.0.7, openelec 5.95.2).

Các bài kiểm tra:

Cho đến nay, trong số nhiều lựa chọn bổ sung, đây là những gì tôi đã thử:

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

Vấn đề về video?

Không. Nếu sao chép trên thẻ sd, nó chạy trơn tru.

Vấn đề về RAM?

Tôi sẽ hiểu giới hạn phần cứng nếu RAM đầy, nhưng, trong khi xem video, free -mmang lại cho tôi điều này:

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

Có vẻ như có rất nhiều ...

Thực tế thú vị, như @goldilocks nhận thấy, bộ đệm thấp bất thường.

Sự cố mạng?

Nếu tôi đang tải xuống một tệp video bằng tay với SFTP, trong khi phát cùng một tệp này cùng một lúc, nó sẽ hoạt động. Tốc độ tải xuống: ~ 1,5MB / s. Vì vậy, không phải mạng, cũng không phải giải mã là một nút cổ chai.

Vấn đề khác?

Lỗi trong logfile (với gỡ lỗi video, gỡ lỗi ffmpeg), ngoại trừ gỡ lỗi và thông báo:

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

OK, vì vậy curl không được tối ưu hóa để truyền phát video. Nhưng còn SFTP thì sao? Nó nên là một miếng bánh.

Vấn đề cấu hình?

Thử nghiệm cuối cùng ở trên (bộ nhớ cache sdcard) rất thú vị. Nó bắt đầu phát video, sau khi tải xuống khoảng 150M (!) Trên sdcard ( .kodi/temp/filecache000.cache). Mặc dù nó chạy tốt, nhưng nó không phải là một giải pháp khả thi vì nó quá chậm để bắt đầu.

Có vẻ như cố gắng tải xuống cùng một lượng RAM, bỏ qua cấu hình trong advancedsettings.xml. Tôi đã kiểm tra, các tập tin được tải mà không có bất kỳ vấn đề. Đây là một ví dụ về một cái gì đó tôi đã thử nghiệm ( .kodi/userdata/advancedsettings.xml):

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

Lưu ý: một số tùy chọn này không còn đúng trong kodi 17, xem câu trả lời @ZacWolf để cập nhật

Vì vậy, ai đó có ý tưởng gì? Điều gì có thể sai ở đây? Dù là giải pháp nào, tôi cũng muốn biết tại sao sử dụng bình thường (bộ đệm RAM) không thành công trong trường hợp này.

EDIT: Thử nghiệm trên Archlinux

Tôi đã cài đặt kodi trên Archlinux, để xác định xem đó là sự cố kodi hay openelec. Điều này cũng tương tự: Các video HD rất khó hiểu, vì vậy nó dường như là một lỗi trong kodi. Nó giống như một vấn đề về giao thức (SFTP và WebDAV: http) vì thử nghiệm của tôi với SSHFS hoạt động rất tốt. Thật không may, cài đặt SSHFS trên openelec không phải là chuyện nhỏ.

EDIT 2: một cách giải quyết

Tôi viết nó ở đây, vì nó không trực tiếp giải quyết vấn đề đệm, nhưng tôi đã cài đặt kodi trên Archlinux hơn một năm nay và nó hoạt động rất tốt. Nó ít thân thiện hơn so với openelec, nhưng đối với những người quan tâm:

  • Cài đặt Archlinux cho ARM (rất dễ dàng, chỉ cần làm theo hướng dẫn - đó là cho rpi1, đối với phiên bản mới hơn, chỉ cần thay đổi nền tảng);
  • Cài đặt Kodi (làm theo hướng dẫn wiki Archlinux - về cơ bản, cài đặt kodi-rbpgói);
  • Cho phép dịch vụ kodi tự động chạy kodi khi khởi động : # systemctl enable kodi.service;
  • Cài đặt SSHFS : pacman -Suy sshfs;
  • Sử dụng rất hữu ích SSHFS automounting với /etc/fstabđể gắn phần xa xôi của bạn.

Làm xong. Đừng quên cập nhật frenquently ( pacman -Suy).


150 MB có thể ở mức cao, nhưng 5 MB có lẽ là quá thấp đối với nội dung bitrate ~ 1 MB / s nếu bạn muốn tránh bị sứt mẻ. Tôi sẽ bỏ hoang tưởng về thẻ SD. Bạn đã mua nó để sử dụng phải không? Nếu không, nó sẽ an toàn hơn trong tủ khô, mát ở đâu đó.
goldilocks

Cảm ơn sự quan tâm của bạn. Nhưng, lưu ý rằng câu hỏi của tôi không chỉ là về bộ đệm sdcard. Thứ hai, 150M, với tốc độ ~ 1MB / s ... Có, 150 giây. Cái này dài vô lý. Có một tùy chọn để thay đổi kích thước bộ đệm khi sử dụng sdcard? Đây có thể là một giải pháp. Sau đó, dù kích thước bộ đệm là bao nhiêu, nó sẽ tải toàn bộ video (đôi khi vài GB) trên sdcard, không chỉ bộ đệm. Tôi biết, sdcard là giá rẻ. Nó không phải là một việc lớn. Tôi biết. Nhưng tại sao tôi phải bận tâm về sdcard trong khi RAM nên hoạt động?
Gui-Don

Xin lỗi - tôi đã làm dịu nó xuống một chút sau khi liếc lại nó. Tôi chưa sử dụng Kodi nên tôi không thể giúp được gì nhiều, đây chỉ là một quan sát chung. IMO, đệm vào đĩa là một chiến lược tốt hơn so với đệm vào RAM vì nếu bạn lấp đầy RAM 100%, hệ thống không còn bộ nhớ cache đĩa sẽ ảnh hưởng đáng kể đến tất cả các khía cạnh hoạt động. Tuy nhiên, nếu bạn không lấp đầy RAM và không có gì khác, thì những gì bạn đang ghi vào (và đồng thời đọc từ) đĩa chắc chắn sẽ được đặt vào bộ đệm của đĩa - tức là RAM, nhưng được quản lý linh hoạt bởi kernel, đó là Điều gì làm cho đây là một chiến lược tốt hơn.
goldilocks

Trong trường hợp không rõ ràng: HĐH sử dụng nhiều RAM nhất có thể để lưu vào bộ đệm (tôi gọi ở trên là "bộ đệm đĩa", đây là một cách hiểu sai, nhưng nhấn mạnh thực tế là nó thường là thứ thường được đọc từ đĩa ). Trên pi, sẽ không có gì lạ khi đó là tất cả RAM không được cam kết, đây là con số "bộ đệm" từ free- vì vậy một điều thú vị trong bài viết của bạn là con số này tương đối nhỏ. Nếu bạn tăng bộ đệm vào đĩa của Kodi, con số đó có thể / nên tăng trong khi hoạt động để khớp với nó.
goldilocks

1
Tôi đã thấy;) OK, tôi hiểu rằng sử dụng đĩa tốt hơn là lấp đầy RAM. Đó là một giải pháp tốt để làm cho nó hoạt động, nếu tôi có thể giảm kích thước bộ đệm cần thiết để phát video. BTW, nó dường như là một tỷ lệ phần trăm, chứ không phải là một số tiền tuyệt đối. Tuy nhiên, tôi tò mò về những gì xảy ra ở đây. Thật kỳ lạ khi tôi có rất nhiều RAM không được sử dụng, ngay cả khi video đang được đệm.
Gui-Don

Câu trả lời:


2

EDIT (12/2017)

Kodi v17 đã đổi tên định vị lại các thẻ trong tệp nâng cao

<cachemembuffersize> được đổi tên thành <memorysize>

<readbufferfactor> được đổi tên thành <readfactor>

VÀ chúng đã bị xóa khỏi <mạng> và được thêm vào <cache>

Các tiến bộ của tôi bây giờ trông giống như:

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

Điều này đặc biệt dành cho thiết bị Vero4K, có nhiều bộ nhớ hơn Pi, vì vậy bạn sẽ cần phải điều chỉnh các cài đặt này dành riêng cho bộ nhớ khả dụng của mình.
ZacWolf

1

Tôi đang chạy Pi 3 với OpenElec trên đó và tôi cũng gặp nhiều vấn đề về bộ đệm.

Tôi đã phát trực tuyến qua Wi-Fi vì tôi thấy nó ở ngay bên cạnh bộ định tuyến và không có vấn đề gì. Sau khi cắm qua Ethernet, tôi đã loại bỏ tệp xml nâng cao cùng nhau khi các vấn đề về bộ đệm dừng lại.

Cả máy tính xách tay và điện thoại của tôi đều chơi tốt qua Wi-Fi mà không cần đệm, do đó, một cái gì đó với Wi-Fi tích hợp của Pi 3 trên OpenElec đang gây ra sự cố.


Tôi rất vui vì bạn đã khắc phục vấn đề của mình và tôi chắc chắn rằng nó sẽ giúp được nhiều người gặp phải vấn đề này. Trong trường hợp của tôi, tôi đã sử dụng ethernet ngay từ đầu. Đối với rpi1 tôi không nghĩ đây là giải pháp. Điều đó có nghĩa là, thật lạ khi bạn gặp vấn đề tương tự trên rpi3, vì nó có RAM gấp đôi so với rpi1, tôi có thể sai nhưng có vẻ như việc xử lý bộ đệm trên kodi chỉ là tào lao.
Gui-Don

-1

Tôi đã có cùng một vấn đề và tôi đã sử dụng 'hack' này , mọi thứ bây giờ chạy trơn tru.

--- chỉnh sửa --- Theo đề xuất @Simulant:

  • Cài đặt công cụ bảo trì xunity.
  • Đã vào chương trình (không phải cài đặt), xunity - chỉnh.
  • Chọn 'Thêm 0 Cache nâng cao XML

1
Vui lòng xếp các khóa chính từ nguồn được liên kết của bạn. Nếu không, nếu nguồn được liên kết sẽ ngoại tuyến, bài viết của bạn sẽ vô dụng.
Simulant

1
Không phải Xunity chỉ là một GUI cho mục đích đó sao? Ý tôi là, nó khác với việc tự điều chỉnh tệp tệp Advancedsinstall.xml như thế nào? Trên thực tế, tôi đã không cài đặt bộ đệm, đó là cách tải chậm cho các video SFTP hoặc webdav.
Gui-Don

Đó là một gui. Nhưng từ kinh nghiệm của tôi, chỉnh sửa trực tiếp có thể khó khăn (do quyền, v.v.). Addon hoạt động độc đáo, tôi đã sử dụng nó :-)
Meir
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.