web-dev-qa-db-ja.com

HTML5プレーヤーでAmazon S3 / CloudFrontを使用してビデオをストリーミングできますか?

HTML5ビデオプレーヤーを使用してビデオをストリーミングしたい。これはS3/CloudFrontで可能ですか? AmazonはRTMPストリーミングプロトコルを使用しており、HTML5のvideoタグはRTMPをサポートしていないことを理解しています。 HTML5プレーヤーでビデオをストリーミングする方法はありますか?

31
at.

@Wayne Koortsが投稿した内容の多くは、良い答えの基礎となります。切断されたように見えるのは、プログレッシブダウンロードを介してビデオを「ストリーミング」できることです。彼が示したように、これはhtml5互換のビデオファイルで動作します。

Mp4ファイルのプログレッシブダウンロードで最高のパフォーマンスを得るには、ファイルの先頭にmoov atomメタデータが表示される必要があります。mp4ファイルにこのプロパティがあることを確認してくださいqtfaststartプログラムがffmpegに含まれている理由。

もちろん、プログレッシブダウンロードは「ストリーミングメディアサーバー」ではありません。ストリーミングメディアサーバーは、次のようなさまざまな機能をサポートするように設計されています。

  • セキュリティとDRM
  • 適応ストリーミング/インターリーブ(特定のファイルにインターリーブされた複数のビットレートのサポート)
  • 探している

ここで表明されている特定の懸念は、シーク機能であると思われます。たまたま、これはhtml5およびs3/cloudfrontでサポートされています。

紛らわしいのは、ビデオファイルのクラウドフロントにはいくつかのオプションがあるということです。 1つのオプションは、ライセンスされたAdobe FMSサーバーのネットワークによってファイルを配信することです。ここで、RTMPの使用に関する混乱が生じます。ただし、これは単なるオプションです。ファイルは、標準の「ダウンロード」形式でクラウドフロントに配布でき、バイト範囲の実装と一般的に疑似ストリーミングとして知られているもののサポートにより、シークプロパティがあります。

「疑似ストリーミング」という用語については多くの混乱があるようですが、html5の場合は、HTTPサーバーが1.1仕様をサポートしているという要件に過ぎません。シークするとき、クライアントはバイト範囲リクエストを送信し、サーバーはファイルのその部分を配信する責任があります。

言い換えれば... html5プレーヤーでのシークは、HTTP 1.1互換であるため、クラウドフロントサーバーで機能します。

ストリーミングサーバーが提供する他の機能のいくつかに関しては、RTMPおよびFMS互換サーバーの使用に代わるものとして、「H264ストリーミング」またはMPEG-DASHの要素を実装したさまざまな競合サーバーがあります。多くのフラッシュベースのプレーヤーがこれらの機能をサポートしています。これらの機能は、単純なシーク以上のものです。 JWPlayerとFlowplayerは、機能の一部またはすべてをサポートするプレーヤーの2つの例ですが、HTML5のビデオプレーヤーはこれらの機能のいずれもサポートしていません。詳しくは http://h264.code-shop.com/trac#H264StreamingModuleIntroductionversion2 をご覧ください。

それがあなたにとって十分な混乱ではない場合、Appleは独自の「HTTP Live Streaming」プロトコルを実装しました。これはm3u8としても知られ、iosおよびquicktimeでサポートします。さまざまなデバイスをサポートします。

これが物事を少し明確にするのに役立つことを願っています。

59
gview

最近私が成功したのは、S3でホストされるビデオで Video.js HTML5プレーヤー (オープンソース)ビデオプレーヤーを使用することです。基本的には、ビデオをS3バケットにアップロードするだけで、ページのコードは次のようになります(Video.js CSSおよびJSファイルをページに含めた後)。

<video id="example_video_1" class="video-js vjs-default-skin"
    controls preload="auto" width="1600" height="900"
    poster="http://mys3bucket.s3.amazonaws.com/videoImage.jpg"
    data-setup='{"example_option":true}'>
    <source src="http://mys3bucket.s3.amazonaws.com/myvideofile.mp4" type='video/mp4' />
    <source src="http://mys3bucket.s3.amazonaws.com/myvideofile.webm" type='video/webm' />
