3

セクションからセクションへのトランジション ビデオとして巨大な FLV を使用する大規模なフラッシュ サイト (AS3) を構築しています。FLV は 1280x800 で、1680x1050 にスケーリングされており (その多くは小さい画面のユーザーには表示されません)、それぞれ約 5 ~ 8 秒です。On2 の高解像度コーデック VP6-S を使用してビデオをエンコードしています。再生は、ネイティブ FLV プレーヤー、Perian 搭載の Quicktime、および AS3 で構築された単純な概念実証 FLV 再生アプリでかなり良好です。

私が抱えている問題は、実際のサイトのコンテキストでは、再生がスムーズではないことです。フレームレートは本来あるべきほど良くありません。さらに問題なのは、時折ぎくしゃくしたり、フレームが落ちたりすることです (ビデオが 4 分の 1 秒ほど長く一時停止することもあります)。私の推測では、これは Flash Player のガベージ コレクションが原因で発生していると思われます。ガベージ コレクションは非決定論的に発生するため、テストと制御が困難です。

FLVPlayback の単一のインスタンスを使用してビデオを再生しています。もともとNetStreamオブジェクトなどをそのまま使っていたのですが、このような理由でFLVPlaybackに切り替えました。FLVPlayback (または、より一般的に言えば、高解像度の Flash ビデオ) でこのようなぎこちない動作を経験した人はいますか? ここで GC が原因であるというのは正しいのでしょうか?もしそうなら、これらのシステム集約型のトランジションの再生中にそれを防ぐ方法はありますか?

4

3 に答える 3

4

FLV / F4V再生のジャーキネスは、ガベージコレクションの結果ではありません。ビデオは完全にアンロードされるまで実際にメモリに保持されるため、ガベージコレクションはまったく行われません(ビデオをガベージコレクションに配置するなどの非正統的なことを行った場合を除く)。 cacheAsBitmapがtrueに設定されたコンテナ)。

特定のFLV機能(daidaiが投稿したリンクのように-免責事項、それは私のブログです)が必要ない場合は、F4Vに切り替えると役立ちますが、全体として、画面上のビデオの合成に影響を与えるものすべてに注意する必要があります。大きなサイズのビデオは、それと重なっているすべてのものを強制的に再レン​​ダリングするため、小さなオブジェクトはパフォーマンスに大きな影響を与える可能性があります。

ビデオの上に何かありますか?可能であれば、それらを取り除くか、cacheAsBitmapをtrueに設定してみてください(アニメーション化されていない場合)。これは、複雑なベクター描画やテキストに特に適しています(ビットマップ/画像の描画ははるかに高速です)。それらが異なるブレンディングモードを持っている場合、あなたは一種のねじ込みです-代わりに通常のブレンディングモードを使用できますか?

ビデオの下に何かありますか?その場合は、ビデオの再生中にそれらを取り除きます(可視性をfalseに設定するだけです)。

不要なレンダリングを確認するには、ビデオを一時停止し、右クリックして、[再描画された領域を表示する](デバッグプレーヤー)をオンにします。赤の広場の絵が連続して見えますか?次に、バックグラウンドで何かが起こっているので、それを取り除く方がよいでしょう。

onEnterFrameまたはタイマー/間隔を介してバックグラウンドで何かが起こっていますか?一時停止してみてください。

ビデオは30fpsで、CGレンダリング(モーションブラーを使用できるなど)ですか?はいの場合は、代わりに24 fps、またはその間のレンダリングを試してください。それでも高品質ですが、デコードして描画するデータははるかに少なくなります。

小さい動画を使用できますか?同じ大きなサイズでレンダリングしている場合でも、デコードしてレンダリングするピクセルデータが少ないと非常に役立ち、品質への影響はかなり小さくなります。

それはほとんどすべてを要約しています。ただし、通常、画面上の他のすべてを取り除くことが最優先事項です。

于 2010-09-03T14:04:32.070 に答える
0

http://zehfernando.com/2010/benchmarking-video-playback-performance-in-flash/をご覧ください。

于 2010-09-03T04:01:59.597 に答える
0

代わりに H.264 でビデオをエンコードしようとしましたか? Flash Player はしばらくの間それらをサポートしています。これは、Flash で HD ビデオを作成するほとんどの人が使用するものです (例: Youtube、Vimeo など)。

テストとして、YouTube で 1080p の HD ビデオをプレイしてみて、一時停止するかどうかを確認してください。

于 2010-04-22T23:32:05.950 に答える