Hatena::ブログ(Diary)

TERRAZINE このページをアンテナに追加 RSSフィード Twitter

2007年05月15日(火)

[]ニコニコ動画を救うのは「BitTorrentニコニコ動画を救うのは「BitTorrent」を含むブックマーク ニコニコ動画を救うのは「BitTorrent」のブックマークコメント

「動画はトラフィックがやたらと大きくなってしまい、回線コストがかかるのでなかなか規模が広げられない。YouTubeのトラフィックコストは月間2億円、年間だと数十億円になると聞くが、年間の利益は1億5000万円程度。それでビジネスが成立するかというと難しいのでは」(ひろゆき氏)

ひろゆき氏、「ニコニコ」ヒットでも「動画は“来て”ない」 (1/2) - ITmedia ニュース

ニコニコ動画に限らず、YouTubeやStage6などの動画共有サイトにとって最も頭が痛いのが「転送量」。結論から言うと現状のインフラと技術で解決するならば、P2P技術である「BitTorrent(ビットトレント。以下BT)」を利用するのが一番だろう。

「BitTorrent」とは?

BTは、Winnyなどと同じP2Pを使ったファイル配信技術。特徴は「人気ファイルほど転送が速い」ことだ。動画配信にはこれが重要。人気の動画にアクセスが殺到すると、普通の配信では速度が低下したり、サーバーがダウンしたりしてしまう。ところがBTなら逆にダウンロードが速くなるのである。この長所を生かし、LinuxのISOイメージや、ネットゲームのダウンロードなどに利用されている。これは動画共有サイトにとっても長所だろう。

BTの弱点

BTを利用するにはBT用のクライアントソフトが必要だ。動画共有サイトの長所は、ブラウザのみで気軽に視聴できるところにある。インストールが面倒な別ソフトを用意するのでは、そのメリットが失われてしまうのだ。

しかしOperaならば標準でBT機能が搭載されている。これをFlash側からコントロールすることが出来れば、Operaは最強の動画クライアントになり得るだろう。ニコニコ動画のように、表示を拡大できないページでも、Operaならば普通に拡大できる。

ルータ側にBTの機能を持たせるアプローチもある。-有線LANルータ|MZK-04G|PLANEX

それからもう一つ。BTはファイルの先頭から順番にダウンロードされるわけではない。1つのファイルを多数のピースに分割して転送が行われる。このため、再生が始まるまでに時間がかかったり、再生が始まっても、ダウンされていない場所に来たら途中で止まってしまうことになる。これがBTが動画共有サイトに採用されない最大の弱点だ。

BTの技術を使った専用クライアント

以上の理由から、現状のBTクライアントを使って、動画共有サイトを運用するのは難しい。しかし、BTの技術を使った専用クライアントならどうだろうか。ダウンロード開始直後は、ファイルの先頭を優先的にダウンロードするようにすれば、後半は十分追いつける。追いつけなくなったら、今のストリーミングのようにバッファリングを待ってもいいし、その部分は飛ばして再生とかも出来るだろう。またシーダー(ダウンロード済みのユーザー)が少ない不人気ファイルは、普通のダウンロード形式に切り替えればよい。専用クライアントならば、こういった芸当もそんなに難しくないはずだ。そして、ダウンロードしていない空き時間に広告用のファイルを、裏でダウンロードしておき、バッファリング中に流すようにすればよい。一般的なCMの15秒もあれば、十分にバッファリングできるだろう。

ISPにP2Pキャッシュサーバーを設置

P2Pを使っても、配信元やユーザーは良くても、ISPの負担は減らない。これを削減する方法としては、ISPにP2Pキャッシュサーバーを設置するアプローチがある。

ハイデフ化でさらに肥大化するトラフィックに対抗するにはP2P以外無い

これまでYouTubeの320x240映像でも満足していたユーザーが、ニコニコ動画(SMILE VIDEO)の512x384の映像に慣れ、目が肥えてきているのを感じる。そりゃ、きれいな方が良いに決まっている。この流れは止められないし、それに伴いトラフィックの増大も避けられないだろう。

