15 ネットラジオの録音 -- 前番組の延長にどう対応するか (工事中)

ラジオ人間だったせいで、ネットラジオなどを聴いている・録音している、 ということを

「ネットラジオを聴く・録音する (streamlink, ffmpeg)」
に書いた。

毎週聴く番組の録音はずっとうまく行っていたのだけれど、 前番組にスポーツ中継が入り、それが延長することが生じて、 うまく録音できないことがこのところ2回ほど生じた。

なんか、20世紀のエアチェックで悩んだことの再現みたいな感じだ (笑)。

さてどうしよう。

最初は録音時間を長めにしておいて、後から不要な部分をカットして聴こう、 と考えたのだけど、どうも番組が終了すると、それを示す信号が出るようで、 ちょうどスポーツ中継が終わるところで録音が終わってしまうみたい。

うーむ。

こういう詳しくないことで困ったときは、ChatGPT に尋ねてみる。

ChatGPT は、いくつか対処策の選択肢をあげてくれた。 そのうち有望そうなものは

(a)
ffmpeg の再試行を使って再接続を試みる(失敗するかもしれない)
(b)
ffmpeg をループ録音して複数セッションに分割保存
(c)
streamlink を使って再接続つきで録音

(b) と (c) を勧められた。さあ、どうしよう。

(b) はわかるけれど (5分単位くらいに分割するのかな?…それとも1分単位?)、 ぶつ切りになっているものを後からまとめるのはなんか抵抗があるな。

そもそも、最初のうちは streamlink を使っていたのだった (データ・フォーマットの変換には ffmpeg を使う)。 後から ffmpeg だけで済むことがわかったので、 シンプルに ffmpeg でやるようにしたのだけど、 特に streamlink を採用することに抵抗はない。 (c) をするには
streamlink --hls-duration 01:00:00 --retry-streams 5 --retry-open 10 --output myradio.ts "$URL" best
ffmpeg -i myradio.ts $FNAME
とするとか。これで、 --hls-duration 時:分:秒 で指定された長さだけ録音するように (retry つきで) 頑張ってくれるはず。

(a) をするには
ffmpeg -u 3600 -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 2 -i "$URL" -vn $FNAME
とするとか。

ChatGPT 的には、(b) または (c) がおすすめらしい。 でも (b) はなんかゾッとする (録音もれを少なくするには時間を短くする必要があるけれど、 そうすると多数の中間ファイルが出来るわけだ)。

(a) または (c) で行こう。 さて、どちらを採用するか?やはり両方実験するものだろう。

FMチューナーとテープ・デッキを使ったエアチェックの時代と違って、 コンピューターが複数台あるのは普通の時代なので、 来週は従来のスクリプト (前番組の延長がなければほぼ確実に動く)と、 ffmpeg でリトライするのと、streamlink でリトライするのと、 3通りを試してみよう。

休日の暇つぶしネタでした。

(続く)

来週はスポーツ中継がないのか…実際的なチェックは先になるね。



桂田 祐史