Nixでmpvを入れてCDを再生する
に投稿
nixpkgsからmpvをインストールして、CDを再生しようとすると以下のようなエラーが出る。
$ mpv cdda://
No protocol handler found to open URL cdda://
The protocol is either unsupported, or was disabled at compile-time.
Exiting... (Errors when loading file)
原因
cddaプロトコルが使えるような形でビルドされていないことが原因
具体的にはmesonを使ってmpvをビルドするときに、cddaオプションを有効にしていないからです。
対処方法
こちらのPRでcddaSupportというフラグが追加され、
これをtrueにしてビルドすることで、mpvでCDを再生できるようになります。
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
mpv-unwrapped.override {
cddaSupport = true;
}
];
}
なんでデフォルトでfalseにしてるのかよく分からない…(Nixのポリシーとかが関わってるのかな?)
余談
CDの回転速度を制御する
--cdda-speed=nというオプションがあり、
これに1〜100までの数値を渡すことでCDの回転速度を制御できるようになります。
私が使用しているCDドライブはそんなにいいものではなく、
回転速度を最大にするとちょっと耳障りになるため、
--cdda-speed=10をつけて10倍速程度にしてあげると静かでちょうどいい感じになる。
デフォルトでcddaSupportをtrueにしないの?
mpv: enable cddaSupport on most platformsというPRにて、 Darwin以外でデフォルトで有効化しようぜ!みたいなPRが立てられているが放置されている。
(👍️して持ち上げよう)