windows7でAT-X録画サーバの構築
2014年10月05日
LIVAでなんとか録画しようと、windows8買って入れてみたりしたけど、windows8はダメでした。
秋アニメの開始にあわせてなんとか録画サーバを作りたかったんで、windows7の入ったノートPCを録画サーバにしてみる。
録画サーバは番組開始時間が近づいたらスタンバイ状態から復帰し、録画が終了したらまたスタンバイに入るように運用するのがほとんどっぽいので、ノートでやってもそんなに電気代は増えないだろうという見込み。ちなみにノートPCのバッテリーを外して消費電力を測ってみたところ、8~10W程度になった。いけるやん!
使うソフトウェアはTVTestとTVRock。参考にしたのはこのページ。
いくつかつまった点があるので上げていく。
■番組情報が取得できない。
はじめ、TVRockDTVライブラリの作成フォルダをCドライブのTVRockのインストールフォルダにしていた。そうしたらアクセス権限の影響で番組情報の取得を走らせても一向に番組情報が取得できなかった。ユーザのドキュメントフォルダに指定しなおしたら解決。
■スリープから復帰しない。番組予約のタスク登録エラーとか出る。
色々調べてwindowsの電源設定とかログイン時のパスワード設定とかは済んでいた。それでも予約した録画とか番組情報取得が走らなかった。TVRockのタスクスケジューラで復帰するからチェックを外し、タスクトレイの右クリックから「インテリジェント」のスリープタイマー(スタンバイ)のチェックで解決。TVRockの設定がWindowsのタスクスケジューラに反映されていなかったのが原因。
こんなところかな。もうちょっとあった気もするけど。
録画した番組は一度ローカルに保存し、録画が終了したらTVRockに設定していた録画後のコマンド実行でファイルサーバにアップロードし、その結果をメール通知させるようにする。
TVRockに登録するコマンドは次のような感じ。
"C:\Program Files\TvRock09u2\rec_post_proc.vbs" 走らせるスクリプト
"%1" 録画したファイルのフルパス
"Y:\anime\2014Aut\%a\" 保存先フォルダ名
"%4" 録画したファイル名(拡張子なし)
VBSファイル(rec_post_proc.vbs)の内容は以下の感じ。
これで番組名から自動予約されて録画された番組が、番組名のフォルダに格納されて、そのフォルダの一覧とディスク容量を記載したメールを送信する。ついでに同名ファイルが既にあればタイムスタンプをファイル名に追加して上書きを回避する。
ついでにDLNAサーバをLIVAに立ち上げて、TV(ブラビア)から直接見れるようにした。
ここ参考。
これで、AT-Xの番組に関してはwindows7のノートPCで録画し、LIVA(Xubuntu)にUSB3.0で接続されているHDD(1TB)に番組名でフォルダ分けされた状態で保存され、TVでその番組を見れるようになった。
秋アニメにはこの体制で入る。
秋アニメの開始にあわせてなんとか録画サーバを作りたかったんで、windows7の入ったノートPCを録画サーバにしてみる。
録画サーバは番組開始時間が近づいたらスタンバイ状態から復帰し、録画が終了したらまたスタンバイに入るように運用するのがほとんどっぽいので、ノートでやってもそんなに電気代は増えないだろうという見込み。ちなみにノートPCのバッテリーを外して消費電力を測ってみたところ、8~10W程度になった。いけるやん!
使うソフトウェアはTVTestとTVRock。参考にしたのはこのページ。
いくつかつまった点があるので上げていく。
■番組情報が取得できない。
はじめ、TVRockDTVライブラリの作成フォルダをCドライブのTVRockのインストールフォルダにしていた。そうしたらアクセス権限の影響で番組情報の取得を走らせても一向に番組情報が取得できなかった。ユーザのドキュメントフォルダに指定しなおしたら解決。
■スリープから復帰しない。番組予約のタスク登録エラーとか出る。
色々調べてwindowsの電源設定とかログイン時のパスワード設定とかは済んでいた。それでも予約した録画とか番組情報取得が走らなかった。TVRockのタスクスケジューラで復帰するからチェックを外し、タスクトレイの右クリックから「インテリジェント」のスリープタイマー(スタンバイ)のチェックで解決。TVRockの設定がWindowsのタスクスケジューラに反映されていなかったのが原因。
こんなところかな。もうちょっとあった気もするけど。
録画した番組は一度ローカルに保存し、録画が終了したらTVRockに設定していた録画後のコマンド実行でファイルサーバにアップロードし、その結果をメール通知させるようにする。
TVRockに登録するコマンドは次のような感じ。
TN:cscript "C:\Program Files\TvRock09u2\rec_post_proc.vbs" "%1" "Y:\anime\2014Aut\%a\" "%4"
"C:\Program Files\TvRock09u2\rec_post_proc.vbs" 走らせるスクリプト
"%1" 録画したファイルのフルパス
"Y:\anime\2014Aut\%a\" 保存先フォルダ名
"%4" 録画したファイル名(拡張子なし)
VBSファイル(rec_post_proc.vbs)の内容は以下の感じ。
Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set objParm = Wscript.Arguments
Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = " +\\$"
WScript.Echo objParm(1)
Dim saveFolder
saveFolder = objRE.Replace(objParm(1), "\")
If Not objFileSys.FolderExists(saveFolder) Then objFileSys.CreateFolder saveFolder
nows = Right("0000" & Year(Now()) , 4 ) & Right("0" & Month(Now()) , 2) & Right("0" & Day(Now()) , 2)
nows = nows & Right("0" & Hour(Now()) , 2)& Right("0" & Minute(Now()) , 2) & Right("0" & Second(Now()) , 2)
outputFileName = saveFolder&objParm(2)&".ts"
If objFileSys.FileExists(outputFileName) Then outputFileName = saveFolder&objParm(2)&"_"&nows&".ts"
objFileSys.MoveFile objParm(0), outputFileName
Set objFolder = objFileSys.GetFolder(objParm(1))
txtFiles = ""
For Each objItem In objFolder.Files
txtFiles = txtFiles&objItem.Path&Chr(9)&objItem.Size/1024/1024&"MB"&vbCrLf
Next
Set objDrive = objFileSys.GetDrive("y:\")
textBody = objParm(0)&" saved."&vbCrLf&vbCrLf _
& "move to "&objParm(1)&vbCrLf&vbCrLf _
& txtFiles&vbCrLf _
& "Y:\"&vbCrLf _
& "all:"&Chr(9)&FormatNumber(objDrive.TotalSize/1024/1024/1024, 0)&"GB"&vbCrLf _
& "use:"&Chr(9)&FormatNumber((objDrive.TotalSize-objDrive.FreeSpace)/1024/1024/1024, 0)&"GB"&vbCrLf _
& "free:"&Chr(9)&FormatNumber(objDrive.FreeSpace/1024/1024/1024, 0)&"GB"
Set objMail = CreateObject("CDO.Message")
objMail.From = "(Fromアドレス)"
objMail.To = "(Toアドレス)"
objMail.Subject = "tvrock log"
objMail.TextBody = textBody
objMail.BodyPart.Charset = "iso-2022-jp"
strConfigurationField ="http://schemas.microsoft.com/cdo/configuration/"
With objMail.Configuration.Fields
.Item(strConfigurationField & "sendusing") = 2
.Item(strConfigurationField & "smtpserver") = "(SMTPサーバ名)"
.Item(strConfigurationField & "smtpserverport") = 465
.Item(strConfigurationField & "smtpusessl") = true
.Item(strConfigurationField & "smtpauthenticate") = 1
.Item(strConfigurationField & "sendusername") = "(メールアドレス)"
.Item(strConfigurationField & "sendpassword") = "(メールアカウントパスワード)"
.Item(strConfigurationField & "smtpconnectiontimeout") = 60
.Update
end With
objMail.Send
Set objMail = Nothing
Set objDrive =Nothing
Set objFolder = Nothing
Set objParm = Nothing
Set objFileSys = Nothing
これで番組名から自動予約されて録画された番組が、番組名のフォルダに格納されて、そのフォルダの一覧とディスク容量を記載したメールを送信する。ついでに同名ファイルが既にあればタイムスタンプをファイル名に追加して上書きを回避する。
ついでにDLNAサーバをLIVAに立ち上げて、TV(ブラビア)から直接見れるようにした。
ここ参考。
これで、AT-Xの番組に関してはwindows7のノートPCで録画し、LIVA(Xubuntu)にUSB3.0で接続されているHDD(1TB)に番組名でフォルダ分けされた状態で保存され、TVでその番組を見れるようになった。
秋アニメにはこの体制で入る。
Posted by
wakin
at
20:21
│Comments(
0
)