ライブ配信ならばマルチキャストという手もあるが、それだったら普通にテレビの方がよい。やはりネット動画のメリットは「オンデマンド」にある。これらの要求に応えるには、現状ではP2P以外考えられないだろう。

テレビにも普通にLAN端子が付いていて、HDDレコーダもネットワーク対応。これらのAV家電にP2Pで寝ている間にダウンロード、なんて使い方もそこまで来ているのだ。P2Pの活用に取り組まない限り、動画配信に未来はないだろう。

この記事へのコメントから

いつもありがとう。何度も言うけど、TERRAZINEはコメントがあって成り立ってる。頼りにしてるよ。

北米じゃ始まってるよね

え、どれのこと?

発想的にはDemocracy http://www.getdemocracy.com/ と同様か

これのことかな?

BitTorrentもサポートしているらしいのだけれども、やはりOperaについているようなおまけ程度の感じ。現時点では改善の余地は多いけれど、BitTorrentをサポートしているということ自体がチャレンジといったところでしょか。

Democracy:RSSを利用したインターネットビデオプレーヤー - P2Pとかその辺のお話

あー、うん。こんな感じ。これをもっと賢くした感じで。

もう面倒だからpeercastつかっちゃって一億総放送局化したほうがよくね?

賛成! なんだけど、Peercastは「放送」なんだよな。VODには向いてない。っていうか、できんわな。

CDSにはふれないのな

CDS(CDN*1)については、Stage6などがAkamaiを使ってるけど、Akamaiの一人勝ちで面白くないんだよなー。Coralは期待してたんだけど、あまり聞かないね。どうなん?

それにCDNだと、URI単位での処理だよね? つまり同じファイルが複数存在するような場合、具体的にはYouTubeのFLVをニコニコに転載したときとかは、キャッシュが効かない。でもハッシュで管理するP2Pキャッシュなら、別の場所にあるファイルでもキャッシュが効く。これって地味に効果あるんじゃないかな?

SkeedCast使えば?

おー、そんなのもあったね。これ、ワシの環境だとうまく動かなくて忘れてた。今も試したけどやっぱりダメ。なんでだろ。うまく動いてる人いる?

ストリーミングというか、リアルタイム再生を考えるとBT採用は困難っぽい。BTを使うなら、クライアント側(若しくはそこに近い側)で全キャッシュしてから再生するのがシンプルかつ応用が効くかも。

まずswarmに繋がるまで時間かかるから、即時再生は難しい、というかできないよね。だから最初の10秒は待ってもらう。その間はCMね。もちろん「チャンネルを変えられない」ようなのを。で、サービス会社が確実なSeedなわけで、そこからファイルの先頭を優先的に配信する。これは現状のBTではできないので、ピースの優先度管理ができるようにする。あとは普通のBTと同じでいい。人気が集中すればするほど速くなるから、ダウンロードが間に合わないことはまずないだろう。間に合わないようなら「不人気」なわけで、それは普通のダウンロード形式にしてもいい。ハイブリッドな感じで。

BitTorrentよりもストリーミングに向いたネットワークがいくらでもありますよね。例えば、Yahoo動画などでは採用されているのもそうです。

ストリーミングじゃなくてVODの話してんのにね。「BBブロードキャスト」のことを言ってるんだろうけど、これは現状ではライブストリーミングのみでVODには使えない。それに、このリンク先の図を見ると、Yahoo!BBという自前のアクセス網を持っているからできる話ではないの? 他のISPを含めて使えるのかいな?

めっさかぶってた(笑)

かぶりまくり(笑)

誰か招待してクレイ!

まなえまなえ 2007/05/15 14:04 つまりは、何も専務ということだな。

IKeJIIKeJI 2007/05/16 19:26 >ダウンロード開始直後は、ファイルの先頭を優先的にダウンロードするようにすれば、後半は十分追いつける。

