Gstreamer の Qt バインドに問題があります。QtGStreamer パッケージの README の手順を使用していますが、cmake コマンドの実行中にエラーが発生します。
基本情報:
Mac OS X v. 10.6.8 GStreamer v. 0.10.36 + 依存関係 (MacPorts 経由でインストール) Cmake v. 2.8.10 + 依存関係 (MacPorts 経由でインストール) Boost v. 1.52.0 + 依存関係 (MacPorts 経由でインストール) Qt v 4.8 (SDK インストーラーからインストール)
推奨ビルド手順:
$ mkdir ビルド && cd ビルド $ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/installation/prefix $メイク $ make install
cmake の結果:
$ cmake .. -DCMAKE_INSTALL_PREFIX=/tmp1/install -- C コンパイラの識別は GNU 4.2.1 です。 -- CXX コンパイラの識別は GNU 4.2.1 です。 -- C コンパイラに -isysroot があるかどうかを確認しています -- C コンパイラに -isysroot があるかどうかを確認中 - はい -- C コンパイラが OSX 展開ターゲット フラグをサポートしているかどうかを確認しています -- C コンパイラが OSX 展開ターゲット フラグをサポートしているかどうかを確認中 - はい -- C コンパイラが動作しているかどうかを確認します: /usr/bin/cc -- 動作する C コンパイラをチェックします: /usr/bin/cc -- 動作します -- C コンパイラの ABI 情報の検出 -- C コンパイラの ABI 情報の検出 - 完了 -- CXX コンパイラに -isysroot があるかどうかを確認しています -- CXX コンパイラに -isysroot があるかどうかを確認中 - はい -- CXX コンパイラが OSX 展開ターゲット フラグをサポートしているかどうかを確認しています -- CXX コンパイラが OSX 展開ターゲット フラグをサポートしているかどうかを確認中 - はい -- CXX コンパイラが動作していることを確認します: /usr/bin/c++ -- 動作する CXX コンパイラを確認します: /usr/bin/c++ -- 動作します -- CXX コンパイラの ABI 情報の検出 -- CXX コンパイラの ABI 情報の検出 - 完了 -- Q_WS_X11 を探す -- Q_WS_X11 を探しています - 見つかりません -- Q_WS_WIN を探す -- Q_WS_WIN を探しています - 見つかりません -- Q_WS_QWS を探す -- Q_WS_QWS を探しています - 見つかりません -- Q_WS_MAC を探す -- Q_WS_MAC を探しています - 見つかりました -- QT_MAC_USE_COCOA を探す -- QT_MAC_USE_COCOA を探しています - 見つかりました -- Qt4 が見つかりました: /opt/local/bin/qmake (バージョン「4.8.4」が見つかりました) -- ブースト バージョン: 1.52.0 -- 見つかった PkgConfig: /opt/local/bin/pkg-config (バージョン「0.27.1」が見つかりました) -- モジュール「gstreamer-0.10」をチェックしています -- gstreamer-0.10、バージョン 0.10.36 が見つかりました -- モジュール「gstreamer-base-0.10」をチェックしています -- gstreamer-base-0.10、バージョン 0.10.36 が見つかりました -- GSTREAMER_BASE_LIBRARY が見つかりました: /opt/local/lib/libgstbase-0.10.dylib -- GSTREAMER_BASE_INCLUDE_DIR が見つかりました: /Library/Frameworks/GStreamer.framework/Headers/gst/base -- GStreamer が見つかりました: /opt/local/lib/libgstreamer-0.10.dylib (少なくともバージョン「0.10.33」が必要です) -- モジュール「gstreamer-plugins-base-0.10」をチェックしています -- パッケージ 'gstreamer-plugins-base-0.10' が見つかりません -- モジュール「gstreamer-app-0.10」をチェックしています -- パッケージ 'gstreamer-app-0.10' が見つかりません -- GSTREAMER_APP_LIBRARY が見つかりませんでした -- GSTREAMER_APP_INCLUDE_DIR が見つかりました: /Library/Frameworks/GStreamer.framework/Headers/gst/app -- モジュール「gstreamer-interfaces-0.10」をチェックしています -- パッケージ 'gstreamer-interfaces-0.10' が見つかりません -- GSTREAMER_INTERFACES_LIBRARY が見つかりませんでした -- GSTREAMER_INTERFACES_INCLUDE_DIR が見つかりました: /Library/Frameworks/GStreamer.framework/Headers/gst/interfaces -- モジュール「gstreamer-video-0.10」をチェックしています -- パッケージ「gstreamer-video-0.10」が見つかりません -- GSTREAMER_VIDEO_LIBRARY が見つかりませんでした -- GSTREAMER_VIDEO_INCLUDE_DIR が見つかりました: /Library/Frameworks/GStreamer.framework/Headers/gst/video -- GStreamerPluginsBase が見つかりませんでした (欠落: GSTREAMER_APP_LIBRARY GSTREAMER_INTERFACES_LIBRARY GSTREAMER_VIDEO_LIBRARY) (少なくともバージョン「0.10.33」が必要です) -- モジュール「glib-2.0」をチェックしています -- glib-2.0、バージョン 2.34.3 が見つかりました -- GLIB2 が見つかりました: /opt/local/lib/libglib-2.0.dylib -- モジュール「gobject-2.0」をチェックしています -- gobject-2.0、バージョン 2.34.3 が見つかりました -- 見つかった GObject: /Library/Frameworks/GStreamer.framework/Headers/gobject -- OpenGL が見つかりました: /System/Library/Frameworks/OpenGL.framework -- OpenGLES2 が見つかりませんでした (欠落: OPENGLES2_INCLUDE_DIR OPENGLES2_LIBRARY) -- Doxygen が見つかりませんでした (欠落: DOXYGEN_EXECUTABLE) -------------------------------------------------- --------------------------- -- 次の外部パッケージがシステムにありました。 -- このインストールには、これらのパッケージによって提供される追加機能が含まれます。 -------------------------------------------------- --------------------------- * Qt 4 - すべてのビルドに必要 * QtOpenGL - qtvideosink および QtGStreamerUi での OpenGL アクセラレーションに必要 * QtDeclarative - 必要* Boost - QtGLib のビルドに必要 * GStreamer - QtGStreamer のビルドに必要 * GStreamer ベース ライブラリ - qwidgetvideosink 要素のビルドに使用 * GLib - QtGLib のビルドに必要 * GObject - QtGLib のビルドに必要 * OpenGL - OpenGL レンダリングに必要qtvideosink のサポート (デスクトップのみ) -------------------------------------------------- --------------------------- -- 次のオプションのパッケージがシステム上に見つかりませんでした。 -- このソフトウェアからより多くの機能を有効にするために、それらをインストールすることを検討してください。 -------------------------------------------------- --------------------------- * GStreamer ビデオ ライブラリ (0.10.33 以降) qwidgetvideosink 要素の構築に使用 * OpenGLES (2.0 以上) qtvideosink での OpenGLES レンダリング サポートに必要 (組み込みのみ) * Doxygen API ドキュメントの生成に使用 -------------------------------------------------- --------------------------- -- 次の必須パッケージがシステム上に見つかりませんでした。 -- 続行する前に、これらのパッケージをインストールする必要があります。 -------------------------------------------------- --------------------------- * GStreamer アプリ ライブラリ (0.10.33 以降) QtGStreamerUtils のビルドに必要 * GStreamer インターフェイス ライブラリ (0.10.33 以降) QtGStreamer のビルドに必要 -------------------------------------------------- --------------------------- cmake/modules/MacroLogFeature.cmake:141 での CMake エラー (メッセージ): 終了: 要件コール スタックがありません (最新の呼び出しが最初): CMakeLists.txt:152 (macro_display_feature_log) CMake エラー: このプロジェクトでは次の変数が使用されていますが、NOTFOUND に設定されています。それらを設定するか、CMake ファイルで正しく設定およびテストされていることを確認してください: GSTREAMER_APP_LIBRARY (ADVANCED) ディレクトリ /Users/madman/Downloads/RELEASE-0.10.2/src/QGst のターゲット「QtGStreamerUtils」によってリンクされています GSTREAMER_INTERFACES_LIBRARY (高度) ディレクトリ/Users/madman/Downloads/RELEASE-0.10.2/src/QGstのターゲット「QtGStreamer」によってリンクされています -- 設定が不完全です。エラーが発生しました!
CCTV カメラから MJPEG/ASF ストリームを再生するアプリを開発するには、このバインドが必要です。私はすでにlibvlcを試しましたが、すでに表示されているストリームをキャプチャする簡単な方法はありません...クロスプラットフォームアプリケーションになるため、GStreamerが唯一の代替手段です
私は C++/Qt プログラミングにかなり慣れていないので、ビルド/コンパイルの魔法全体はまだ少し混乱しています...
QtGstreamerバインディングを構築する簡単な答えがないことは知っていますが、どんな助けにもとても感謝しています