2016-10-04 4 views
-1

ピクセル操作を使用してJavaScriptでフルHD動画にフィルタを適用しようとしています。javascriptを使って良いフレームレートを得るには?

私は隠されたキャンバス、ウェブの労働者とtransferablesを使用してデモを作成しました:

http://lab.jure.it/ww/ww.html

結果(短時間でウェブ労働者にブラウザのタブがクラッシュを使用して、ビデオが非常に低いパフォーマンスを持っていることです〜5fps)。

「Webワーカー:0」を選択した場合、パフォーマンスは向上し(〜15fps)、タブはクラッシュしません。

私はそれについて何ができますか?目標は、SVGまたはCSSフィルタを避けて良いフレームレート(〜30fps)を得ることです。

ありがとうございました。

+0

は小さい画像上の画素の操作を行い、または最大globalCompositeOperationの代わりに、ピクセル操作で使用します。あなたが望む効果を知らずに、あなたをもっと助けるのは難しいです。 – Kaiido

+0

デモではグレースケールを使用していますが、 "フィルタ"は何でもかまいません。ぼかし、クロマキー、rgbチャンネル調整、透かし入れ、ピクセル操作を行うことができるすべての機能を備えています。 – Killy

+0

@キリーあなたの問題を絞り込む必要があります。誰もあなたのプロジェクトを掘り下げてあなたのパフォーマンスをベンチマークすることは本当に期待できません。しかし、とにかくWebGLを使うことを強くお勧めします。 PixiJSフレームワークには、FPSの高いフィルタを表示したデモがあります。http://www.goodboydigital.com/pixijs/examples/15/indexAll.html –

答えて

0

すべてのピクセルをループしてCPU上で変換することはお勧めできません。これがGPUの目的です。これまでは、Flashのような厄介なものを使用しなければならないということです。

幸いにも、新技術が登場し、ほとんどの一般的なブラウザでグラフィックアクセラレーションが利用可能になりました。これはWebGLと呼ばれ、あなたはこれらのもののためのグラフィックカードを利用することができます。

WebGLの内部の秘密をすべて知りたいのでない限り(かなり複雑です)、2Dアニメーション用に設計されたPixiJSフレームワークを使用することをお勧めします。

あなたがここに彼らのフィルタリングデモを見ることができます:http://www.goodboydigital.com/pixijs/examples/15/indexAll.html

よりデモや例がここにある:https://pixijs.github.io/examples/#/basics/basic.js

+0

ありがとう、私はこれを解決策としてマークしていますが、あなたのコメントはすべて役に立ちます:) – Killy

+0

Canvas2d APIもGPUに転送します。回避すべきことの1つは、getImageData/putImageDataです。 – Kaiido

+0

@Kaiidoよく、静止画像の処理方法(GPU/CPU)はまったく関係ありません。ここで必要なのは、何らかのアニメーションです。 –

関連する問題