diary/Kojima/2011-11-02
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[diary/Kojima]]
・「らじる★らじる」タイマー録音スクリプト
また、前回から1ヶ月近く空いてしまった。。
最近、NHKがラジオ放送を「らじる★らじる」という名前でイン...
少し調べてみたところ asx フォーマットを使えばmplayerだけ...
mplayerで再生できるなら、その出力をlameあたりに食わせれば...
こんな感じのタイマー録音スクリプトを書いてみた。
#!/bin/sh
if [ $# != 3 ]; then
echo 'Usage:'
echo " $0 [r1|r2|fm] start_time end_time"
exit 1
fi
channel=$1
start=$2
end=$3
date=`date +"%F"`
file="~/"$channel"-"$date"-"$start".mp3"
my_pid=$$
mp3dir="~/MP3"
case $channel in
r1)
playlist=http://mfile.akamai.com/129931/live/reflect...
;;
r2)
playlist=http://mfile.akamai.com/129932/live/reflect...
;;
fm)
playlist=http://mfile.akamai.com/129933/live/reflect...
;;
*)
echo 'Usage:'
echo ' $0 [r1|r2|fm] start_time end_time'
exit 1
;;
esac
mkdir -p ~/radiru_scripts
cat <<EOF > ~/radiru_scripts/begin_$my_pid
#!/bin/sh
mkfifo /tmp/fifo_$my_pid
file=$mp3dir"/"\$channel"-"\`date +"%F-%H-%M"\`".mp3"
mplayer -slave -input file=/tmp/fifo_$my_pid -playlist $...
EOF
cat <<EOF > ~/radiru_scripts/end_$my_pid
#!/bin/sh
echo "quit" > /tmp/fifo_$my_pid
rm -f /tmp/fifo_$my_pid
rm -f ~/radiru_scripts/{begin,end}_$my_pid
EOF
at $start -f ~/radiru_scripts/begin_$my_pid
at $end -f ~/radiru_scripts/end_$my_pid
例えばこのスクリプトを rec_radiru.sh とでもしておけば、引...
終了時刻の3つを指定して、
rec_radiru.sh fm 20:00 22:30
rec_radiru.sh r2 19:00 19:15
みたいな感じで実行すれば、~/radiru_scripts/{begin,end}_$m...
それらのスクリプトを指定時刻に実行するように at コマンド...
録音した内容は fm-2011-11-02-13:00.mp3 みたいに、"チャン...
一番苦労したのは、シェルスクリプトをkillしてもmplayer自体...
当初はシェルスクリプトのPID+1をmplayerのPIDと見なして kil...
それだとタイマー録音が始まる時刻に複数のコマンドを起動す...
その時刻にcronが動くとか)にうまく行かない(タイミングによ...
起動スクリプトではmplayerをslaveモードで起動して、専用のF...
こうすることで、一応、手元では同じ時刻に複数の録音スクリ...
当初は1つのスクリプトで指定時間だけsleepしてからmplayerを...
日付をまたがったときの時刻指定とかを考えるのが面倒だった...
こうしておけばatコマンドで使える日付書式がそのまま使える...
このあたりに晒しておけば、デバッグや機能追加してくれる奇...
- データのファイル名をrec_radiru.sh を実行時点に生成しち...
- 差分を取るほどのコードでもないので直接イジって、$fileを...
- ついでに~/MP3ディレクトリに入れるようにしたので、MP3デ...
- NTPで時刻は合わせているのに、ちょうどに始まらないなぁ、...
- atコマンドで翌日以降の時刻を登録するためには日付の情報...
- いや、おもしろそう、、。ネットラジオは残響がない感じだ...
#comment
終了行:
[[diary/Kojima]]
・「らじる★らじる」タイマー録音スクリプト
また、前回から1ヶ月近く空いてしまった。。
最近、NHKがラジオ放送を「らじる★らじる」という名前でイン...
少し調べてみたところ asx フォーマットを使えばmplayerだけ...
mplayerで再生できるなら、その出力をlameあたりに食わせれば...
こんな感じのタイマー録音スクリプトを書いてみた。
#!/bin/sh
if [ $# != 3 ]; then
echo 'Usage:'
echo " $0 [r1|r2|fm] start_time end_time"
exit 1
fi
channel=$1
start=$2
end=$3
date=`date +"%F"`
file="~/"$channel"-"$date"-"$start".mp3"
my_pid=$$
mp3dir="~/MP3"
case $channel in
r1)
playlist=http://mfile.akamai.com/129931/live/reflect...
;;
r2)
playlist=http://mfile.akamai.com/129932/live/reflect...
;;
fm)
playlist=http://mfile.akamai.com/129933/live/reflect...
;;
*)
echo 'Usage:'
echo ' $0 [r1|r2|fm] start_time end_time'
exit 1
;;
esac
mkdir -p ~/radiru_scripts
cat <<EOF > ~/radiru_scripts/begin_$my_pid
#!/bin/sh
mkfifo /tmp/fifo_$my_pid
file=$mp3dir"/"\$channel"-"\`date +"%F-%H-%M"\`".mp3"
mplayer -slave -input file=/tmp/fifo_$my_pid -playlist $...
EOF
cat <<EOF > ~/radiru_scripts/end_$my_pid
#!/bin/sh
echo "quit" > /tmp/fifo_$my_pid
rm -f /tmp/fifo_$my_pid
rm -f ~/radiru_scripts/{begin,end}_$my_pid
EOF
at $start -f ~/radiru_scripts/begin_$my_pid
at $end -f ~/radiru_scripts/end_$my_pid
例えばこのスクリプトを rec_radiru.sh とでもしておけば、引...
終了時刻の3つを指定して、
rec_radiru.sh fm 20:00 22:30
rec_radiru.sh r2 19:00 19:15
みたいな感じで実行すれば、~/radiru_scripts/{begin,end}_$m...
それらのスクリプトを指定時刻に実行するように at コマンド...
録音した内容は fm-2011-11-02-13:00.mp3 みたいに、"チャン...
一番苦労したのは、シェルスクリプトをkillしてもmplayer自体...
当初はシェルスクリプトのPID+1をmplayerのPIDと見なして kil...
それだとタイマー録音が始まる時刻に複数のコマンドを起動す...
その時刻にcronが動くとか)にうまく行かない(タイミングによ...
起動スクリプトではmplayerをslaveモードで起動して、専用のF...
こうすることで、一応、手元では同じ時刻に複数の録音スクリ...
当初は1つのスクリプトで指定時間だけsleepしてからmplayerを...
日付をまたがったときの時刻指定とかを考えるのが面倒だった...
こうしておけばatコマンドで使える日付書式がそのまま使える...
このあたりに晒しておけば、デバッグや機能追加してくれる奇...
- データのファイル名をrec_radiru.sh を実行時点に生成しち...
- 差分を取るほどのコードでもないので直接イジって、$fileを...
- ついでに~/MP3ディレクトリに入れるようにしたので、MP3デ...
- NTPで時刻は合わせているのに、ちょうどに始まらないなぁ、...
- atコマンドで翌日以降の時刻を登録するためには日付の情報...
- いや、おもしろそう、、。ネットラジオは残響がない感じだ...
#comment
ページ名: