Scripts for QuickTime Broadcaster

October 10, 2004

私が使っているQuickTime Broadcasterで定時録画するためのスクリプトを簡易版にして、掲載しておきます。シェルスクリプトとAppleScriptを使ってます。

このスクリプト群で予定される動作ですが、

1)QuickTime Broadcasterで生中継を開始
2)一定時間後に生中継を停止
3)停止後ファイル名を変えて保存
4)保存されたファイルをftpで別のサーバーへ転送

というものです。(QuickTime Broadcasterの起動はあらかじめ別途に行って下さい)

また、シェルスクリプトに関してはエラー対応処理(if文を書いて、ファイルの存在を確認後に次の動作に入るとか)はしていないので、あしからず。ディレクトリとかファイルの関係を完全に前提条件どおりにしていることを前提としたスクリプトです。

では、スクリプト群の紹介

1)全体の動作とファイル名の管理を行うシェルスクリプト(仮名「live-recording」)
2)QuickTime Broadcasterの生中継を開始するAppleScript(仮名「start-live.scpt」)
3)QuickTime Broadcasterの生中継を停止するAppleScript(仮名「stop-live.scpt」)
4)ftpを行うシェルスクリプト(仮名「movie-ftp」)

となってます。

これを使うマシン側の前提条件は以下のとおりです

A) /Script/というディレクトリを作りそこに今回使用するスクリプトを置きます。

B) YOUR_USE_NAMEのところにはご自身のユーザー名が入ります。

C) ご自身のユーザー名でログインしたデスクトップ上に、LiveMovieとDailyMovieという二つのディレクトリを作っていただきます。(なお、4GBの問題がある方は、LiveMovieの置き場が変わりますので、それに合わせて、スクリプト上のディレクトリの表記とQuickTime Broadcasterの設定を変更して下さい)

D) QuickTime Broadcasterでは、生中継中のファイル保存をONにして、デスクトップ上のディレクトリ、LiveMovie内にlive.movという名前で保存する設定にします。

E) QTSS/DSSではftpサーバーを立てて下さい。またftpのユーザーがQTSS/DSSのムービー用ディレクトリに入れるようにユーザー権限の設定もして下さい。

F) ftp先のQTSS/DSSのサーバー名はYOUR_STREAMING_SERVERへ、ftpの対象ディレクトリはMOVIE_DIRECTORYへそれぞれ入れて下さい。

G) ftp時のアカウント名とパスワードは、FTP_USERとFTP_PASSWDへそれぞれ入れて下さい。

H) シェルスクリプトファイルである1)と4)には読み書き(644等)ではなく実行権限(700とか)を与えて下さい。

では、スクリプトの内容紹介

1)live-recording

------以下はシェルスクリプト-----
#!/bin/sh
#--QuickTime Broadcaster生中継開始--
/usr/bin/osascript /Scripts/start-live.scpt
#--生中継開始時間をファイル名に使う変数として取り込み--
DATE=$(date +%y%m%d)
HOUR=$(date +%H)
MINUTE=$(date +%M)
TIME=${DATE}${HOUR}${MINUTE}
#--59分50秒生中継した後、生中継停止--
sleep 3590
/usr/bin/osascript /Scripts/stop-live.scpt
sleep 1
#--live.movのファイル名を変更:以下は次のコメントまで1行で書いて下さい--
mv -f /Users/YOUR_USE_NAME/Desktop/LiveMovie/live.mov
/Users/YOUR_USE_NAME/Desktop/DailyMovie/live${TIME}.mov
#--ftp用スクリプトへファイル名を変数として渡す--
FTPFILE=live${TIME}.mov
export FTPFILE
#--ftp用スクリプトを起動--
/Scripts/movie-ftp &
------シェルスクリプトは以上-----


2)start-live.scpt

------以下はAppleScript-----
tell application "QuickTime Broadcaster"
if (exists document 1) then
start document 1
return "recording"
end if
end tell
------AppleScriptは以上-----

3)stop-live.scpt

------以下はAppleScript-----
tell application "QuickTime Broadcaster"
if (exists document 1) then
stop document 1
return "stop"
end if
end tell
------AppleScriptは以上-----


4)movie-ftp

------以下はシェルスクリプト-----
#!/bin/sh
#--日時入りのムービーファイルの置き場に移る
cd /Users/YOUR_USE_NAME/Desktop/DailyMovie/
#--ftpサーバーにログイン
ftp -i -n YOUR_STREAMING_SERVER < user FTP_USER FTP_PASSWD
#--QTSS/DSSのムービー用ディレクトリに移動
cd MOVIE_DIRECTORY
#--ムービーファイルを転送
put ${FTPFILE}
#--転送後ログアウト
by
END
------シェルスクリプトは以上-----

このスクリプトを/etc/crontabで例えば以下の様に指定すると

------/etc/crontab-----

#minute hour mday month wday who command

0    *   *   *   *   root  /Scripts/live-recording

------/etc/crontab-----

毎日24時間の毎正時(O'clockね)にQuickTime Broadcaster が生中継&録画を開始し、59分50秒後に停止、また次の正時に開始するという動作を繰り返します。また、次の生中継&録画が開始されるのと平行して、前の録画ファイルのftpがバックグラウンドで実行されます。

posted by kuni at 3:41 AM | permalink | Scripts for QuickTime Broadcasterをはてなブックマークに追加 Scripts for QuickTime Broadcasterをdel.icio.usに追加 Scripts for QuickTime Broadcasterをlivedoorクリップに追加 Scripts for QuickTime BroadcasterをYahoo!ブックマークに追加