• symphonic-mpd特殊ネタ集

    以下、いくつかのネタはみみず工房掲示板での緊急避難スレッドから転載します。

    ipv6環境でのNASのpath指定方法について(QNAP製品を使用した場合)

    当方所有のQNAP製品では「よくある質問と答え」にあるmike様のpath指定方法では接続出来ませんでしたので、そのフォローです。

    //NAS ipv6 link:local アドレス%eth0/音楽ディレクトリー名
    

    mike様記載のpathでは出力ポート指定を示す記号が「@」 でしたが、私の動作環境では「%」でした。
    ちなみにQNAPのNASでlink:localのIPv6アドレスを調べる方法としては、Webの管理画面ではIPoEの場合は無理で、telnet,ssdでリモートシェルを開いてifconfigコマンドで結果を見る必要があります。リモートシェルのIDはadmin、パスワードはWeb管理画面のものと同じです。
    (sshの場合は"slogin -l admin NASのIPv4アドレス"でリモートシェルが開きますので、その後ifconfigコマンドを入れて下さい)

    [~] # ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:08:9B:C1:0C:BE  
              inet addr:192.168.11.151  Bcast:192.168.11.255  Mask:255.255.255.0
              inet6 addr: 2400:****:****:*****:****:****:****:****/64 Scope:Global
              inet6 addr: fe80::****:****:****:****/64 Scope:Link ←使用はコチラ
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:14611729 errors:0 dropped:0 overruns:0 frame:0
              TX packets:15128406 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:532 
              RX bytes:1468694530 (1.3 GiB)  TX bytes:1569323268 (1.4 GiB)
              Interrupt:11 
    

    なお、ブラウザのSETTINGSで表示されるダイアログのNAS Settingsを修正後に「Save」ボタンが押されると、このダイアログのフォームから"edit_fstab.sh"というシェルスクリプトがフォーム内の各設定を引数として起動するのですが、その際のパラメータのうちパスワードに全角スペースが末尾に挿入されているようです。
    (実際にはedit_fstab.shで引数のクリーニングを行っているため実害はありませんが、jounalctlのログではその痕跡があるためちょっと気になりました)。
    以下にログを一部改変して貼っておきます。

    smpd ympd[****]: command : systemd-run /home/pi/misc/edit_fstab.sh  "//192.168.11.151/qmultimedia/MUSIC/" "sunatomo" "pass  "
    
    

    ↑passの後ろに全角スペースが存在

  • サーバフォルダの一覧表示からRAM・USBが消える事象対策

    先のNAS設定変更ダイアログなど本体再起動を伴わないでMPDのデーモンのみ再起動した場合、サーバフォルダの一覧表示には「NAS」・「RADIO」は出現しますが「RAM」・「USB」が消えてしまいます。
    これは/home/pi/configs/mpd_event.shの末尾に以下の2行コマンドを追加することで対応出来ます。

    mpc update RAM
    mpc update USB
    

    NAS設定時などは一時的にMPDを停止するため、その後の再起動後にRAM・USBディレクトリを読み込ませないとサーバフォルダとして認識しないということですね。(rc.localを見て気づきました。)

    逆に自分は絶対にUSBメモリを使わない(USBポートの給電がデフォルト止められているのだから)という方は、rc.localファイルの「mpc update USB」という行を先頭文字に#をつけてコメントアウト化してしまうのもアリですね(これで「USB」は表示されなくなります)。

  • MPDがハングアップする楽曲データ

    今回の投稿自体はジョーク(内容は真面目ですが)です。真面目にやってみて「壊れたんだけど」というクレームは受け付けません。

    v0.9.0βの動作確認で適当な楽曲データを再生していたのですが、ある楽曲データを再生しようとした場合何故か再生できないしその後の動作が変なことに気づきました。

    • キューには入るのですが、その後に再生ボタンを押してもループ状態になる。この現象はympdでもCantataでも発生します。
    • この現象時はmpd.logならびにjournalctlにもエラーログは残らず、現象発生後はMPDがハングするらしく、ympdやCantataで他の楽曲データの選択出来なくなります。
    • sshは正常動作しているのでリモートシェルログイン後に「sudo reboot」で再起動すると正常に戻ります。
    • 上記現象はv0.8系でも発生します。

    推察ですが、MPDの現バージョンが抱える何らかの問題かもしれません(当該データはmp3のため、MPDが楽曲を読み込んだ後はMPDプラグインのmadがデコードしますがそこで恐らくおかしくなっているのかもしれない)。
    symphonic-mpdのv0.8系と現状のv.0.9βは同一バージョンのMPDを使っているため、双方とも同じ挙動をするようです。

    最後に、どんなデータかいうと、「The Royal Teens」の「Short Shorts」だという...(ネットの海の中での拾い物)。具体的曲の説明をすると、「タモリ倶楽部」のオープニングのアレです。
    お気に入りの楽曲ならちょっとなぁと悩みますが、よりにもよってコレです(この曲好きな人、ゴメンナサイ)。
    https://drive.google.com/open?id=1wKdgymqpeORUZtSTzRLolZEhdKtyQ_Yr
    ↑
    上のリンクを辿ってダウンロードし、あなたのシステムで不具合が起こっても私は責任を取れませんのでご了承下さい。

  • 🐧 sunatomoさん

    v0.5系でpipe経由で再生する方式に取り組んだ際、ファイル形式によって再生できるものと再生できないものがあることに気がつきました。
    一部のデコーダはpipeアウトプットプラグインでの出力を想定しておらず、挙動に違いが生じているようです。

    近い将来、mpdのバージョンをあげようと思っています。
    これによって、今まで再生に問題があったものも解決する可能性があります。(もちろん、これまで問題なかったファイルが、再生できなくなってしまう可能性もあります。)

    pipeアウトプットプラグインとデコーダの相性問題はとても重いテーマで、全ての問題をクリアすることはできないかもしれません。
    どうしても割り切りが必要となったら、主要なロスレスコーデック(wav, flac, aiff, alacなど)を優先する方針で考えています。

  • パパリウス様
     私がsymphonic-mpdを使い始めて2ヶ月程度なもので、過去の開発でこのような経緯があったとは知りませんでした。
     高音質を標榜しこれを志向するのでしたら、当然ロスレスが優先されるべきだとは私も思います。という訳で、ロッシーなデータは優先度は低くても構いません。
     ちなみにコレを書くために裏でmpd.confのdecoderを書き換えてMP3のデコーダをmadからffmpegに変更したのですが、v0.9.0βの場合はMP3のデータは全滅っぽいですね(v0.8系は試していないので挙動は不明です。)
    ↑
    ちなみに今試したところでは、rt-alsaサービスを巻き込んで落ちるため、その後mpd.serviceを再起動しても復活はしません(再起動すれば復活しますが)。

  • 🐕 sunatomoさん

    mp3などの圧縮音源がロスレスに比べて必ずしも劣っているとは限りませんので、mp3など主要なファイル形式については極力サポートできるように進めたいと考えています。

    経験上、高ビットレートの圧縮音源(例えば320kbpsのmp3)とロスレスの音質差は、再生システムの能力差に比べれば微々たるもので、再生音の質を決定付けるものではありません。

    特に、NAS側のディスクI/OやネットワークI/Oがボトルネックとなっている環境では、圧縮音源の方が再生が安定して好ましいという場合もあるものと思います。

  • MPD以外のサービスを停止する

    さて、今回はヤバ目のネタを上げていきます。
    **警告**
    今回のネタは純正の各サービスのイベント起動用シェルスクリプトの書換を行うというものです。
    書換に失敗した場合、最悪不要なサービスの多重起動を起こし正常な動作を阻害しますのでくれぐれも注意して実行+自己責任で行って下さい。
    少なくともUNIX系OSのシェル操作に慣れていない人はやめたほうが良いと思います。

    • はじめに
       symphonic-mpdでは大きく分けて、MPD・AirPlay・spotifyでの再生の3つの機能を使用することが出来ます。
       各サービスは排他的(1つのサービスを使用時に他のサービスは停止状態となる)動作となりますが、このディストリでパパリウスさまの基本理念と同じく「必要としないサービス、TCP/UDPポートは閉じてしまい音質を向上させる」の考えに基づいて予めAirPlay・spotifyのサービスを動かなくしてしまうというのが今回の方法です。
      (と、大げさな理由を書いておりますが、本当のところAirPlayはApple系のサービスでこれだけ有効なのは個人的に嫌だと言うのが本音。アップルファンの人ゴメンナサイ)

    • 無効化の概要
      大きく分けて2つのことをする必要があります。
       ◯起動時に使用したくないサービスを初めから動作させない
       ◯他のサービスの終了などのトリガーで使用したくないサービスが立ち上がるのを防止する。

      というわけで、以下でやり方を紹介します。

    • 新規作成するファイル
      /home/pi/configs/ 下に以下のファイルを作成して下さい2019-10-13 23:01 ファイルアップロード対応。

    shairport_disable.sh

    #!/bin/sh
    
    FLGDIR=/home/pi/configs
    if [ -e $FLGDIR/shairport.flg ]; then
      shair=0
    else
      shair=1
    fi
    
    case "$1" in
        start)
    	if [ $shair -eq 0 ]; then
    		echo "shairport-sync is already DISABLED"
    	else
    		if [ ! "`pidof shairport-sync`" = "" ]; then
    			sudo systemctl stop shairport-sync.service
    		fi
    		sudo systemctl disable shairport-sync.service
    		sudo systemctl mask shairport-sync.service
    		touch $FLGDIR/shairport.flg
    		echo "done! shairport-sync service is now disabled"
    		#echo "If you want to take this config effect, please reboot!!"
    	fi
    	;;
    
        stop)
    	if [ $shair -eq 0 ]; then
    		echo "enabling shairport_sync..."
    		rm $FLGDIR/shairport.flg
    		sudo systemctl unmask shairport-sync.service
     		sudo systemctl enable shairport-sync.service
    		sudo systemctl start shairport-sync.service
    		echo "done! shairport-sync service is now enabled"
    		#echo "If you want to take this config effect, please reboot!!"
    	else
    		echo "shairport_sync is already ENABLED"
    	fi
    	;;
    
        status)
    	if [ $shair -eq 0 ]; then
    		echo "shairport-sync has been DISABLED by default"
    	else
    		echo "shairport-sync has been ENABLED by default"
    	fi
    	;;
    esac
    
    exit 0
    

    ファイル作成後 chmod +x shairport_disable.sh で実行権限を追加して下さい。

    spotify_disable.sh

    #!/bin/sh
    
    FLGDIR=/home/pi/configs
    if [ -e $FLGDIR/spotifyd.flg ]; then
      spot=0
    else
      spot=1
    fi
    
    case "$1" in
        start)
    	if [ $spot -eq 0 ]; then
    		echo "spotifyd already DISABLED!!"
    	else
    		echo "disabling spotifyd..."
    		if [ ! "`pidof spotifyd`" = "" ]; then
    			sudo systemctl stop spotifyd.service
    		fi
    		sudo systemctl disable spotifyd.service
    		sudo systemctl mask spotifyd.service
    		touch $FLGDIR/spotifyd.flg
    		echo "done! spotifyd service is now Disabled"
    		#echo "If you want to take this config effect, please reboot!!"
    	fi
    	;;
    
        stop)
    	if [ $spot -eq 0 ]; then
    		echo "enabing spotifyd..."
    		rm $FLGDIR/spotifyd.flg
     		sudo systemctl unmask spotifyd.service
    		sudo systemctl enable spotifyd.service
    		sudo systemctl start spotifyd.service
    		echo "done! spotifyd serice is now Enabled"
    		#echo "If you want to take this config effect, please reboot!!"
    	else
    		echo "spotifyd is already ENABLED!!"
    	fi
    	;;
    
        status)
    	if [ $spot -eq 0 ]; then
    		echo "spotifyd has been DISABLED by default"
    	else
    		echo "spotifyd has been  ENABLED by default"
    	fi
    	;;
    esac
    
    exit 0
    

    これもファイル作成後 chmod +x spotify_disable.sh で実行権限を追加して下さい。

    後述しますが、これら2つのファイルはshairport-syncとspotifydを無効化するためのフラグファイルを作成+各デーモンのsystemdスクリプトを/etcから消すためのものです。

    • 書き換えするファイル(/home/pi/configs 配下)

    shairport_event.sh

    #!/bin/bash
    
    FLGDIR=/home/pi/configs
    if [ -e $FLGDIR/spotifyd.flg ]; then
    	spot=0
    else
    	spot=1
    fi
    
    case "$1" in
    
      begin)
    	echo "$DEFAULT_SAMPLE_FORMAT 44100 2 AIRPLAY" > /run/pcminfo
    	sudo systemctl restart pipe
    
    	# stop mpd
    	sudo systemctl stop ympd
    	sudo systemctl stop ympd.socket
    	sudo systemctl stop mpd
    	sudo umount /var/lib/mpd/music/NAS
    
    	# stop spotify-connect
        if [ $spot -eq 1 ]; then
        	sudo systemctl stop spotifyd
        	sync
            sleep 0.4
        fi
    	exit
    	;;
    
      end)
    	# wakeup mpd
    	sudo systemctl start ympd.socket
    	sudo mount -a
    	sudo systemctl start mpd
    
    	# wakeup spotify-connect
    	if [ $spot -eq 1 ]; then
        	sudo systemctl start spotifyd
    	    sync
        fi
    	exit
    	;;
    esac
    
    exit 0
    

    spotify_event.sh

    #!/bin/bash
    FLGDIR=/home/pi/configs
    if [ -e $FLGDIR/shairport.flg ]; then
      shair=0
    else
      shair=1
    fi
    
    pcminfo=/run/pcminfo
    
    case "$PLAYER_EVENT" in
    
      start)
    	# stop playback
    	/usr/bin/mpc stop > /dev/null
    
    	# stop mpd
    	sudo systemctl stop ympd
    	sudo systemctl stop ympd.socket
    	sudo systemctl stop mpd
    	sudo umount /var/lib/mpd/music/NAS
    
    	# stop shairport-sync
    	if [ $shair -eq 1 ]; then
    	    sudo systemctl stop shairport-sync
    	    sudo sync
    	    sleep 0.4
        fi
    	exit
    	;;
    
      stop)
    	if [ ! "`cat /run/pcminfo |cut -d ' ' -f4`" = "DEFAULT" ];then
    		exit
    	fi
    	# wakeup mpd
    	sudo systemctl start ympd.socket
    	sudo mount -a
    	sudo systemctl start mpd
    
    	# start shairport-sync
    	if [ $shair -eq 1 ]; then
        	sudo systemctl start shairport-sync
        	sudo sync
        fi
    	exit
    	;;
    esac
    
    exit 0
    

    これらのファイルはshairport-sync、spotifydで何らかのイベントが発生した場合(再生開始時や終了時など)に他のサービスを停止させたり復活させる記述が書かれています。

    • 書き換えするファイル(/home/pi/misc 配下)
      ※2019-11-21 修正の上、ファイル差替
      ympd_event.sh
    #!/bin/bash
    
    FLGDIR=/home/pi/configs
    if [ -e $FLGDIR/shairport.flg ]; then
      shair=0
    else
      shair=1
    fi
    if [ -e $FLGDIR/spotifyd.flg ]; then
      spot=0
    else
      spot=1
    fi
    
    case "$1" in
      isolate)
        if [ $spot -eq 1 ]; then
            systemd-run --nice=19 systemctl stop spotifyd
        fi
        if [ $shair -eq 1 ]; then
            systemd-run --nice=19 systemctl stop shairport-sync
        fi
        sleep 0.4
        ;;
    
      stop-avahi)
        systemd-run --nice=19 systemctl stop avahi-daemon
        systemd-run --nice=19 systemctl stop avahi-daemon.socket
        sleep 0.4
        ;;
    
      pause)
        if [ "`pidof avahi-daemon`" = "" ]; then
            systemctl start avahi-daemon.socket
            systemctl start avahi-daemon
        fi
        if [ "`pidof shairport-sync`" = "" ] && [ $shair -eq 1 ]; then
            systemctl start shairport-sync
        fi
        if [ "`pidof spotifyd`" = "" ] && [ $spot -eq 1 ]; then
            systemd-run /home/pi/misc/ympd_event.sh spotifyd-start
        fi
        ;;
    
      spotifyd-start)
        sleep 2
        if [ $spot -eq 1 ]; then
            systemctl start spotifyd
        fi
        ;;
    
      stop)
        if [ $(mpc|grep "\[playing\]"|wc -l) = 1 -o  $(mpc|grep "\[paused\]"|wc -l) = 1 ]; then
            exit
        fi
        if [ "`pidof avahi-daemon`" = "" ]; then
            systemctl start avahi-daemon.socket
            systemctl start avahi-daemon
        fi
        if [ "`pidof shairport-sync`" = "" ] && [ $shair -eq 1 ]; then
            systemctl start shairport-sync
        fi
        if [ "`pidof spotifyd`" = "" ] && [ $spot -eq 1]; then
            systemd-run /home/pi/misc/ympd_event.sh spotifyd-start
        fi
        ;;
    
      browse)
        ls /var/lib/mpd/music/RAM/* >/dev/null 2>&1
        if [ $? -eq 0 ]; then
            mpc update RAM
        fi
        ;;
    
      dashboard)
        /home/pi/util-plot.sh
        /home/pi/util-dashboard.sh
        ;;
    
    esac
    
    exit
    

    このファイルはympdのイベント発生時(MPDにて音源の再生・停止時など)に他のサービスを停止・起動させる記述が書かれています。
    なお、ファイルを書替する場合は、必ず念の為元のファイルをリネームして保存しておいて下さい。

    • 使い方
      音声を鳴らしていない状況でラズパイにsshでリモートシェルに接続し、/home/pi/configs 配下でshairport_disable.sh・spotify_disable.shを以下の通り実行します。
      AirPlayを無効化する場合(shairport-syncを無効化)
    sudo ./shairport_disable.sh start
    

    spotifyを使わない場合(spotifydを無効化)

    sudo ./spotify_disable.sh start
    

    無効化時は以下の動作を行います(これによりイベントでそれぞれのサービスを起動させなくする)。
     既に起動中の場合はshairport-sync/spotifydのデーモンを停止する
     shairport.flg/spotify.flgという名前の空ファイルを生成(この空ファイルがある場合、shairport-sync・spotifydは起動しないよう各イベントのシェルスクリプトを改変済み)
     /etc/systemd/system 配下の shairport-sync.service spotifyd.service を無効化
    それぞれ必要なサービスの無効化を行った後は、本体の再起動をして下さい。

    次に上記の方法で無効化したが元に戻したい場合
    AirPlayを復活させる場合(shairport-syncを有効化)

    sudo ./shairport_disable.sh stop
    

    spotifyを復活させる場合(spotifydを有効化)

    sudo ./spotify_disable.sh stop
    

    無効化の解説の逆のことを行っています。無効化時と同じくシェルスクリプト使用後は本体の再起動を行って下さい音声再生を行っていない状況ならば無効化設定・再有効化ともに可能です。ただし精神衛生上不安を感じるならば再起動をお勧めします。

    • 効果の程は?
      AirPortを有効化した場合、5000番ポートがListen(開きっぱなし)になります。無効化すれば当然このポートは閉じる状態となります。
      私の場合MPDでPCクライアントを使用するため6600番ポートが常時空いているため、効果は相殺されるかもしれません。
  • sunatomoさん、興味深いネタありがとうございます。
    私はLinux初心者ですが、取り組んでみようと思います。
    失敗しても、最初からインストールすれば良いだけですから。

    普段、mpdしか使わないので、
    sudo systemctl stop shairport-sync
    でサービスを止めていましたが、面倒ですよね。

  • @hiroget9 さま
    警告ではあのように書きましたが、nanoが普通に使えて、chown・chmodが理解できればそんなには難しくありません。
    なにより「やってみよう」というその気持ちがとても大事だと思います。
    わからないことありましたら、お気軽にお声がけ下さい。

    また、よくよく考えると無効化フラグ設定・消去時は再起動が不要にできるかもしれません。
    もう少しスクリプトを練ってみます。

  • @sunatomo さん

    画像以外のファイルもアップロードできるようにしてみました。
    活用なさってください。

    :fa-cloud-upload: 画像をアップロード
    :fa-upload: ファイルをアップロード

    許可している拡張子は下記4種です。
    tar
    gz
    zip
    sh

    あまり動作確認できておりません。
    何かお気づきの点があればお知らせください。🍹

  • @sunatomo さん、少し手間取りましたが、できました!
    アドバイスありがとうございました。

    ファイルを作成する場合、ls -l で作ったファイルを確認することが必要みたいですね。chmod  でパーミッションを変更したら上手くいきました。

    なんとなく出音がすっきりしたように思います。

  • sunatomoさん、shairport-sync、spotifydを無効化後にDASHBOARDを表示させてみました。

    8ea4c61b-1c2d-425b-9096-36f23fb1be24-image.png

    綺麗ですね!!!

  • sunatomoさん、hiroget9さん
    はじめまして。私もトライしてみました。クラシックを聴きながら修正、reboot後無事音出ました。
    修正前に比べ響きが増したように感じるのはプラセボなんでしょうか?但し私の場合dashbordのグラフが出なくなりました。が0.9.0の正式版が控えていますし、その時は再インストールでしょうから気にしないでおこうと思います。
    お二人のコミュニティへの御貢献パパリウスさんも心強く感じられている事と思います。これからもよろしくお願いします。
    ひとつ思ったんですがsudo systemctl stop shairport-syncをrc.localに記述するのではだめなんでしょうか。

  • @出不精さん、こんにちは。

    私も最初はDASHBOARDのグラフが出ませんでした(-_-;)
    >chown・chmodが理解できれば
    のヒントをいただいたので、きっとどこかで使うのだろうと考えて2度目のトライで上手くいきました。

    試しに、chmod 777 ympd_event.sh でパーミッションの変更を試されてはいかがでしょうか?
    >このファイルはympdのイベント発生時(MPD似て音源の再生・停止時など)に他のサービスを停止・起動させる記述が書かれています。
    と説明されていますので、これが原因でDASHBOARDのグラフが表示されないのではと素人ながら考えてみました。

  • hiroget9さん
    グラフでました。有難うございました。
    そうですよね、3つファイル作ったんだから全部同じ事しろよですね。
    こんな調子ですがよろしくお願いします。

  • @hiroget9 さま
    お試し頂き有難うございます。私みたいにMPDオンリーな人も中にはいると思いましたのでお役に立てて嬉しい限りです。
    (個人的にはAirPlayの代わりにGoogleCastが使えると面白いかもって思いますが、Castのレンダラーのオープンソース実装が現状見つからないので、無理かもしれませんね)。

    @パパリウス さま
    ファイルアップロード、現状では返信時の書込にはアイコンが見えていませんね。
    ファイルダウンロードしたほうが一般利用者には便利ですが、sshによるUNIX系シェルの操作に皆さんも慣れていただきましょうか(笑?

    @出不精 さま
    DASHBOARDについては/home/pi/util_dashboard.shが動き、その中でutil.plot.shで/var/lib/mpd/music/RAM/.latency.svgという名前でSVGファイルが生成されています。
    (パパリウスさまのこの仕組み、よく出来ています。gnuplotでSVGでグラフ描画、私には思いつきませんでした。)
    今回のシェルスクリプトはこのあたりには影響がないはずなのですが、hiroget9さまが記載のとおり改変・新規作成したファイルには必ず実行権限をつけて下さい。

  • @sunatomoさん、素人の私にはさっぱりですが、VLCがGoogleCastに対応していて、ソースが公開されているようです。すでにご存じかもしれませんし、こんな低レベルな情報ではお役にたてないでしょうね。
    ソース見てもさっぱり分かりません・・・upnp.cppとかvlc_renderer_discovery.hが含まれているようです。

  • 👯 @sunatomo さん

    ご指摘ありがとうございます。
    権限設定に不足があったようです。
    エディタの一番右端にファイルアップロードボタンが追加されていると思いますのでお試しください。

  • @hiroget9 さま
    VLCでキャスト出来るという話は情報としては把握していましたが、VLCのストリームをChromecastにキャスト出来るという形のようですよね。
    私の書いた内容はsymphonic-mpdをキャスト先にしてしまうということです(ちょうどshairport-syncでAirPlayの再生をラズパイで実現してしまうのと同じように) 。
    念の為後でソースコードは見てみたいと思います。

    @パパリウス さま
    ファイルアップロードやってみました。今回は合計5つのファイルをアップロードしましたが、次回からはzipかtar.gz化してアップロードしようと思います。対応頂き誠にありがとうございます。

  • @sunatomo さん

    Google Cast の動作をエミュレートする実装がgithubにありました。
    https://github.com/dz0ny/leapcast

    Google Castのサーバ仕様が非公開になり、leapcastの開発は数年前に中断したようですね。

    クライアント(Android端末など)との相性もありそうですが、もしかすると動作するかもしれませんね。