日々

日中、NUCベアボーンのNUC7PJYHにWindows 10をオフラインインストール。昨日、インテルからダウンロードしたバンドルドライバーでインストールに失敗したソフトウェア・ガード・エクステンションズ(SGX)は今回はすんなり入った。
それでも赤外線ドライバのインストールに失敗するので調べてみるとBIOSで赤外線が無効になってるのが原因だった。あと、GNA スコアリング・アクセラレーターも無効になってた。しかし、BIOSHDMI CECでの電源連動とかの設定もあるんだな。
あとは、Passmark Memtest86でDDR4 8GB S.O.DIMMのメモリテストを開始して放置。
そういえば、CSチャンネル再編の日だった(汗)作業はまたやるとして、もしかしてと思ってAT-Xの録画を再生するとHD化してた。軽く追いかけてみると、9/25(火)23:30に録画されたものはSDで、9/26(水)20:30に録画されたものはHDだったので今回の再編日より前に行われていた模様。
何にしても念願のHD化。これで720×480を1920×1080に引き伸ばしても画角や黒帯部分の大きさが違うとか、そもそも小さい文字がつぶれて読めないといった問題が解消される。ビットレートが低いのがナンだけど、まあそれは仕方ない。
定時後、第二神明で帰宅。晩御飯食べ終わってから、母親がブラザーの複合機のインクが切れたとのことで足りない分を注文。前々からそうだったのか最低注文個数が2個になってた。不便。まあ、今回は2個欲しかったからいいけれど。

ずっと録音して通勤の行き帰りで聞いてたラジオのうち、文化放送けものフレンズ presents フレンズ探検隊2が9/26(水)26:00~26:30放送分で先日の公開録音の内容が流れ、最後に10月からA&G TRIBAL RADIOエジソン内の10分番組にお引越しになるハナシが発表された。
公開録音の時にも告知されたらしい。初回放送は10/6とのことなので、来週からエジソン枠ってことか。文化放送の超A&G+でも放送してるので、自宅で録音すべく手順を再確認することにした。
rtmpdumpコマンドを使って、-rもしくは--rtmpオプションでURLを指定、-vもしくは--liveでストリーミング配信であることを指定、-Bもしくは--stopで録音秒数を指定、-mもしくは--timeoutでタイムアウト秒数を指定、-oもしくは--flvで保存ファイル名を指定するだけ。
超A&G+のURLは現時点では rtmp://fms-base1.mitene.ad.jp/agqr/aandg22 だけど、fms-base1の部分はfms-base2になる場合もあるし、aandg22の部分はaandg2やaandg11、aandg1、aandg5、aandg55になる場合もあるらしい。そもそもURLが全く別のものになる可能性も否定できない。
てな訳で、軽く録音するためのバッチファイルを作ってみた。タイムアウトした場合は録音終了まで30秒以上あれば再度続きから録音する。URLは現時点で有効なものから順番に現在確認されている組み合わせを試して、最初に上手くいったURLを使うようにしている。
引数は録音時間をhh:mm:ssの形式で指定する。2つ目の引数にファイル名も指定できる。実際の録音ファイル名は「YYYYMMDDhhmmss-ファイル名.flv」のように年月日時分秒が付加される。
ファイル名にフォルダ名が含まれる場合は、録音後に指定したフォルダに移動する。フォルダ名にはネットワーク上の共有フォルダも指定できる。ファイル名に「.m4a」の拡張子が付いている場合は、録音後にffmpegコマンドで無劣化のm4aファイルに変換する。
rtmpdump.exeは(変換する場合はffmpeg.exeも)バッチファイルと同じフォルダか、パスの通ったフォルダに置いておく。

@ECHO OFF
REM ◆超A&G+録音バッチファイル(要rtmpdump.exe)◆
CD /D "%~dp0"
REM ◆録音時間が指定されていなければ使い方を表示して終了する◆
IF "%~1"=="" (
	ECHO usage: %~n0 ^<hh:mm:ss^> [filename] 
	EXIT /B
)
REM ◆聴取可能なURLを確認する◆
SET URL=
FOR %%I IN (fms-base1 fms-base2) DO (
	FOR %%J IN (aandg22 aandg2 aandg11 aandg1 aandg5 aandg55) DO (
		IF NOT DEFINED URL rtmpdump --rtmp "rtmp://%%~I.mitene.ad.jp/agqr/%%~J" --timeout 60 -B 1 --live -o "%%~I_%%~J.flv"
		IF EXIST "%%~I_%%~J.flv" FOR %%K IN ("%%~I_%%~J.flv") DO (
			IF %%~zK GTR 0 SET URL="rtmp://%%~I.mitene.ad.jp/agqr/%%~J"
			DEL "%%~I_%%~J.flv"
		)
	)
)
IF NOT DEFINED URL EXIT /B
REM ◆録音時間と終了時刻を秒単位で求める◆
SET N=%TIME: =0%-%DATE: =0%
CALL :TIME2SEC %N% 18000
SET /A E=%TIME2SEC%
CALL :TIME2SEC %~1 0
SET R=%TIME2SEC%
SET /A E=%E%+%R%
REM ◆聴取可能なURLから録音する◆
:RECORD
rtmpdump --rtmp %URL% --timeout 60 -B %R% --live -o "%N:~12,4%%N:~17,2%%N:~20,2%%N:~0,2%%N:~3,2%%N:~6,2%-AGQR.flv"
REM ◆終了時刻まで30秒以上あれば録音を繰り返す◆
SET N=%TIME: =0%-%DATE: =0%
CALL :TIME2SEC %N% 18000
SET /A R=%E%-%TIME2SEC%
IF %R% GEQ 30 GOTO RECORD
REM ◆拡張子がm4aなら変換を行い、ファイル名があれば指定されたパスにリネームして移動する◆
IF "%~2"=="" EXIT /B
IF "%~x2"==".m4a" FOR %%I IN ("*.flv") DO ffmpeg -i "%%~I" -vn -c:a copy "%%~nI.m4a"
FOR %%I IN ("*.flv") DO MOVE /Y "%%~I" "%~dp2%%~nI-%~n2.flv"
FOR %%I IN ("*.m4a") DO MOVE /Y "%%~I" "%~dp2%%~nI-%~n2.m4a"
EXIT /B
REM ◆時2桁:分2桁:秒2桁を秒単位に変換する(指定秒数未満なら86400秒加える)◆
:TIME2SEC
SET TIME2SEC=%~1
SET /A TIME2SEC=(1%TIME2SEC:~0,2%-100)*3600+(1%TIME2SEC:~3,2%-100)*60+1%TIME2SEC:~6,2%-100
IF %TIME2SEC% LSS %~2 SET /A TIME2SEC=%TIME2SEC%+86400
EXIT /B

使い方は、[スタート]メニューを右クリック→コンピューターの管理、システム ツール→タスク スケジューラ→タスク スケジューラ ライブラリ、右端ペインからタスクの作成、全般タブの名前に番組名などを入力、トリガータブの新規で次回放送日と放送時間(30秒程度早めに設定)を入力して毎週に設定後、曜日にチェックを入れてOK、操作タブの新規でプログラム/スクリプトにバッチファイルを指定、引数の追加に録音時間(1分程度多めに設定)と必要に応じてファイル名を「"」で囲って入力してOK、OKでタスクの作成を終了するだけ。