Windows から (MSVC++ 2005): C++ アプリケーション (DirectShow+Direct3D) をLinuxに移植してビデオ ファイルを再生し、フラグメント シェーダーを使用するには、どの SDK などをお勧めしますか?
3 に答える
代わりに OpenGL を使用する必要があります。
実装のヒント: - 優れたパフォーマンスを実現するには、優れたビデオ カード ドライバーがインストールされ
ていることを確認する必要があります。
- OpenGL に慣れていない場合は、「レッド ブック」から始めてください - OpenGL プログラミング ガイド
- ここから最新の拡張ヘッダーをダウンロードする必要がある場合があります
http://www.opengl.org/registry/
-ライブラリ GLEWが役立つ場合があります利用可能な拡張子を特定します。
- GL/gl.hおよびglext.hファイルをプロジェクトに含めます
- ドライバーの opengl 動的ライブラリーへのリンク: /usr/lib64/libGL.soまたは similar
フラグメントシェーダーが必要な理由はありますか? (ビデオ画像の後処理を行っていますか?)。OpenGL で再生するビデオを取得するために、シェーダー コーディングを行う必要はありません。
ビデオのデコードにはffmpeg(実際にはlibavcodec)を使用します。フレームを表示するには、OpenGL テクスチャと各フレームの glTexSubImage2D を呼び出して更新を行うだけです。
より複雑な directshow アプリケーションを移植する必要がある場合は、Linux の gstreamer フレームワークも確認します。また、メディア再生用に構築するためのある種のグラフもあります。まったく異なりますが、経験があり、複雑なダイレクトショーが必要な場合は、いくつかの類推が表示されます。
gstreamerには、画像効果とシェーダー用のopenglプラグインもあります....
http://www.gstreamer.net/ http://www.gstreamer.net/releases/gst-plugins-gl/0.10.1.html