プログラミングはできないけど考えることくらいはできるので考えてみたい。追記歓迎。

▼概要 Edit

 Peercastの各配信動画のサムネイル画像を取得・収集・配布し、
動画配信を画像で一覧・選択できるようにするためには
どういった方法・問題があるかを明確にする。

目標 Edit

こういう画面からch選択ができること。

[s]200606061215-6514_631-24ch.jpg

追記歓迎 Edit

こうしたらええんでないか?という案や、
こういう問題があるからこうしてみてはなどのアイデア・提案がありましたら是非編集してください。

作ってみようという技術者様、協力してもいいというサーバー提供者様お待ちしております。

▼課題 Edit

  • サムネイル解像度と容量
  • 必要な帯域
  • (未解決)配信ストリームからの画像キャプチャ方法
  • (未解決)サムネイル画像の収集方法
  • (たぶん解決)サムネイル画像の配布方法
  • (未解決)サムネイル画像の受信と表示

特に重要な課題 Edit

・ツールを作る人

	こんな大がかりなの私には無理。

・鯖を用意する人

	常時起動のPCと十分な帯域が必要。

想定している作業一覧 Edit

配信者がすること Edit

  • サムネイル取得・送信ツールの導入と起動

技術者がすること Edit

  • サムネイル取得・送信ツールの作成
  • サムネイル受信・peercast用ストリーム変換送信ソフトの作成

鯖管がすること Edit

  • Peercastの常時起動
  • サムネイル受信・peercast用ストリーム変換送信ソフトの導入と起動
  • サムネイルデータを入出力するだけの帯域の確保と維持

▼サムネイル解像度と容量について Edit

圧縮アルゴリズムはこなれたJPEGを選択。
最も圧縮し辛そうなカラーの砂嵐画像をイメージ検索でぐぐる。
ttp://gisouken.s206.xrea.com/l/rijyumu_suna_l.jpg
大きめのが見つかったのでIrfanViewで320x240と160x120サイズを切り出す。
圧縮率設定を変えて保存し、サイズを見てみる。

容量(B)  画像種別と圧縮設定  備考
230,454 カラー砂嵐320x240.bmp 無圧縮
 29,152 カラー砂嵐320x240-jpg30%.jpg
 37,711 カラー砂嵐320x240-jpg50%.jpg
 46,914 カラー砂嵐320x240-jpg70%.jpg ★
 54,878 カラー砂嵐320x240-jpg80%.jpg
 69,076 カラー砂嵐320x240-jpg90%.jpg
 99,997 カラー砂嵐320x240-jpg98%.jpg

 57,654 カラー砂嵐160x120.bmp 無圧縮
  7,619 カラー砂嵐160x120-jpg30%.jpg
  9,750 カラー砂嵐160x120-jpg50%.jpg
 12,101 カラー砂嵐160x120-jpg70%.jpg
 14,082 カラー砂嵐160x120-jpg80%.jpg ★
 17,694 カラー砂嵐160x120-jpg90%.jpg
 25,638 カラー砂嵐160x120-jpg98%.jpg

    406 単色160x120-jpg70%.jpg 最低サイズ参考
    736 単色320x240-jpg70%.jpg 最低サイズ参考

★印が画質とサイズのバランスの良さそうな設定。
320x240なら50KB程度、160x120なら15KB程度で十分なようだ。
サムネイル画像なのだから、320x240も要らないか。
160x120程度で十分かもしれない。

▼必要な帯域 Edit

暫定仕様 Edit

	・サムネイル解像度	160x120
	・サムネイル想定容量	15KB		(320x240で行う場合は4倍すればおk)
	・キャプチャ間隔	30分に一枚
	・想定チャンネル数	200		(日曜昼間で110ch程度なのでその倍)

計算 Edit

	サムネイル一回分のデータ量は
		15KB * 200ch = 3000KB ≒ 3MB
	これが30分ごとに繰り返されるので、
	余裕を持って、20分で全chのサムネイルデータを受信完了するためには
		3MB / 20分 = 3*1024KB / (20*60sec) = 2.56 KB/s *8(bps)= 20.48 Kbps

