差分表示

  • 最後の更新で追加された行はこのように表示します。
  • 最後の更新で削除された行はこのように表示します。

#contents

*基本
-ライブ録音には事故がつきもの。ひたすら冗長化する
--確保できるマシンすべてで接続
--利用できるミラーすべてに接続

*WAV録音
-生ストリーム以外に、WAV録音もするといい
-ライブなど、開始直前までストリームの種類が分からないとき、何が来てもとりあえず対応できる
--SoundEngineで、録音ラインに「ステレオミキサー」を指定するとWaveOutがそのまま録音できる
--SoundEngineはファイルサイズに4GB制限があるので注意(約6時間)
*ustream
NetTransportで保存できるらしい。
チャットは内部がIRCなので、専用クライアントでログを取る。[[参考>http://usy.jp/ustream/index.php?IRC%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7Ustream%E3%83%81%E3%83%A3%E3%83%83%E3%83%88]]
*shoutcast
-Windows
--wstreamripper.exe
--Rip to single fileにするとファイル名が日付と時刻になって、cueファイルも作られるので便利
--OHRのように2日以上ある場合は、1日目終了後にreconnecting... の状態で放っておけば2日目に自動的に録音が始まる
--録画予約の方法がないのがネック。reconnecting...で放っておくのは失敗した

-Linux
---(
 # -s: Don't create a directory for each stream
 # -t: Don't overwrite tracks in incomplete directory
 # -o never: Never Overwrite tracks in complete directory
 $ streamripper http://listen.lolibot.net:8008/listen.pls -s -t -o never
---)

ライブDJの場合まずcompleteにはならない。
incompleteからサルベージする。

オプション -D でシーケンス番号つけられるけど、incompleteは対象外みたい。
タイムスタンプ順にソートすればOK。

録音予約するなら
---(
echo 'streamripper http://radio.speedycake.com:8000/OHR.m3u -s -t -o never' | at 8:45
---)
**手作業ストリーム修正メモ
-mp3,aacとも0xFFFxが同期ビット。xはビットレートなどのフォーマットによって違う。
-まずファイル先頭の同期を合わせる。これで再生できればOK
-途中でフォーマットが変わる場合は、そこで切り離す
--実例: FF F9 が途中から FF F1 に変わった
--どの同期ビット列が正解かは、当たりをつけてそのビット列で検索かけてみる
--1パケットは数百バイト程度なので、その程度の間を開けて検索ヒットが続けば正解
-切り離しはcygwin head/tailがシンプルでいい
--けど1バイトずれたことがある…計算ミスったかな
**TODO
-接続が途切れた場合のファイルマージ
--案1: バイナリレベルで、前後のファイルのオーバーラップ分を削除
--案2: mp3やaacのパケットを認識してその単位でちゃんと処理
-mp3とaacが途中で切り替わると、1ファイルに混在する
--ヘッダ検出 or ゴミ削除ツール探す
-aac同士でも1ファイルの途中でフォーマットが切り替わると、うまく再生できない
-パケット単位でのファイル分割
--試聴しながらできれば最高
**発展
-複数クライアントで録音して、いろいろマージして可能な限りデータを復元
--クライアントは別ツールのほうがリトライタイミングとか違ってデータが多く取れそう
-メタデータと時刻のペアのみを記録するクライアントがほしい
-mp3,aacファイル自体も、開始・終了時刻を押さえておきたい
--IRCのログとマッチング取ったりするのに便利