ラジオサーバーをつくろう 〜 番組切り出し編 〜
前回は、24時間ノンストップでどんどん録音していくシステムを作成した。これだと、HDDがパンクするまでだらだらと録音していくだけなので、1日に1回これを整理し欲しいところを番組として切りだす仕組みを作成する。
このあたりはシェルスクリプトとrubyスクリプトでえいやと作成してしまえばよい。MacOSXにはrubyが標準で入っているあたりが極楽だのう。(むろんPythonやPerlも標準添付)
やることと設計としては以下のようになる。
■作業内容
・ビットファイルを作業領域に全ムーブ
・ビットファイル全てにwavヘッダーを付与
・プレーンwavをmp3に圧縮
・プレーンwavを全削除
・プレーンmp3を、全放送mp3フォルダにムーブ
・プレーンmp3で3日以上前の物を全削除
・録音リストからビットファイルを結合して番組ビットファイルを作成
・番組ビットファイル全てにwavヘッダーを付与
・番組wavをmp3に圧縮
・番組wavを全削除
・番組mp3をフォルダ分類
■作成するもの
1. cron起動する大家スクリプト (radio_works)
1.1. 作業フォルダの掃除
1.2. ビットファイルのムーブ
1.3. 各スクリプトの呼び出し
2. ビットファイルからmp3を作るスクリプト (str2mp3)
3. プレーンmp3管理スクリプト (radio_plane_mp3)
4. 番組リストワーク (radio_contents ruby)
5. 番組mp3のフォルダ分類スクリプト (radio_filing ruby)
録音リストというのは以下のような書式。
番組タイトル radio 1 21:30 30 AM
詳しくはLinuxのときの記事参照。
ちなみに録音ファイルには、月・日・時・分を8桁の数字にしたものがファイル名に付いており 01232330.str のようになっている。それを録音時間として扱っている次第。
細かい説明はすっとばして radio_works 以外のスクリプト。
radioserver.zip
これでおおよそそろったので一応のおしまい。