gstreamer

8712 ワード

//2022.03.30ベース

gstreamerプログラムのダウンロード



Installing on Windowsを参照して作成します.
ダウンロードDownload GStreamer->
1)MSVC 64ビットプロジェクトのランタイムインストーラのダウンロード、インストーラの開発

2)標準/完全を選択(著者が完全を選択)

3)インストールが完了したら、C:gstreamerにインストールします(パスはユーザーによって異なります).
4)ウィンドウキー+R->sysdm.cplを入力してシステム属性に入り、パス(C:gstreamer1.0msvcx 86 64bin)を環境変数パスに追加します.




5)新しい環境変数GST PLUGIN SYSTEM PATHを追加してパスを追加(C:gstreamer1.0msvc x 86 64libgstreamer-1.0)


6)コマンドプロンプトで以下のコマンド確認を実行する
gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink
成功するには、次のビデオウィンドウを実行する必要があります.

gstreamer開発環境の作成


0) Visual Studio 2022のダウンロード
1)Visual Studio 2022での新規プロジェクトの作成

2)Windowsデスクトップウィザード







3)項目->属性
環境に次の値を入力します.
PATH=C:\gstreamer\1.0\msvc_x86_64\bin;%PATH%

追加ディレクトリ(プロンプトタイトルファイルの場所)
C:\gstreamer\1.0\msvc_x86_64\lib\glib-2.0\include;C:\gstreamer\1.0\msvc_x86_64\include\gstreamer-1.0;C:\gstreamer\1.0\msvc_x86_64\include\glib-2.0;C:\gstreamer\1.0\msvc_x86_64\include\glib-2.0\glib

その他のライブラリディレクトリ(ライブラリファイルをプロンプトする場所)
C:\gstreamer\1.0\msvc_x86_64\lib

その他の依存関係(使用のためのライブラリ名)
gobject-2.0.lib;glib-2.0.lib;gstreamer-1.0.lib;

すべての設定が完了したら[OK]をクリックします.

gstreamerテスト


Basic tutorial 1: Hello world!を使用してテスト
次のサンプルコードを作成し、実行します.
#include <gst/gst.h>

int main(int argc, char* argv[])
{
    GstElement* pipeline;
    GstBus* bus;
    GstMessage* msg;

    /* Initialize GStreamer */
    gst_init(&argc, &argv);

    /* Build the pipeline */
    pipeline =
        gst_parse_launch
        ("playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm",
            NULL);

    /* Start playing */
    gst_element_set_state(pipeline, GST_STATE_PLAYING);

    /* Wait until error or EOS */
    bus = gst_element_get_bus(pipeline);
    msg =
        gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE,
            (GstMessageType)(GST_MESSAGE_ERROR | GST_MESSAGE_EOS));

    /* See next tutorial for proper error message handling/parsing */
    if (GST_MESSAGE_TYPE(msg) == GST_MESSAGE_ERROR) {
        g_error("An error occurred! Re-run with the GST_DEBUG=*:WARN environment "
            "variable set for more details.");
    }

    /* Free resources */
    gst_message_unref(msg);
    gst_object_unref(bus);
    gst_element_set_state(pipeline, GST_STATE_NULL);
    gst_object_unref(pipeline);
    return 0;
}

インターネット上ですぐに再生されるビデオを含むポップアップウィンドウを再生すると、成功します.

Reference)

  • 停止より遅い:Visual Studio 2019でGStreamerを使用