結論 Edit

	余裕を持たせ、25Kbps程度あれば十分である。

仕様変更パターン例 Edit

	15分おきの場合		50 Kbps (10分で受信完了)
	320x240でやる		100 Kbps (20分で受信完了)
	320x240でかつ15分おき		200 Kbps

備考 Edit

	・上記計算は200chの場合である。現在は100ch〜150chで、
	 すべての配信者/視聴者が導入を希望するとは限らないから実際には半分程度で済む。
	・PCP Skippingが発生することを想定して一部が欠けても受信側で訂正可能なようにするため、
	 冗長性を持たせるのがいいだろう。

▼配信ストリームからの画像キャプチャ方法 Edit

キャプチャ元の選択肢(どこでキャプチャするのか) Edit

	・peercastからPCP
	・peercastからwmv ★
	・WMEから
	・再生しているプレイヤから

★のが一番無難そうだ。

想定される問題など Edit

	・wmvとして一定秒数のみ受信(視聴)してプレイヤで内部的に再生しキャプチャするとか。
	・キャプチャ時点で黒画面かどうかをチェックして何も映っていないサムネイルを回避する。
	 暗すぎる画像とかをここで回避。

誰がキャプチャするのか Edit

すべてのchを一人でスキャンしてサムネイル画像を取得しようとすると
接続と切断を繰り返すことになり、迷惑になる。
・配信者がキャプチャツール込みの独自peercastを使用する。

	○:サムネイルサーバーでの受信量が必要最低限に抑えられる。
	×:ツールを導入していないchのサムネイルが表示されない。

・視聴者がキャプチャツール込みの独自peercastを使用する。★

	○:視聴者のうち誰か一人でもツールを導入していればそのchのサムネイルを取得できる。
	×:視聴者が少ない場合、配信者が導入しなければならない。
	×:配信者本人による送信ではないため、クラックによるサムネイル改竄の可能性がある。
	×:サムネイルサーバーでの受信量に無駄が出る。
	※配信者も含めることができる。

後者でよさそうだ。

作業量のどこに重きを置くか Edit

できる限り多くのchのサムネイルが集まるような形にしたい。

配信者・リスナー・技術者・鯖管のどこに作業量の重きを置くか。

配信者からしかサムネイルを送信できない場合 Edit

	視聴者からもサムネイルを送信できるようになるのと比べると、
	サムネ無しになる可能性が高い。

サムネイル自動取得ツールを視聴者が使う Edit

peercastと共に起動しておくだけで、視聴者が見ている(リレーのステータスがRECEIVE状態)chのサムネイルを自動取得し送信するツールの場合

	・ツールを制作する技術者への負担が大きい。
	 受信のためのサーバー側ソフトの開発も必要になる。

ツールを作って配信者が使う Edit

	起動しとくだけでサムネイル自動更新するツールを配信者が起動すればいいんじゃ。

▼サムネイル画像の収集方法 Edit

問題は動画のサムネイルをどう「集めるか」。
そもそも集めなくてはならないのか? → 一覧性を確保するためには集めなければいけない。
特定の誰かに送信するとなると、サーバー提供者が必要になるし、受信帯域も馬鹿にならない。
サムネイルをうpしていいかという問い合わせだけでもものすごい受信量になりそうだ。

データセット Edit

1つのchの1つのサムネイルデータ構造を考える。

	・ch ID
	・キャプチャ日時
	・サムネイル画像データハッシュ値
	・サムネイル画像データ

上三つはヘッダとする。これらを1単位としてデータを収集・配布する。

付加情報として

	・解像度情報
	・codec情報

なんてのを追加てみるのもいいかもしれない。

サムネイルサーバーシステム案 Edit

アップローダ型

	・画像アップローダタイプ。
	・データセットのヘッダを見てch IDごとの画像を「置き換える」
	・集めたデータはPCRawと同じ応用方法で配布。
	・一定時間更新のないサムネイルデータは自動削除

