kodiのバッファリングの問題(openelec)


9

ネットワーク(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 /秒。したがって、ネットワークも復号もボトルネックになります。

その他の問題?

ログファイルのエラー(ビデオデバッグ、ffmpegデバッグを使用)、デバッグと通知を除く:

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

はい、カールはビデオストリーミング用に最適化されていません。しかし、SFTPはどうでしょうか?それは簡単なことです。

構成の問題?

上記の最後のテスト(SDカードキャッシュ)は興味深いものです。SDカード()に約150M(!)をダウンロードした後、ビデオの再生を開始し.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バッファー)が失敗する理由も知りたいです。

編集:Archlinuxでテストする

ArchLinuxにkodiをインストールして、それがkodiかopenelecの問題かを判断しました。それは同じです:HDビデオは途切れ途切れなので、kodiのバグのようです。SSHFSを使用したテストがうまく機能するため、プロトコルの問題(SFTPおよびWebDAV:http)に似ています。残念ながら、openelecにSSHFSをインストールするのは簡単ではありません。

編集2:回避策

バッファリングの問題に直接対処していないため、ここに書きましたが、karchをArchlinuxに1年以上インストールしており、完全に正常に動作しています。それはopenelecよりnoobフレンドリーではありませんが、興味がある人のために:

  • ARM向けのArchlinuxをインストールします(非常に簡単です。ガイドに従ってください。rpi1を対象としています。最近のものは、プラットフォームを変更するだけです)。
  • Kodiをインストールします(Archlinux wikiガイドに従ってください -基本的に、kodi-rbpパッケージをインストールします);
  • 起動時にkodiサービスが自動的にkodiを実行できるようにし# systemctl enable kodi.serviceます。
  • SSHFSをインストールしますpacman -Suy sshfs
  • で非常に便利なSSHFS自動マウントを使用して/etc/fstab、遠くの共有をマウントします。

できました。頻繁に更新することを忘れないでください(pacman -Suy)。


150 MBはハイサイドにある可能性がありますが、途切れを避けたい場合は、5 MBはおそらく1 MB / s以下のビットレートコンテンツには低すぎます。SDカードについての偏執狂を捨てます。使用するために購入しましたか?そうでなければ、それはどこか涼しく乾燥した食器棚でさらに安全になります。
ゴルディロックス

ご心配をありがとう。ただし、私の質問はsdcardバッファだけに関するものではないことに注意してください。次に、150M、1MB /秒以下...はい、150秒。これはばかげて長いです。sdcardを使用するときにバッファサイズを変更するオプションはありますか?これが解決策になる可能性があります。次に、キャッシュサイズに関係なく、バッファだけでなくビデオ全体(場合によっては数GB)をSDカードにロードします。私が知っている、SDカードは安いです。たいしたことじゃない。知っている。しかし、RAMが機能しているはずなのに、なぜsdcardに悩む必要があるのでしょうか。
Gui-Don

申し訳ありません-私はそれをちらりと見た後、それを少し引き下げました。私はコディを使ったことがないので、ここではあまり役に立ちません。それは単なる一般的な観察でした。IMO、ディスクへのバッファリングは、RAMへのバッファリングよりも優れた戦略です。RAMを100%満たすと、システムにディスクキャッシュが残っていないため、操作のすべての側面に大きな影響を与えるからです。ただし、RAMをいっぱいにしないで他に何もしない場合、ディスクに書き込んでいる(同時に読み取りを行っている)ものは、確実にディスクキャッシュ(RAM)に入れられますが、カーネルによって動的に管理されます。これがより良い戦略になる理由
ゴルディロックス

それが明確でない場合:OSは、コミット用にできるだけ多くのRAMをキャッシュに使用します(これを上記の「ディスクキャッシュ」と呼びましたが、これは少し誤解がありますが、通常はほとんどがディスクから頻繁に読み取られるものであることを強調しています。 )。piでは、すべてがコミットされていないRAMであることは珍しくありません。これは「バッファ」の数値freeです。投稿で興味深いのは、この数値が比較的小さいことです。Kodiのディスクへのキャッシュを増やすと、動作中にほぼ一致するようにその数が増える可能性があります。
ゴルディロックス

1
私は見ました;)OK、RAMをいっぱいにするよりもディスクを使用する方が良いことを理解しています。ビデオを再生するために必要なバッファサイズを減らすことができる場合、それを機能させるための良いソリューションです。ところで、それは絶対的な量というよりはパーセンテージのようです。それでも、私はここで何が起こるか知りたいです。ビデオがバッファリングされているときでも、RAMをあまり使用しないのは奇妙です。
Gui-Don

回答:


2

編集(2017年12月)

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>

これは、特にPiよりメモリが多いVero4Kデバイス用であるため、使用可能なメモリに固有のこれらの設定を調整する必要があります。
ZacWolf 2017

1

OpenElecでPi 3を実行していますが、バッファリングの問題もたくさん発生しました。

Wi-Fi経由でストリーミングしていました。ルーターのすぐ隣にあり、問題はないはずです。イーサネット経由で接続した後、バッファリングの問題が解決したため、高度なXMLファイルをすべて削除する必要がありました。

私のラップトップと電話はどちらもバッファリングなしでWi-Fi経由で正常に動作するため、OpenElecにPi 3の組み込みWi-Fiが原因で問題が発生しています。


問題を修正してよかったです。この問題に遭遇した多くの人に役立つと思います。私の場合でも、最初からイーサネットを使用していました。rpi1の場合、これが解決策だとは思いません。そうは言っても、rpi1の2倍のRAMを搭載しているため、rpi3でも同様の問題が発生したのは奇妙です。
Gui-Don

-1

私は同じ問題を抱えていて、この「ハック」を使用しましたが、今では問題なくスムーズに実行されています。

---編集--- @Simulantの提案に従います:

  • xunityメンテナンスツールをインストールします。
  • プログラム(設定ではなく)に入って、xunity-微調整。
  • 「0キャッシュの拡張XMLを追加」を選択します

1
リンクされたソースからの主要なよくある質問に記入してください。そうでなければ、リンクされたソースがオフラインになると、あなたの投稿は役に立たなくなります。
Simulant 2015

1
Xunityはそのための単なるGUIではありませんか?つまり、advancedsettings.xmlファイルを自分で調整するのとどう違うのですか?実際、私はno cache設定をしました、それはSFTPまたはwebdavビデオのロードを遅くする方法です。
2015

それはguiです。しかし、私の経験から、直接の編集は注意が必要です(許可などのため)。アドオンはうまく動作し、私はそれを使用しました:-)
Meir
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.