Raspberry Pi 3Bで動画を再生すると、やはりLibreELECは、メモリ不足によってか途中で動画が落ちたり、再生箇所がいきなり飛んだりといった現象があります。
これまで、RaspbianにKodiをインストールした場合や、他のメディアサーバーOSとして、OSMCやLibreELECの前身であるOpenELECなどで発生したことがあり、そうならない場合なども検証した結果、やはりメモリスプリットが少ないという結論になりました。
また、動画形式が.mp4の場合はあまり起こりません。.avi形式や.mkvなどの場合は頻繁に起こりました。
※あくまで当環境による体験です。
と、いうことで、メモリスプリットを調整したいと思います。
メモリスプリット(MemorySplit)は、一度に制御するメモリ量のことで、デフォルト(初期)は128MBです。
各Raspberry Pi モデルによってメモリ量が違うため、その機種によって割り振る設定になっています。設定箇所はconfig.txtに記載されています。
なお、Raspberry Pi 4では設定の必要はありません。
書き換えの方法は2つ
SSH経由での書き換えと、microSDカードを別のPCで編集する方法があります。本体を取り外すのが大変ではなければmicroSDから直接編集の方が簡単です。
microSDカードの編集の場合
SDカードを読み込んでテキストエディタで編集するだけです。config.txtの場所はルート直下の/boot/config.txt
です。
直下ですのでSDカードを開いた所にあります。
SSHの場合
他のコンピュータからターミナルにて接続します。
ssh root@XXX.XXX.XX.XX
sshのユーザーはroot、パスワードはlibereelecです。@以下はIPアドレスかサーバー名です。
LibreELECのシステムは一般的にデフォルトでは読み取り専用のシステムなので、まず書き込み権を取得する必要があります。
sudo mount -o remount,rw /flash
マウントします。
sudo nano /flash/config.txt
nanoで開きます。
メモリスプリットの値を変更する
変更箇所はタイトル?のすぐ下のMemory (System/GPU configuration )の箇所です。
変更前:
################################################################################
# Memory (System/GPU configuration)
################################################################################
# Default GPU memory split (do not change if you do not know what you are doing)
gpu_mem=128
# Configure GPU memory based on SDRAM size - overrides abovesetting
gpu_mem_256=112
gpu_mem_512=160
gpu_mem_1024=256
config.txt内にMemoryという記述がある4行で設定されています。
SDRAMの容量によってDefaultのgpu_mem=を上書きするということになっています。
これならばRaspberry Pi 3を使用した場合、1GBの容量ですから、128が256に置き換えられるということになり、充分なメモリスプリットだと思いますが、それでも起きてしまうのは何故だか分かりません。
LibreELECのシステム情報をGUIで見てみると、デフォルトの設定であるgpu_mem=128を書き換えても総メモリ容量が減っていませんしたので、Raspberry Pi 3なので、gpu_mem_1024=256を書き換えました。
今回、320MBへ設定してみます!
gpu_mem_1024=320
変更したconfig.txt:
################################################################################
# Memory (System/GPU configuration )
################################################################################
# Default GPU memory split (do not change if you do not know what you are doing)
gpu_mem=128
# Configure GPU memory based on SDRAM size - overrides above setting
gpu_mem_256=112
gpu_mem_512=160
gpu_mem_1024=320
※デフォルトのgpu_mem=128の値を大きく書き換えるとOSが立ち上がらない(カーネルパニック)になることがあります。
適切なメモリスプリットは?
公式のドキュメントによると、
gpu_mem_1024コマンドは、1024MB Raspberry Pi のGPUメモリをメガバイト単位で設定します。(メモリサイズが1024MBでない場合は無視されます) これはgpu_memよりも優先されます。 最大値は944で、デフォルトは設定されていません。
今回320MBへ変更したのは、256MBで動作していたとしても動画が落ちることが多々あるためです。
適切と思われるのは、動作させるデータによります。ほぼ256MBで問題ないと思いますが動画の再生は高画質であればあるほどマシンスペックや環境に左右されますので、今回のように希に起こるのであればデータの方を変えた方がいいかも知れませんね。
一先ずこれで様子を見たいと思います。