« 東芝の一般白熱電球が生産終了だそうで | トップページ | PS3のHDD換装をした »

2010年3月21日 (日)

radikoの録音と携帯機器での再生

 radikoについて、今まで2回書いてきましたが、開始1週間経ちました。
 うちの場合は外部アンテナもあるのでわざわざPCできかなくても普通に聴け
るんで、そんなに利用してませんでした。
 ただ、録音するには音質もよく最初から圧縮されているのでファイルも小さく
結構便利なことに気がつきました。

 radikoでは現在フラッシュ形式(拡張子flv)が使われています。しかし中身は
HE-AACが使われており、これをそのまま再圧縮無しでm4a形式に変換が
出来ます。flvに対応している音楽プレーヤは少ないですが、m4aは殆ど対応
しているので、入れて試してみます。
 ただし問題なのはSpectral Band Replication(SBR)というAACの拡張形式を
使っている点で、一応互換性を持たせていることになってますが、PCでも対応
してないデコーダが結構あります。(どうも対応しているというツールや再生機器
でも上手く再生できないのもあるのでそれだけではないかも。)
 いまんとこフリーのツール類でまともに動いているのは、faac、それを内臓した
ffmpegとそれをDirectShow等で利用しているツール類です。Winampの内臓デコ
ーダもNGでしたffmpegを入れてDirectShow経由で使うと再生します。
foober2000ではSBRなしの互換モードで再生されます。
追加:GOM PLAYERでもFLVのまま再生可能です。

 ついで手持ちの携帯機器に入れて再生させてみると、第4世代iPod nanoは
NG(iTune登録の段階で跳ねられる。)、シャープの携帯電話SH-02AもNG(再生
不可と表示)。SONYのウォークマン NW-A846は再生可能(ただしSBR部分はデ
コードされない。9kHz帯域。取説にはHE-AACはfs=24kHzのみ対応とあるのでそ
のせいらしい。)、PSP2000 NG PS3 NGでした。(一応AACとしては認識するのだ
が。)
 今メインで使っているNW-A846でとりあえず再生できるのはポイント高いです。
ほかは全滅でした。ただ、余程CPUの余力がない限りはファームアップで対応出
来ると思うのですが。
 但し当然ですが、他のフォーマットに再エンコードすれば全て対応可能です。
あくまでそのまま(m2aへのコンテナ形式の変換のみ)再生できるかどうかという
ところでの状況です。

○録音ツール
 私は、"Radika"というツールを使っています。進化しタイマー録音機能もつき
ました。このソフトはストリームで送られてくるFLVファイルをそのまま保存します。

Radika

○変換ツール
 FLVのままでもMPCやVLC、GOM PLAYERで聴けますが、別なファイルやコ
ンテナ形式に変換する場合に使います。今使っているのは以下のものです。

・hugflash
 フラッシュ形式のファイルをDeMuxするツール。音声・映像に分離してくれます。
これを通すと、FLVのなかのAACファイルをmp4のコンテナ形式、m4aで出力しま
す。再圧縮するわけではないので、変換は非常に高速です。
 これを通すだけで、NW-A846ではそのまま制限つきながら再生可能になります。

Hug

・EcoDecoTool
 音声形式の変換ツールです。FLVもそのまま読めます。音声のDeMuxのみ
も可能ですが、拡張子aacのフォーマットになります。しかしそのまま読み込め
ないツールが結構あります。HugFlushでm4aにしたあと、aacに変換すると多
くのソフトで再生できるファイルになります。バイナリで比較すると各パケットの
ヘッダ?1バイトの数値のみが異なるのでそのせいみたいです。どうもAACにも
2種類あってMPEG2ベースとMPEG4ベースがあるようです。
WAVへのデコードは、ちゃんとHE-AACに対応していてフルデコードしてくれます。
 再エンコードも直接可能です。その場合、AACの場合はneroAacEnc.exe、
LameMP3にはlame_enc.dllが別途必要です。いずれもフリーで落とせます。
 いまはこれで直接LC-AAC128kbpsに変換して、ウォークマンで聞いています。
