Win7 , vs2013 下 Gstreamer 開發環境搭建兩年前就想學習Gstreamer了,可是一直沒時間,現在才有空,準備把學習過程寫成博文,和初學的童靴一起分享成長過程。寫得不好,還請見諒。

             開發環境選擇: window7專業版 32位系統, vs2013專業版。

  • 開發包下載

          網上看了一下,開發環境一般是用google的 GStreamer-WinBuilds 和 GStreamer-WinBuilds-SDK兩個程式搭建,但下載安裝完,發現版本是0.10.28的舊版本。有點不爽,都過去4,、5年,我一個新手為什麼還要學這麼舊的東西。軟體更新這麼快,5年的時間不算短。到官網轉悠一圈,發現gstreamer現在提供安裝版的開發包,決定用新的版本搭建開發環境。

          首先,到gstreamer的官網下載開發吧,地址為 http://gstreamer.freedesktop.org/data/pkg/windows/1.4.5 ,需要下載的兩個包分別為 gstreamer-1.0-x86-1.4.5.msi,gstreamer-1.0-devel-x86-1.4.5.msi.部分小夥伴可能訪問不了。直接百度網盤吧。地址為:http://pan.baidu.com/s/1i3gRC4d, http://pan.baidu.com/s/1dDeXVeL。下載完後先安裝gstreamer-1.0-x86-1.4.5.msi,然後安裝gstreamer-1.0-devel-x86-1.4.5.msi。安裝完成,已經成功一半了。

  • 開發環境配置

                      a.新建專案

           開啟vs2013,依次開啟 檔案->新建專案->模板->Visual C++ -> Win32 ->Win32控制檯應用程式,然後填入專案名稱和儲存位置。如果所示:

新建專案

點選 確定,到設定嚮導, 直接點選完成。專案新建成功。

網上看了一下,開發環境一般是用google的 GStreamer-WinBuilds 和 GStreamer-WinBuilds-SDK兩個程式搭建,但下載安裝完,發現版本是0.10.28的舊版本。有點不爽,都過去4,、5年,我一個新手為什麼還要學這麼舊的東西。軟體更新這麼快,5年的時間不算短。到官網轉悠一圈,發現gstreamer現在提供安裝版的開發包,決定用新的版本搭建開發環境。

         首先,到gstreamer的官網下載開發吧,地址為 http://gstreamer.freedesktop.org/data/pkg/windows/1.4.5 ,需要下載的兩個包分別為 gstreamer-1.0-x86-1.4.5.msi,gstreamer-1.0-devel-x86-1.4.5.msi.部分小夥伴可能訪問不了。直接百度網盤吧。地址為:http://pan.baidu.com/s/1i3gRC4d, http://pan.baidu.com/s/1dDeXVeL。

        下載完後先安裝gstreamer-1.0-x86-1.4.5.msi,然後安裝gstreamer-1.0-devel-x86-1.4.5.msi。安裝完成,已經成功一半了。

b.配置專案

            在專案上右擊,選擇屬性。彈出屬性對話方塊。配置-》所有配置,配置屬性-》VC++目錄。修改包含目錄,下下圖所示:d:/gstreamer換成自己的gstreamer安裝目錄。

包含目錄配置

繼續上一步,修改庫目錄:把d:/gstreamer替換成自己的目錄。點選確定。

庫目錄配置

然後修改連線配置,如下圖。在附件依賴項裡面增加gobject-2.0.lib;glib-2.0.lib;gstreamer-1.0.lib;,點選確定,儲存配置。所需的配置到此完成。下面開始寫程式碼。

連線配置

  • Gstreamer程式碼編寫

           在原始碼檔案中輸入如下程式碼:

#include "stdafx.h"
#include <gst\gst.h>

int _tmain(int argc, _TCHAR* argv[])
{
	const gchar *nano_str;
	guint major, minor, micro, nano;
	gst_init(&argc, &argv);
	gst_version(&major, &minor, µ, &nano);
	if (nano == 1)
		nano_str = "(CVS)";
	else if (nano == 2)
		nano_str = "(Prerelease)";
	else
		nano_str = "";
	printf("This program is linked against GStreamer %d.%d.%d %s\n",
		major, minor, micro, nano_str);
        getchar();
        return 0;
}
直接編譯。編譯出現問題:錯誤    1    error C2664: “void gst_init(int *,char **[])”: 無法將引數 2 從“_TCHAR **[]”轉換為“char **[]”    d:\project\vs2013\consoleapplication1\consoleapplication1\consoleapplication1.cpp    11    1    ConsoleApplication1
字符集轉換的問題。暫時修改一下字符集,編譯通過吧! 在專案屬性裡修改字符集為 使用多位元組字符集。如下圖:

修改字符集

          編譯執行,找不到dll,需要把gstreamer的bin目錄加到path裡面。修改環境變數,在Path變數的前面加上D:\gstreamer\1.0\x86\bin; D:\gstreamer換成自己的安裝目錄。

再次執行,顯示如下:

執行結果

至此,開發環境編譯搭建成功。