diary/Kojima
・「らじる☆らじる」のプロトコル変更
先週の後半はちと私用でバタバタしていたのでアナウンスが遅れてしまいました (_ _)
すでに、過去のページでもご指摘いただいているように、9/4 の午後くらいから、NHK「らじる☆らじる」の配信方法がRTMPからHLSに変更されたようで、従来使っていた rtmpdump を使うスクリプトでは録音できなくなりました。
# そう言えば、RTMPに変ったのも2年前のこの時期だっけか。2年に1回のペースで配信方法を見直しているのだろうか?
ざっと見た限り、radiru_rec.py で rtmpdump を使っているところを ffmpeg を使うようにする程度で対応可能なようなので、HLS版の radiru_rec.py を貼っておきます。
基本的にrtmpdumpをffmpegに変えた程度ですが、ラジオ第一は大阪放送局も指定できるようにしてみました(r1_kansai)。コードとhttp://www.nhk.or.jp/radio/config/config_web.xmlにあるURLを見れば他のチャンネルの追加も容易なので、他の地方局に興味ある方は追加してみてくださいませ。
なお、HLSに対応するためにはffmpegがAACとSSLに対応している必要があるものの、
Plamo-6.2のデフォルトのffmpegはSSLに対応していないのでご注意ください。
OpenSSLへの対応は、ビルドスクリプトの OPT_CONFIG に --enable-openssl --enable-nonfree を追加すればいいだけですが、ライセンスの関係でOpenSSLとGPLなコードを組み合わせると再配布できなくなるため、お手元で再ビルドしていただけると幸いです。
RTMPからHLSへ変更されたメリットとしては、ダウンロードしたファイルがそのままMP4のコンテナになっており、従来のようにFLVのコンテナから取り出す手間が省けるので、録音用スクリプトも少し短くなりました。
一方、大きなデメリットは、30秒前後の遅延が生じることで、冒頭30秒ほどは前の番組が入り、終了時刻も30秒ほど後ろにズレます。そのため、radiru_rec.py でも指定した録音終了時刻に1分ほどプラスするようにしています。
# その意味で RTMP(Real Time Messaging Protocol)はさすがだ、と再認識
なお radiru_rec.py を更新しても、以前に登録した予約が自動的に ffmpeg 対応になるわけではないので、お手数ですが古い予約はいったん全部削除して、再度予約し直すことをお忘れなく。
- ffmpegを更新する時は、libavformatとかlibswresampleのバージョンにご注意。安易に新しいバージョンに更新すると、これらライブラリを参照している他のパッケージが動かなくなることがあります。まぁ、たいていの場合は、新しいバージョンのライブラリから古いバージョン名へシンボリックリンクを張れば解決するようですが、たまに内部のシンボル名が変っていることもある。 -- kojima
- VPSでもなんなく録れました。感謝。 -- seiouken
- ファイル名にも ヨーロッパ夏の音楽祭2017 -第1回 ヴュルツブルク・モーツァルト音楽祭-_20170807.m4a みたいに手がかりが欲しいので、週末に radiru_titles.sql3からtitleをcsvで取り出してexcelで整形、 batファイルで一括renameしてライブラリにしています。感謝。 -- seiouken
- ffmpegだとリトライしてくれないらしく、長時間番組では失敗しがちですね..先週のベストオブクラシックの録音成功は五本中三本でした。多重化すべきか・・・ -- air
- あまり番組の長短とは関係なく、落ちる時は30分くらいの番組でも落ちますね。手元では9/16の20:00-22:00の間に録っていた3本(FMが1つとR2が2つ)と9/17の20:00-22:00に録ってた2本(どっちもR2)が途中で切れてました。昨日、ブラウザ(firefox)から「らじる☆らじる」で台風情報を聞いてた時も、2度ほど途中で切れて、いったん他のチャンネルを選んでから再度R1に戻らないと再生しない、みたいな現象も経験したので、多分トラヒックの輻輳とかサーバ側の問題な印象。ffmpegのオプション等で対応できるなら喜んで対応するのですが。。 -- kojima
- ffmpegのオプションでmax_error_rateなるものが存在するようです。とりあえず-max_error_rate 0.1を入れて様子を見てみます -- air
- "民放ラジオ局の放送をインターネットで同時に聞くことができるサイマルサービス『radiko(ラジコ)』は20日、来月2日正午から来年3月30日までの期間限定でNHKラジオを実験的に配信することを発表した。"だそうです --
- http://www.oricon.co.jp/news/2097560/full/ --
- 個人的には、radikoってヘンな地域制限があるからあまり興味無いんだよなぁ。。まぁCMのスポンサーの関係で地域限定が必要なのは理解できるんだけど、その枠組みをインターネットにまで押し付けようとするのは時代錯誤にしか思えない。。 -- kojima
- ffmpeg の出力を mplayer にパイプで渡したいのですが、どうしたら良いでしょう。rtmpdump はそのままで通ったのですが。 -- kat
- "mplayer にパイプで渡したい" をキーワードに検索してみたらいろいろありました。 -- 名倉
- 書き方が悪かったですね。パイプで渡すことはできるのですが seek できないとかのエラーになって、音を出すまで行かないのです。出力フォーマットの指定とかでできないものかなぁと。 -- kat
- いや、テーマはリアルタイムで聴きたいってことなのですが、できてる方はいらっしゃいます? -- kat
- ffplayじゃダメなの? -- こころ
- サーバが落ち着いたのか途中で切れることは減りましたが 気にならない程度の微妙なGAPがありますね -- seiouken
- 普段使っているDebian(wheezy)で試したところ、ffmpegは将来なくなるのでavconvを使えと言われました。avconvにしてもwheezyではDuration: N/A, bitrate: N/Aなどとなりうまく行きません。そこで、jessieでためしたところ、ffmpeg:は単にコマンドが見つかりませんと言われます。wheezyで調べていたのであわてず"libav-toolsパッケージ"を入れ、スクリプト内のffmpegをavconvに変えるとうまく行くようになりました。その他、環境に合わせてeuc-jpをutf-8に変更しています。ありがとうございました。 -- jada
- まぁ、ffmpeg嫌いはDebianの方針だからどうこう言うつもりはないけれど、ああいう風に縛りをきつくすると窮屈だと思うけどなぁ。。 -- kojima
- Debian 9からffmpegに戻っているようですが。 -- 名倉
- 今から来年の予定を入れるとエラーになるのですが… --
- それと最長何時間までという制限はあるのでしょうか --
- 年をまたぐ指定は認めていないので、来年分は 2018/1/1 みたいに年から指定してください。あと録音時間の制限は特に設けてないものの、どれくらい録れるかはネットワーク環境依存な気がする。 -- kojima
- 今年のバイロイト音楽祭は7日あったけど、3日は途中で切れていた。。 orz -- kojima
- ありがとうございます。 ウィーン・フィル ニューイヤーコンサート2018を予約できます。 --
- 追伸 よろしければ3日目のをお送りしましょうか --
- 追伸の追伸 途中で切れていた分全部をお送りしましょうか --
- google driveとか便利な手段で… --
- まぁ、バイロイトはまじめに聞いてるわけではないので、お気持だけありがたくいただいておきます (_ _) -- kojima
- 日をまたぐ場合 たとえば23:00から翌日の1:00までの場合 終了は23:00 25:00でよいのでしょうか --
- はい。一応、翌日一杯(47:59)まではその形式で指定できるようにしておいたはず。まぁ、番組表とか見ながら入力する場合は、終了時刻にも日付を指定して24時間制で入れた方が分かりやすい気はするけど。 -- kojima
- 語学講座みたいに、頭とお尻は定型になっている番組の場合、頭とお尻が多少欠けても問題ないんで、delay分を無視するようなオプションを追加しようかと考えている今日このごろ。。 -- kojima
- やっとDebian 9 にしました。ffmpegに戻っていましたので、標準のGNOME環境に4つのパッケージ(と自動追加)を追加するだけで動かすことができました。ffmpeg, at, mp4v2-utils, sqlite3 です。 -- jada