1

python3、gtk3を使用。ビデオのフレームを操作して表示 (再生) する必要があるコンピューター ビジョン アプリケーションに取り組んでいます。

現在、操作されたフレームを含むnumpy配列から作成された一連のバイトによって供給されるPixbuf静的メソッドで新しいを作成していますが、20fps でビデオを再生できないなどのパフォーマンスの問題があります。new_from_data

私は疑問に思います:これはこの種の問題に取り組む方法ですか?フレームごとに新しい Pixbuf を作成することは、比較的安価ですか、それとも高価ですか? を使用するなど、他の方法を使用する必要がありますnew_from_streamか? (なじみがない)

4

1 に答える 1

2

これは「簡単な」方法ではありませんが、パフォーマンスの問題がある場合は、ハードウェア アクセラレーションを使用してフレームを描画するClutter-Gtk経由でClutterを使用してみてください。

ClutterActor である ClutterStage を提供するGtkClutterEmbedウィジェットを作成できます。新しいフレームを作成するたびに、新しい ClutterImage を作成し、clutter_image_set_data() (Pixbuf の new_from_data と同様) を実行してから、ClutterActor (例: ClutterStage) の ClutterContent をこの新しい ClutterImage に設定できます。

これが Gnome-Ring がビデオを再生する方法です。インスピレーションを得るために、こちらのソース コードを参照してください。

于 2017-01-09T23:18:58.780 に答える