D&Dのみの簡単操作だし、そのほうがSBRに対応してない機器では音質がいい
ので。

Ecodeco

○HE-AAC
 Spectral Band Replication(SBR)に対応しているデコーダとしていないデコーダ
での周波数特性の差。していない場合:9kHz、している場合15.5kHzになりました。
ビットレートはデコーダでは46kbpsと出ますが、公称48kbpsとのこと。

対応しているデコーダ:fs=48kHz
Sbr

対応していないデコーダ:fs=24kHz
Sbr_3

○追加
 EcodecoToolでも、4時間のファイルを変換しようとすると、途中までの
ファイルになってしまいます。2時間番組は大丈夫なんですが。
 そのままMPCでは再生できるので、そのまま聴くか、変換したい場合
はいまのところ私が発見したには下記手順です。今後のソフト側での対
応に期待するしかありません。

(1)hugflashでm4aファイルに変換
(2)(1)をEcodecoToolの「映像から音声のみ抽出」でaacファイルにする。
(3)WINAMPで(2)を読み込み、DiskWriterでWAVに書き出し。
(4)(3)をEcodecoTool等でLC-AAC等に変換

(1)(2)の手順をするのはMPEG4ベースのAACファイルにするためです。
WINAMPはMPEG2ベースのAACフォーマットは正常に再生できないよう
です。4時間のファイルはVLCなんかでも再生不具合あるみたいです。

 上記めんどくさいですが、その後ffmpegを使えば、4時間ものも一度に
変換出来ました。ただaacへの直接変換は自分でコンパイルしないと
faacの使用に制限があるみたいです。wavやmp3へは簡単に出来ます。
Wavに一度変換して、編集後再エンコという使い方もできそうです。

○4/9追記
 radikoのセキュリティ強化?でプロトコルがrtmpからrtmpeに変更された
ようです。このためradikaで録音できなくなってしましました。ただし暗号
化されたわけではないので、radikaの開発の方の手が空けば、対応して
くれるかもしれません。
 とりあえず、情報を元に”rtmpdump”というコマンドラインベースのツール
を使って取り込み再生も出来ました。暗号化はされてないのは確かなよう
です。

rtmpdumpで1時間TBSを録音(オプション-Bがキャプチャ時間(秒))
rtmpdump -B 3600 -l 2 -v -r rtmpe://radiko.smartstream.ne.jp/TBS/_defInst_/simul-stream  -o tbs.flv

文化放送の場合
rtmpdump -B 3650 -l 2 -v -r rtmpe://radiko.smartstream.ne.jp/QRR/_defInst_/simul-stream  -o JOQR.flv

バッチファイルに書けば、バッチのダブルクリックで録音開始します。ファイル名
変えないと上書きしてしまいますので注意。なんかエラーが出ますがキャプチャー
はされます。(オプション指定が悪いのかも)

 ただこのソフトだけでは録音はできるもののかなり不自由なのは確かです。
 このツールはまだ試験段階のradikoの仕様が急に変更されても対応できるので、
予備にセットアップしておいてもよさそうです。

○4/10にrtmpeに対応したradika Version0.20が公開されました。
 接続リトライが実装されましたが、タイムアウトのデフォルト値1000msec(1秒)は短
すぎるようです。(サーバー負荷大)最大10秒しか設定できませんが、最大値である10000msecにしておくのが無難です。(もっと長いほうがいいみたいだが)

○4/24
 再びメンテナンス後仕様が変更され、radikaが使えなくなりました。
 とりあえず、rtmpdumpを使うしかないです。
radikaのHPのコメント欄がこのせいで荒れてますが、そんな中便利なバッチを公開
してくれた方がいます。ただそのままでは午前1時から9時までだと空白文字が入り
問題があるのでアレンジしてみました。(随時更新)

set time2=%time: =0%
set /a len=%2*60
rtmpdump.exe -r "rtmpe://radiko.smartstream.ne.jp"  -y "simul-stream" -a "%1/_defInst_" -v -o %date:/=-%-%time2:~0,2%%time2:~3,2%%time2:~6,2%-%1-%3.flv
-f  " " -B %len%

