mattintosh note

どこかのエンジニアモドキの備忘録

mpvで動画を再生すると出だしでコマ落ちが発生する問題

先日、Raspberry Pi 3 にファンを付けて温度上昇によるクロックダウンを予防することができたのだけど、動画を再生しようとすると開始からしばらくの間、遅延が発生する。

バッファサイズの調整してみたりしたが改善せず。

コンソールを見ているとキャッシュが溜まりきると改善することからキャッシュの方に原因がありそうだ。

ちなみに mpv にはキャッシュに関するオプションだけでもこれだけある。

$ mpv --list-options | grep cache
 --cache                          Choices: no auto yes (or an integer) (32 to 2147483647) (default: auto)
 --cache-backbuffer               Integer (0 to 2147483647) (default: 75000)
 --cache-default                  Choices: no (or an integer) (32 to 2147483647) (default: 75000)
 --cache-file                     String (default: ) [file]
 --cache-file-size                Integer (0 to 2147483647) (default: 1048576)
 --cache-initial                  Integer (0 to 2147483647) (default: 0)
 --cache-pause                    Flag (default: yes)
 --cache-secs                     Double (0 to any) (default: 10.000000)
 --cache-seek-min                 Integer (0 to 2147483647) (default: 500)
 --icc-cache-dir                  String (default: )

う〜ん、まさかなぁと思って --cache=no にしたら遅延しなくなった…orz

Raspberry Pi の貧弱なストレージではキャッシュが逆に悪影響を及ぼすようだ。--cache-file=TMP とすることでキャッシュの場所を tmpfs にもできるけど Raspberry Pi のメモリはそれほど高速でもないのでこれもダメだった。

Samba サーバにしている Raspberry Pi 2 からデータを引っ張っているのでキャッシュは無くても別にいいか…。

~/.config/mpv/mpv.conf でキャッシュを無効にするようにしておく。youtube-dl プラグインによる YouTube の再生のときに遅延が発生するかもしれないが mpv の引数に --cache=auto を与えればこの設定は上書きできるのでそれほど手間にはならない。

cache=no