あけましておめでとうございます。
と、思ったらいつの間にか旧正月すら過ぎてました……1
最近、添い寝ストリーミングが無いと寝れませんよね?(え?
他人の配信している添い寝ストリーミングだと寝取っているようで罪悪感ありますよね、自身のお嫁さんと添い寝しないとですよね、浮気ですよね。むしろその背徳感がいいのかもしれないけどっ
添い寝ストリーミングの定番ソフト、Soinは Windows 用アプリケーションです。もし、お使いの PC がWindowsであれば、添い寝ストリーミングを始めよう | ひななゐここあで紹介されていることを為すのみです。
Mac でも添い寝
では、Mac では添い寝ストリーミングは出来ないのでしょうか。
結論から言えば、いくつか手段があります。とりあえず手っ取り早かったのは Soine + Wine + LadioCast + Soundflower + IceCast で、簡単に環境を構築することが出来ました。
というか誰かマジで*nix系で添い寝できるの作って
添い寝ストリーミング環境の構築
添い寝ストリーミング環境を構築するのに、Homebrewがインストール済みであることを前提とします。
もし、Homebrew?何それ?おいしいの?って方は黒い画面を開いてインストールしておいてください。
Soin を OSX で動かす
Soinは前述の通りWindows用アプリケーションなのでそのままではOSXでは動作しませんが、Windows の*nix向けエミュレータであるWineを利用すればOSXでも多分一通り動きます。
OSXで使えるWineには幾つかのバリエーションが有るのですが、ここでは自分が試した2つを紹介します。他のWineを使用した場合の挙動は知りませんが、多分大丈夫。(報告ください)
まずは配布元からSoinをDLし、展開しておく。
日本語に強いEasyWine
日本語フォントや設定などを組み込まれたうえでパッケージ化されたWineなので面倒な設定がいらなかったりします。あとexeやmsiをFinderからクリックで実行/インストール可。ただwinetricksやwinecfgがついてなかったりするっぽい。導入方法とダウンロードはこちら
一瞬、「これメニューバーとDock消えるじゃん…」と思ってたけど、どうやらそのパッチをあてていない方も含まれてるらしい。
1 2 |
$ cd EasyWine.app/Contents/Resources/wine/lib/wine $ ln -fs winemac_nohide.drv.so winemac.drv.so |
Homebrewから入れられる方のWine
homebrew でソースコードからビルドしてくる。もちろんwinecfgはコマンド打つだけ、winetricks も入れられる。書いてから思ったけどコマンドラインから起動しないのであればわざわざ時間をかけてこっちをビルドする理由は特になかった。
1 |
$ brew install wine --without-x11 |
ちなみにこっちはそのままだとシステムフォントが日本語フォントになってず豆腐になる。詳しくはぐぐって?
soinの展開先ディレクトリに移動してwine soin
で起動できるようになってるはず
音源ループバックのSoundflower
Soundflowerは音源ループバック用のツール。ステミキの機能の一部みたいな?
Homebrew でcaskからインストール。
1 |
$ brew cask install soundflower |
途中でパスワードを求められる。
インストールできると、入出力デバイスにこれが追加される。
LadioCast
インターネット放送アプリ。Mac AppStore よりDL。
ステミキのミキサーとしての機能や、IceCast、SHOUTcastの配信クライアントとしての機能を持つ。メイン出力に出力されている音声がそのまま配信できる。また、ミキサーなのでマイク音声とループバック音源を合わせたり、複数の出力先へ出力先したりすることももちろんできる。とまあ、詳しいことはこのエントリにあったりする。
配信設定はメニューバーのストリーマーからストリーマー1>Icecastを選んで設定窓が出てくるのでテキトーに設定して接続する、を押すだけ。お好みで。
Icecast をインストール
配信サーバー。
これもやっぱりhomebrewからインストールできる。
1 |
$ brew install icecast |
設定ファイルは、(brewを/usr/localで扱っている場合、)/usr/local/etc/icecast.xml
にあるのでそれをテキトーに編集。
といっても、この設定ファイル、 Homebrew用に調整されているため他のを使いまわして上書きしたら痛い目を見るかもしれない。基本はare参考に、でも…
設定できたらicecast -b -c /usr/local/etc/icecast.xml
でバックグラウンド起動できる。
ブラウザから localhost:8000 (default)にアクセスして起動チェック。
配信する
配信サーバーが起動できれば、あとはクライアント。
まずはLadioCast、前で軽く触れたけどとりあえずテキトーに。
どうやら残念ながらマルチバイトはうまく扱えないみたいですね>< (VLCとかではちゃんと表示できるはず!どうやらコーデックによっては正常に表示できるっぽい!)
Wineだけミキサーに流す
winecfg
(EasyWineなら~/Library/Caches/Wine/prefixes/default/drive_c/windows/system32/winecfg.exe
にあるので、
1 |
$ open $HOME/Library/Caches/Wine/prefixes/default/drive_c/windows/system32/winecfg.exe |
を起動してオーディオタブから出力デバイスをSoundflowerにしておく。
※EasyWine 1.9.1 がバグっていて複数同時起動出来ない場合があるようなので起動できない場合は既に開いてるWine窓があれば閉じておくこと。
LadioCast側で入力1に同じものを選び、下にある出力(メイン)にチェック。右でメインに内蔵出力を選ぶなり、もう一回Soundflowerに回すなり、あるいはメインは N/AにしておいてAux1に内蔵出力とかにしといても聞きながらそれだけ配信できる。
(EasyWineはwinecfg使えないみたいなこと書いたの誰や…)
Macの効果音など他の音声も全てストリームに流すのであれば、Wineで出力先を指定せずにサウンドの環境設定から標準出力先をSoundflowerにしておいても同様にできるけど添い寝ストリーミングには必要ないよね?LadioCast 起動・終了するたび変えなきゃいけないわけだし。
添い寝しよう
お疲れ様でした。添い寝音声をストリーミング配信することが出来るようになりました。まずは Soin を起動しましょう。
LadioCastで入力が確認できればおk。配信できます。
出力 Aux1に内蔵出力を選んでいて、それが死ぬことがある模様。その場合はAux 2 の方に回してやれば大体の場合解決すると思われる。
ところで、添い寝するには携帯端末から再生できる必要があるのでは無いだろうか。先ほどのicecastの設定を疎かにしていた人はここで問題となる。とは言え、ipアドレス:8000
に携帯端末のブラウザからアクセスできるのであれば、icecastにはアクセスできている。
VLC for Androidなどでhttp://192.168.2.3:8000/soine
のようなアドレスにアクセスし、それで再生できればそれでもいいし、M3U/XSPFのプレイリスト経由で再生する場合はicecast.xml
の<hostname>
の値を見なおしてほしい。(配信サーバーに端末からアクセスできるドメインor IPアドレス)
なお、設定変更後は反映させるためkillall icecast
してicecast -b -c /usr/local/etc/icecast.xml
しなおすこと。
プレーヤーでストリーミングを再生できていれば多分成功です。
快適な添い寝をお楽しみください。
……ところでVLC for Androidで添い寝しようとするとものすごくノイズ乗ってる気がするのは気のせいですか?
- 別に狙ってたとかいうわけではありません、1月中に書いてたのに気付いたらこんな時期になってしまっただけです ↩