Webページにビデオを埋め込みたい。
フラッシュは膨大な数のプラットフォームで利用できないため、使用したくありません。
HTML5はまだ標準的ではないので、使用するのは気が進まない(標準ですが、ほとんどの人はそれをサポートするブラウザーを持っていません)
他に方法はありますか?それとも、HTML5と、ブラウザをアップグレードするように指示する巨大なバナーに固執する必要がありますか?
Webページにビデオを埋め込みたい。
フラッシュは膨大な数のプラットフォームで利用できないため、使用したくありません。
HTML5はまだ標準的ではないので、使用するのは気が進まない(標準ですが、ほとんどの人はそれをサポートするブラウザーを持っていません)
他に方法はありますか?それとも、HTML5と、ブラウザをアップグレードするように指示する巨大なバナーに固執する必要がありますか?
HTML5ビデオを、サポートされていないブラウザのフォールバックと組み合わせる方法はいくつかあります。いくつかの具体的な解決策が示されています。
一例として、CamenDesignのVideofor Everybodyがあります。これは、HTML5に準拠しており、IEには条件付きコメントを使用し、古いブラウザーにはネストされたオブジェクトタグを使用します。これは、標準に準拠し、下位互換性があり、将来にわたって利用できるものでなければなりません。
HTML5は標準ではありません。ドラフトです。おそらくいつか標準になるでしょう。おそらく最初に変わるでしょう。
ページにビデオを埋め込みたい場合は、少なくとも今日では、Flashがサポートされている中で最も優れたオプションです。Flashを持っていない人(または専用のビデオプレーヤーでビデオを見たいだけの人)のためのオプションとして、通常のダウンロード可能なバージョンへのリンクを提供します。
ブラウザをアップグレードするように人々に指示しても、大した助けにはなりません。私の知る限り、安定版リリースでビデオをサポートしているブラウザはFirefoxだけです。Chromeは、開発バージョンを除いてそれをサポートしていません。Operaがサポート付きの安定したビルドを生み出したとは思いません。Microsoftは確かにまだInternetExplorerに追加していません。Safariよくわかりません。
本当にFlashを避けたい場合は、HTML4.01オブジェクトを使用できます。
<object data="myVideo.ogv" type="video/ogg">
<!-- fallback content here -->
</object>
…そして、ユーザーがインストールされたビデオを処理できるプラグインを持っていることを望みます。
コルタードに出くわしたばかりです。これは、OGGを再生するJavaアプレットです。HTML5のステータスをチェックすることで私はそれに出くわしたので、私は実際にこれについてDavidDorwardに感謝しなければなりません。Firefoxは、次のようなものを使用することを提案しています。
<video src="my_ogg_video.ogg" controls width="320" height="240">
<object type="application/x-java-applet"
width="320" height="240">
<param name="archive" value="cortado.jar">
<param name="code" value="com.fluendo.player.Cortado.class">
<param name="url" value="my_ogg_video.ogg">
<p>You need to install Java to play this file.</p>
</object>
</video>
Javaは、フラッシュよりもはるかに多くのプラットフォームで利用できます。この場合は、HTML5へのフォールバックにすぎません。
(ソース)
少し遅いとは思いますが、VLCをご覧になりましたか?
ウェブサイトに埋め込むことができ、Windows、Mac OS、Linuxで動作し、無料のオープンソースで、多くのビデオ/オーディオ形式をサポートしています...
欠点は、再生/一時停止/音量設定/ ...機能を備えた優れたGUIがないことです。これらは、自分で作成する必要があります。
あなたはこの記事を見ることができます:http ://www.videolan.org/doc/play-howto/en/ch04.html#id310965
多くの大規模なWebサイトがFlashを使用してビデオを再生しているのはなぜだと思いますか?おそらくそれが利用できないためではありません...もちろん、Webページにビデオコンテンツを埋め込むための代替手段がありますが、利用可能性が問題である場合は、Flashが現時点で最善の方法です。
xHtml + RDFaに非常に興味があり、HTML5ブラウザーではなくブロックせずにHTML5ブラウザーでxHtml 1.0の厳密なドキュメントでビデオを再生する方法を見つけたので、この問題に取り組みました。
ここでjQueryプラグインを公開しました:https ://github.com/charlycoste/xhtml-video
そしてここにデモがあります:http://demo.ccoste.fr/video
実際、これはHTML5タグを使用するよりもはるかに強力ではありませんが、少なくとも...それは機能します!
このソリューションはjavascriptとcanvasに依存していますが、タグを使用することで適切に機能を低下させることができ<object>
ます(これが私のjQueryプラグインの機能です)。
私がすることは実際には簡単です:
メモリ内に新しいビデオ要素(タグではない)を作成しましたが、それをDOMドキュメントに追加しません:
var video = document.createElement('video');
メモリ内に新しいcanvas
要素を作成しましたが、それをDOMドキュメントに追加しません。
var canvas = document.createElement('canvas');
新しいimg
要素を作成し、それをDOMに追加します。
// var parent = ... ;
// var width = ...;
// var height = ...;
var img = document.createElement('img');
img.setAttribute('width', width);
img.setAttribute('height', height);
parent.appendChild(img);
ビデオの再生中(video.play()
)、キャンバスに各フレームを描画します(DOMに追加されていないため、表示されません。これにより、DOMは有効なxhtml 1.0ドキュメントのままになります)
canvas.getContext("2d").drawImage(video, 0, 0, width, height);
最後にtoDataURL()
、要素のメソッドを使用しcanvas
て、フレームのbase64でエンコードされた画像を取得しsrc
、要素の属性に配置しimg
ます。
img.setAttribute('src', canvas.toDataURL());
これを行うことで、JavaScriptオブジェクトにDOMからビデオを再生させ、各フレームをimg
DOM要素にプッシュします。したがって、ブラウザのHTML5機能を使用してビデオを再生できますが、HTML5ドキュメントは必要ありません。
また、ブラウザにHTML5機能がない場合、または使用されているコーデックを処理できない場合は、ネイティブの<object>
動作にフォールバックします(通常、ブラウザはVLCなどのプラグインを探します...)
また、ビデオを再生する方法がない場合(プラグインがない場合)、<object>
タグ内に提供されている代替コンテンツが使用されます。
パフォーマンスの側面:プロセスの消費量が非常に多いため、再生がちらつくことがあります...これを回避するには、次のようにjpeg圧縮を使用してレンダリング品質を下げることができます。canvas.toDataURL('image/jpeg', quality)
ここquality
で、は0〜1の値です。