例えばこいつをradikorec.batに記述すれば、

radikorec.bat 局コード 録音時間(分) 番組名等  で録音できます。

例えばTBSの番組を61分録音するには下記にします。

radikorec.bat TBS 61 番組名

局コードはTBSラジオはTBS、文化放送はQRRです。
 開始日時や番組名がファイル名に入るので上書きが回避できます。これをOS
付属のタスクスケジューラに登録すれば、一応予約録音ができますので、とりあえ
ずこの方法を使うことにします。下記のように引数をつけて登録します。これで日時
と番組名をつけて予約録音できます。(XPです。)

Task_2 Task2

 仕様変更は、radikaに実装された接続リトライ機能の再接続処理が短すぎ、また
再接続時みんな同じソフトなので一斉に同時にリトライに行くためradikoのサーバ
に過負荷がかかり落ちるためと言われています。この辺はリトライ回数の制限や
リトライタイミングをランダムにする等考えられますが、接続仕様が決まってない
試験段階ですしある程度はまあ致し方ないと思います。
結局運営側はこのためradikaからの接続を遮断したようです。
 けっこうradika使っている人が多かったのでしょう。たしかに録音して携帯機器
で聴くには最高でした。接続できないときは今までできてもやってなかった放送波
の録音もしたくらいです。(通勤できいてたらそれが習慣に...)
 人気番組であれば、専用クライアント使っててもありえる状況なので、あまり
ソフト作者を責めるのはどうかと思います。ソフトの場合は再接続を実装すると
何も考えないと機械的にやってしまうので、それが問題なのでしょう。


 この辺が放送をインターネットでやる場合の問題だと思っているのですが、
電波の場合は受け側の数が無限大でも全く問題ないのに対し、ネットは有限
なんですよね。一斉に受信しだすと、サーバー方式ではすぐ回線やサーバーが
パンクしてしまいます。今後分散処理等の技術的な工夫が必要なんでしょうね。

○5/2
 radika0.23が公開されました。再び接続できるようになりました。またac3と
m4aへの変換録音にも対応しました。
リトライ機能はradikoのサーバーを考え暫く使用できないようにしたとのこと。
ただ、私はとりあえず録音はrtmpdumpを使い続けています。 
#タスクスケジューラだと待ち受け中録音ソフトを間違って閉じてしまうことがない
ので、決まった番組録音はこっちのほうが便利です。

○6/2
 rtmpdumpで、接続しているソフトを指定(偽装?)する欄が""で囲まれてい
ると繋がらないようにされたようです。何故か""を外すと繋がります。
rtmpdumpから何が送られているたのかわかりませんが。もしかしたら、今ま
でちゃんと送られてなかったのだろうか。
 radicaも進歩しているみたいなので、今後そちらの利用もいいかもしれませ
ん。

○6/8
 どうも最近ソフトウエアが返す、Flashのバーションを細かく見て弾いている
様子。頻繁にいじっているようで、うちでは今のところNull(空白)にして接続
しています。-f  " "にします。 ただ、また変更されるかもしれません。
2ch見ると何がOKで何がだめか書いてありますが、それもチェックされ変更
される可能性あり。
 尚、rtmpdumpはデフォルトで"LNX 10,0,32,18"をサーバー側に返すので、
明示的に何かバージョンを指定してやらないといけません。
 金曜またメンテが予定されてますが、どうなることやら。

○6/12
 一応メンテ後も大丈夫みたい。
 rtmpdumpを最新の2.2eに更新してみた。特にかわらないが、ファイルサイズ
表示の更新間隔が短くなった。radicaにしてもいいんだが、ソフト立ち上げなく
ていいのでなんとなくこのまま使っている。

|

« 東芝の一般白熱電球が生産終了だそうで | トップページ | PS3のHDD換装をした »

オーディオ・ビデオ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519113/47867667

この記事へのトラックバック一覧です: radikoの録音と携帯機器での再生:

« 東芝の一般白熱電球が生産終了だそうで | トップページ | PS3のHDD換装をした »