</video>

posterは、動画の読み込み中または動画の再生中に動画プレーヤーに表示する静止画像です。 <source>タグを使用すると、動画の数だけリンクできます。より多くのフォーマットは、異なるプラットフォーム間でのより良いサポートを意味します(たとえば、一部のVanilla LinuxディストリビューションはMP4を再生できないなど)。

Video.jsクイックスタートガイド こちら をご覧ください。

S3とCloudFrontのどちらを使用するかを決定する場合:多くのデータを保存する場合はコストが安くなるため、IMHO S3は一般的にビデオに適しています(CloudFrontはすべてのエッジサーバーにすべてのコピーを配布するため、それは多少オプションを介して)。ただし、速度のためにCloudFrontを好む人もいますが、CloudFrontは主に、サイトのグラフィック、スタイルシート、JSファイルなどの超高速応答時間が必要なコンテンツ配信ネットワークとして意図されているため、トレードオフに依存しますあなたのニーズに。動画がすべて非常に小さい場合は、CloudFrontが実際にニーズに適していることがあります。

コストをより明確に分析するために、Amazonの monthly cost calculator を使用できます。

13
Wayne Koorts

私は世界的な制作のためにいくつかのビデオに取り組んでいます。コストを抑える必要がありますが、非常に複雑なシステムを安全に提供するために、簡単にスケーラブルで十分な機能を探しています。 AWSは素晴らしく、数年間使用してきたので、S3バケットは素晴らしいと思います。制限は無料です。はい。彼らは確かに、ビデオをストリーミングしていると信じているものを提供することに成功しています。 S3に格納されており、ページの読み込み時にすぐにJWPlayerで再生され、ジッターや遅延は発生しません。

ストリーミングビデオの描写のいくつかは曖昧であり、私にとっては依然として混乱を招くことがわかりますが、@ gviewは素晴らしい仕事をして、より深い刺激を与えてくれました。その複雑さには興味がありますが、もしあなたのアジェンダがそのビデオを成功させることなら、HTML5があなたの答えだとは思いません。私の知る限り、SOAP、REST、HTTP、さらにはHTTPSもサポートされ、プロビジョニング可能です。 AWSのドキュメントも注目に値し、非常に役立ちます。ここに開始リンクを添付します。

@ user2352370:JWplayer ..私は未定です。中間層のメンバーシップを購入しましたが、上記のWayne Koortsを読んで、さまざまな理由でJSvideoの方が優れていると思います。払い戻しを受けることができれば、それで作業します。 JWvideoには、ビデオに提供されているスタイリングを超えて、即時の価値はありません。私にとってJWvideoの価値は、少なくともビデオのスタイリングに限られていると思います。 JSVideoを使用して、複数のデバイスとブラウザーの種類に対してさまざまなフォールバックを簡単に作成できます。 JSVideoをスタイルすることもできますが、JWvideoのシンプルさのために何か言いたいことがあります。おそらく、今後数か月のうちにビデオポストが猛攻撃されるために必要になるでしょう。

JWVideoとJSVideoの両方が機能します

Do無料のAWSアカウントを作成し、無料でサービスを試してください。 RackSpaceやHost Gatorのようなプロバイダーをしばらく扱ってきた場合、それはかなり目を見張るものがあります。
AWS無料利用枠ホームページ

S3のAWSドキュメントサイト

1
Ryan H.

自分のサイトでVideoJSを使用してビデオをホストするAS3を探していたので、あなたの質問を見つけましたが、VideoJSのサンプルコードを見ると、リンクがZenCoderという会社にあることに気付きました- http:// video-js.zencoder.com/oceans-clip.mp4

http://zencoder.com/en/

私はZencoderとは関係ありませんが、クラウドベースのビデオホスティングを探しているかどうかを検討する価値があると思われます。

0
Kevin Monk