Linux mplayer の謎の挙動…

インターネットラジオを聴いていたりするのだけれど、そのためのアプリの使い方が謎だったので備忘として。


以前、Raspberry Pimplayer をインストールしてラジオを聴いていることを書いたけど、バックグラウンドで動かす方法が良く分からなくてしばらく悩んでた。


シェルスクリプトは、こんな感じ。

$ cat /mnt/nas/Radio/radio_20180109_03_ANTENA1-94.7FM.sh
#!/bin/bash

mplayer -playlist \
http://yp.shoutcast.com/sbin/tunein-station.m3u?id=1236022


で、これをコマンドラインで実行。

$ sh /mnt/nas/Radio/radio_20180109_03_ANTENA1-94.7FM.sh

と入力すれば音楽(ラジオの音声)が流れてくるのに、

$ sh /mnt/nas/Radio/radio_20180109_03_ANTENA1-94.7FM.sh &
esolving yp.shoutcast.com for AF_INET6...

Couldn't resolve name for AF_INET6: yp.shoutcast.com
Resolving yp.shoutcast.com for AF_INET...
Connecting to server yp.shoutcast.com[46.105.114.166]: 80...

Cache size set to 320 KBytes
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team


[1]+  停止                  sh /mnt/nas/Radio/radio_20180109_03_ANTENA1-94.7FM.sh


となって停止してしまう。
違いは & を付けたか、付けなかったか。
ちょっと意味がわからない。


で、いろいろなキーワードでググってたわけだけれど、このページが役に立った。


教えて! goo
mplayerのバックグラインド実行を教えてください -例えばコマンドライ- UNIX・Linux | 教えて!goo


いや、直接的にコレっていう方法じゃなかったんだけど、回答者の「なぞの挙動ですが、&がmplayerコマンドの引数として解釈されてるのかもしれません。」という一文。
その回答にあるコマンドの例文ではいろいろ小細工をしてたけど、& だけ別にさせたいならこんな感じでいけるはず。

$ $(sh /mnt/nas/Radio/radio_20180109_03_ANTENA1-94.7FM.sh) &
[1] 29398
$
Couldn't resolve name for AF_INET6: yp.shoutcast.com

Couldn't resolve name for AF_INET6: s5.voscast.com
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'


$


おぉ、上手くいった!
音楽が流れてきたよー!



……ん?
いま流れてるこの曲名は!?


このコマンドじゃわからーん!


……標準出力はリダイレクトすればいいよね、たぶん。
ってことで、急いでコマンドを少し修正。




$(sh /mnt/nas/Radio/radio_20180109_03_ANTENA1-94.7FM.sh >> /mnt/nas/Radio/Radio.log) &
[1] 29783
$
Couldn't resolve name for AF_INET6: yp.shoutcast.com

Couldn't resolve name for AF_INET6: s5.voscast.com
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'


$ grep Info /mnt/nas/Radio/Radio.log
ICY Info: StreamTitle='The Drifters - 15 Drif no Hontoni Hontoni Gokurousan';
ICY Info: StreamTitle='Arai Yumi - 09 Yasashisa ni Tsutsumareta nara';
(延々戻ってこなかったため Ctrl + C で中断)


曲名はわかった!
ドリフターズの曲にこんなのがあったのかw



とりあえず、その感動は置いといて。


うーん、、、現在の進行度が % で表示されては消えていく仕様だけにログがえらい勢いで増えていくし、コマンドの実行オプションかリダイレクト処理に、もう少し考慮が必要かぁ


とりあえず、バックグラウンドで実行できることが分かっただけで、今日は大分進展あり!