問題 Edit

・視聴者側でツールを起動させ、サムネイルを取得した場合、

	視聴者数が多ければ多いほど、サムネイルサーバーに同じchで
	複数のサムネイルデータが届くことになり、帯域の無駄である。
	
	[解決法1]キャプチャ時間を照合して30分以内のキャプチャデータは受け付けないようにする。
		キャプチャ間隔にかかわらず常に最新サムネイルを収集する場合には
		サムネイル画像データハッシュ値を参考に受信するかどうか決める。

Peercastが、書き込み可能なストリームを扱えればいいのになぁ。
しかしそうすると最新版をどう判定するかが問題か。別な問題がいろいろあるか。

▼サムネイル画像の配布方法 Edit

送信側: Edit

ch情報をpeercastのストリームとして流すPCRawと同じ応用方法で、サムネイルデータを流す。

独自形式とか面倒だろうからjpgファイルそのまんま流してしまうとかどうだろ。
ファイル名にch IDとキャプチャ日時とハッシュ値書いて「index_pts.jpg」とでもして1つのchにする。
てかファイルを流せるのか?

受信側: Edit

専用ツールで受信し、展開・表示する。
chデータと関連づけてサムネイルクリックで再生できるようにするなどして利用する。

pcmpとかpcypとかの作者の対応による。

▼その他情報のスクラップ帳 Edit

システムを完全にPeerCastから分離させる方法とか Edit

サムネ画像を各自が任意のFTP鯖(自鯖可?)などのスペースへアップロードして、サムネはリスナが各自取ってくる方法。管理鯖はテキストデータのみ扱えば良いので負荷がかからない。既存のYPに画像の場所のURLを盛り込めれば新しい鯖は要らない可能性有り。

159 名前:名無しのリスナー[sage] 投稿日:07/09/16(日) 16:31:27 ID:htInSxeW
 >>128
これ実装するにはPeerCast外のツールに頼った方がいいわ

例えば
1.デスクトップの一部画像を定期的に任意のFTP鯖とかにうpするソフトとかを使う
2.配信者はチャンネル情報(名前とかチャンネルIDとか)と画像のURLを(*特定の場所)に登録する
 *上記の情報の管理場所はPHPなどで動くイエローページっぽい物を作るとかなんなりしてくれ
3.リスナは管理鯖へアクセスして、Thumbnail.txtみたいなテキスト情報を取得する
4.取得したデータを元に、GUIアプリ上でサムネ見てチャンネル選べるソフトとか
 HTMLに出力してブラウザから選ぶようなCUIベースのアプリとか使う

1のアプリは似たようなのがあった気がするし流用できるかもしれない
2のチャンネル情報登録は手動でやると面倒だから、簡単な支援ツールでも誰か作ってくれ
3の管理鯖は扱うテキストデーターの量は、更新間隔によるけどイエローページ以下で済むはず。
4のツールは、鯖がhtmlで出力してくれればブラウザ上で見れるはず。

最終的には、配信者、リスナが全部ブラウザ上で扱うことが出来る物が出来そうな気がする
まぁ10分くらいで考えたハリボテのアイデアだけど

配信者がすること Edit

  • デスクトップタイマーキャプチャソフトの導入と配信時の同時起動
  • サムネイル画像うp先の確保(どっかのフリースペース?)
  • サムネイル情報鯖へのch情報とサムネイル画像URLの登録

技術者がすること Edit

  • 鯖用のch情報とサムネ画像urlを登録できる場所を作る。
  • index_thumbnail.txtを吐けるようにする。
  • サムネ画像とch情報を整理してhtmlに出力できるようにするとか。
  • (pcmpやpcypの作者)上から情報とってきてサムネイルでch選択できるようにする。

鯖管がすること Edit

  • テキスト情報を入出力するだけの帯域の確保と維持

コメント Edit

コメントはありません。 コメント/Peercast Thumbnail System?

お名前:

添付ファイル: file[s]200606061215-6514_631-24ch.jpg 194件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-11-06 (土) 10:53:20 (2932d)