そのようにプロトコルを変更すると、BTの良さである高速なダウンロードやダウンロードの負荷集中の緩和ができなくなってしまうと思うのですが、どうでしょう?
そもそも、BitTorrentとストリーミング再生は相性が悪いのではないかと思うのですが、どうでしょう?

TERRAZITERRAZI 2007/05/16 22:28 ファイルの先頭の方が要求頻度が高いのは分かるよね? 頭だけ見て、つまらないからやめるってケースがあるから。つまり、ファイルの先頭を持ったピアが多く存在すれば負荷分散になる。再生中はもちろん、再生後もリクエストの多いファイルはSeedし続けるようにすれば、相当効果がある。まぁ、そういうのもp2pキャッシュサーバーで解決できるんだけど。
BitTorrentとストリーミングの相性が悪いのは確か。これに関してはGOM playerのような、欠落があるファイルでも再生できるプレイヤーで何とかする。そもそもYouTubeのように「ファイルが存在する」タイプはストリーミングじゃないからね。

IKeJIIKeJI 2007/05/17 18:01 >つまり、ファイルの先頭を持ったピアが多く存在すれば負荷分散になる。
BitTorrentのプロトコル上、小さいブロックを大量の人に送るのは向いでいないと思いますが。

>BitTorrentとストリーミングの相性が悪いのは確か。これに関してはGOM playerのような、欠落があるファイルでも再生できるプレイヤーで何とかする。
何とかできる物でしょうか?
結局、無いデータは再生できないと思うのですが。それはエラー耐性があって、その部分をスキップできるとしても、無いデータは再生できませんよね。

>そもそもYouTubeのように「ファイルが存在する」タイプはストリーミングじゃないからね。
ストリーミングとは、データ列の最後まで転送が終わるのを待たずしてそのデータを使い初める方式だと思っていたのですが、
ファイルが存在するとストリーミングでない、というのは無関係であると思うのですが。

TERRAZITERRAZI 2007/05/17 19:01 >BitTorrentのプロトコル上、小さいブロックを大量の人に送るのは向いでいない
意味が分からない。P2Pとは小さいブロックを大量のピアとやりとりする技術だと認識しているが、違うの?
>無いデータは再生できません
だからスキップする。スキップがいやなら待てば良い。選択出来る分、現状より良い。
>ファイルが存在するとストリーミングでない、というのは無関係であると思う
ここで言うストリーミングとは「再バッファリング無しでシークできない」形式のことを呼んでいる。ファイルがあるからこそシークもスキップも出来る。
今のままの形式と、p2pによる形式のどちらが負荷軽減ができるかを考えてみな。そして、それよりも良い方法があるなら教えてちょ。

TERRAZITERRAZI 2007/05/17 19:17 訂正:上で「p2p」って言ってるのはBTのことね。

IKeJIIKeJI 2007/05/17 21:14 >>BitTorrentのプロトコル上、小さいブロックを大量の人に送るのは向いでいない
>意味が分からない。P2Pとは小さいブロックを大量のピアとやりとりする技術だと認識しているが、違うの?

すみません。説明が下手ですね。
2つの方式にはトレードオフがありますよね。
先頭から順番に取り出せるというメリットを破棄して、代わりに高速に全体に行き渡るようにしたのが、
BitTorrentの基本的な考え方だと思います。

全員の求めている物が巨大であれば、このトレードオフを使う事によって、
人によって、最初からダウンロードする人、後ろからダウンロードする人、色々な人がいるかわりに、
高速に全員が完全に揃ったデータを持つようにできる。

逆に、小さいファイルや、先頭だけを入手したい場合は、このトレードオフからメリットを得るのは難しいと思います。

>>ファイルが存在するとストリーミングでない、というのは無関係であると思う
>ここで言うストリーミングとは「再バッファリング無しでシークできない」形式のことを呼んでいる。ファイルがあるからこそシークもスキップも出来る。
そのように分類するとどのような事がわかるのでしょうか?

