vlc-qt編譯VS2017+QT5.9.0

最近爲了做RTMP推流,準備先拿QT+VLC學習一下,首先就是編譯VLC

一,下載

VLC-QT下載

通過官網:https//vlc-qt.tano.si/  提供的庫是QT5.6.1 + VLC2.2.4

1)源碼包

直接去GITHUB下載vlc-qt.zip源碼包: https://github.com/vlc-qt/vlc-qt

2)VLC庫

官方是用vlc2.2.4,所以我下了的是vlc3.0.0,在下載時要分清,是32位還是64位

vlc下載地址:http://download.videolan.org/vlc/

 

二,編譯

1)部署VLC環境

把plugins和兩個dll的文件複製到QT安裝目錄下的bin目錄中(例如:D:\Qt\Qt5.9.3\5.9.3\msvc2015\bin)

把sdk/include/vlc目錄複製到QT安裝目錄下的include目錄中(例如:D:\Qt\Qt5.9.3\5.9.3\msvc2015\include)

把sdk/lib 下面的幾個LIB文件複製到QT安裝目錄下面的lib目錄中(例如:D:\Qt\Qt5.9.3\5.9.3\msvc2015\lib)

注意這裏我們要設置一個環境變量,就是我們的插件文件夾的位置,例如:

VLC_PLUGIN_PATH C:\Qt\Qt5.9.0\5.9\msvc2017_64\bin/plugins

 

2)生成vs2017項目

生成VS2017項目,我們需要用到CMAKE

運行結果爲上圖所示,然後我們要檢查各個項配置, 

1)makeinstall

這項表示VLC-QT的makeinstall的目錄,我建議大家不要設置爲系統盤下,最好改到其它盤下,因爲在makeinstall時,會因爲權限不夠造成安裝時不成功,所以我設置到了D盤目錄下。

2)vlc

這三項是關於VLC庫的配置,我們看到這裏面LIBVLCCORE_LIBRARY和LIBVIC_LIBRARY的鏈接是不正確的,我們需要手動改一下,分別改成:libvlccore.lib和libvlc.lib

3)Add Entry

在這裏我們需要添加一個變量,可以方便大家在生成庫的時候,如果是debug版的可以帶d,不然的話,在生成debug和release時,不是不帶d的庫,會覆蓋掉。

如下圖所示,“Add Entry”, 

名稱:CMAKE_DEBUG_POSTFIX

類型:STRING

價值:d

好了設置好後,點擊configure成功後,然後執行Generate生成VS2017工程。

4)修改cmake_install.cmake

這一個操作,是在我編譯過程中發現的問題,這個問題會導致後面安裝時不成功。

在構建目錄下找到cmake_install.cmake文件然後以文本的形式打開。如下圖紅框所示,兩個DLL的位置配置不對,我們要手動修改一下,改爲bin目錄下。

5)修改vs2017屬性

分別修改Core,PluginQml,Qml,Widgets工程的屬性>>調試/發佈>>鏈接器>>命令行>>其它選項下填入   /SAFESEH:NO

好了,設置以上設置後,我們可以生成動態庫了,直接在ALL_BUILD工程上右擊生成,就可以生成動態庫了,生成成功後再在“INSTALL”工程上右擊生成,就可將庫提取到安裝目錄裏了,即在CMake的的時設置的那個目錄。

 

就可以編譯了 之後可能會報一些錯誤 

1,ssize_t問題。參考其他教程 說需要在 vlc.h頭文件中增加( typedef __int64 ssize_t;)。本人增加後,編譯過程提示ssize_t重載。說明代碼中已經定義了    ssize_t.(所以不需增加 typedef  __int64 ssize_t; ) 但是不加會報其他錯誤。本人的解決方案是吧ssize_t 類型改成__int64 此問題解決(但由於ssize_t是跨平臺類型,所以程序移植後可能會出問題)。

2,poll問題 提示找不到poll標識符。 解決方案:定位到poll代碼區。會看到一個poll的宏定義。需要把這個宏定義剪貼到 poll代碼區的上方。

最後在install就好了

把以上文件夾複製到QT對應的文件夾即可使用。

通過以上例子可以先學習

 

 

1,RTMP協議直播源

香港衛視:rtmp://live.hkstv.hk.lxdns.com/live/hks

 

2,RTSP協議直播源

珠海過澳門大廳攝像頭監控:rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp

大熊兔(點播):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

 

3,HTTP協議直播源

香港衛視:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8

CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8

CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8

CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8

CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8

CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8

蘋果提供的測試源(點播):http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章