>今のままの形式と、p2pによる形式のどちらが負荷軽減ができるかを考えてみな。
少なくとも、ネットワーク負荷はBitTorrentの方が高いですよね。

>そして、それよりも良い方法があるなら教えてちょ。
BitTorrentよりもストリーミングに向いたネットワークがいくらでもありますよね。
例えば、Yahoo動画などでは採用されているのもそうです。

Operaが対応しているからと言うだけでBitTorrentを推進するのは安直なのではないでしょうか?

TERRAZITERRAZI 2007/05/17 21:26 なるほどよくわかった。本文をあと100回読んで書け。

IKeJIIKeJI 2007/05/18 15:14 100回読んだけど、わからん。

意味不明な文章になっているのは、すでに使われている単語を勝手に別の意味で定義して使っているからじゃないかと思う。
ストリーミングとか、VODとか、常識的に使われている用語は別の意味に変えない方がわかりやすくなるんじゃないかと思う。
VOD http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%87%E3%82%AA%E3%83%BB%E3%82%AA%E3%83%B3%E3%83%BB%E3%83%87%E3%83%9E%E3%83%B3%E3%83%89
ストリーミング http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0

そして、TERRAZIさんの定義での用語の意味がわからない。

私はVODのためにストリーミングをうまくやるにはどうしたら良いかというつもりで話していたのだけど、
>ストリーミングじゃなくてVODの話してんのにね。
と書かれているという事はTERRAZIさんのVODはTERRAZIさんのストリーミングじゃないのか。
だとすると、TERRAZIさんのVODとは何だろう。
TERRAZIさんのストリーミングは、
>ここで言うストリーミングとは「再バッファリング無しでシークできない」形式のことを呼んでいる。ファイルがあるからこそシークもスキップも出来る。
という事だから、TERRAZIさんのVODは、「再バッファリング無しでシークできる」形式なんだろうけど、
Gyaoとかは私はVODだと思っていたのですが、Gyaoはシークする時は、バッファリングしているから、TERRAZIさんのVODじゃないのかな?

どちらにしても、TERRAZIさんのVODがどんな物かわからないので、BitTorrentに向いている、向いていない、というのを言えません。
とりあえず、指摘できるのは、
>結論から言うと現状のインフラと技術で解決するならば、P2P技術である「BitTorrent(ビットトレント。以下BT)」を利用するのが一番だろう。
現状のインフラという観点で言えば、BitTorrentはインフラに対して優しい技術ではないので、向いていないのではないだろうか?

TERRAZITERRAZI 2007/05/18 16:12 ストリーミングと疑似ストリーミングの違いを理解しろ。
http://www.adobe.com/jp/devnet/flash/articles/create_flashvideo_03.html
http://www.adobe.com/jp/devnet/flash/articles/create_flashvideo_04.html

IKeJIIKeJI 2007/05/19 02:24 ストリーミングと疑似ストリーミングの違いを理解しました。

しかし、やはり、BitTorrentが疑似ストリーミングをするための物として現状のインフラに対して良い方法だとは思えません。

IKeJIIKeJI 2007/05/19 02:33 ところで、ついでに、VODとはどのようなサービスの事を差していますか?
私は、本文からYouTubeやニコニコ動画のような物を差していると思ったのですが、
これらは、どちらも先頭部分を入手できるまでの時間を速くしなくてはいけないアプリケーションであり、
全体を取得する時間を短くする事に特化しているBitTorrentのプロトコルには向いていないと思うのです。

ひょっとして、こちらでは、このような物ではなく、例えば、DVDをネットごしに転送してユーザーにDVD-Rで焼かせて販売するような、
大きなディスクイメージ全体をユーザーに送り届けるようなサービスを考えていますか?
それなら、BitTorrentにピッタリだと思います。

TERRAZITERRAZI 2007/05/19 13:23 100回読め。自分のは1000回読め。

Amazonギフト券 メールですぐに送れます。

0000 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
1945 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
1998 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
1999 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2000 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2001 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2002 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2003 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |