vlc-qt集成使用备忘

主要参考文章为:https://blog.csdn.net/wj2itp08/article/details/78391261 ,以下为我的实际配置过程:

1.libvlc sdk下载

  官网里面确实有libvlc项目,但是找不到适配msvc的预编译.lib库文件的下载包,还是需要参考人家博文里面的路径,到vlc官方去下载压缩包,不过现在都2021年了,可以下载最新版的压缩包了,地址是:http://download.videolan.org/vlc/last/win32/ ,

下载完成以后解压缩,复制文件到C:\Program Files (x86)\VideoLAN\VLC目录,主要去掉文件名称里面多余的软件版本号。为啥非要这么复制呢?因为vlc-qt里面的cmake文件在windows平台默认去到C:\Program Files (x86)\VideoLAN\VLC下面找sdk,如下图红框位置所示:

 

2.配置环境变量

  配置一个环境变量,名称为VLC_PLUGIN_PATH,指向C:\Program Files (x86)\VideoLAN\VLC\plugins

3.打开vlc-qt的CMakeList.txt文件,增加VC编译时的开关参数:

if(WIN32)
  if(MSVC)
    # disable SAFESEH 
    SET(CMAKE_CXX_FLAGS           "${CMAKE_CXX_FLAGS} /D \"SAFESEH:NO\"")
    SET(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
    SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO")
    SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO")
  endif(MSVC)
endif(WIN32)

  打开vlc-qt\config\Dependencies.cmake文件,修改里面的qt版本和自己使用的一致。

 

4.运行cmake-gui进行构建的时候,如果提示如下的错误信息:

Building VLC-Qt 1.2.0

Git revision: 9b2f561

Selecting Windows SDK version 8.1 to target Windows 6.1.7601.

The C compiler identification is unknown

The CXX compiler identification is unknown

CMake Error at CMakeLists.txt:32 (PROJECT):
No CMAKE_C_COMPILER could be found.
 

CMake Error at CMakeLists.txt:32 (PROJECT):
No CMAKE_CXX_COMPILER could be found.

打开cmakeerror.log,里面有这样的错误提示:

  LINK : fatal error LNK1104: 无法打开文件“ucrtd.lib”

出现这个错误的原因是我的开发机器是win7系统,cmake-gui默认按照开发机器的版本去找对应的window kit sdk了,解决办法是再次修改vlc-qt\cmakelist.txt文件,增加指定的参数信息,具体修改内容如下:

set(CMAKE_SYSTEM_VERSION 10.0.17763.0)

  如下面这样:

再次运行cmake-gui,file->delete cache,重新配置后发现加载的全是mingw64的qt库,不是我的vc编译静态库,还得改,再次修改cmakelist.txt,设定QT库地址,内容如下:

set(CMAKE_PREFIX_PATH D:/Qt/qt5_15_msvc_static_x86)

上面的d:/qt/qt5_15_msvc_static_x86就是我要用的静态编译32位qt5路径,cmake-gui再次delete cache,reload重新配置以后终于不报错了:

5.修改上图中红框中的两个位置,在文件名前面增加lib,即将原来的vlccore.lib改为libvlccore.lib,将原来的vlc.lib改为libvlc.lib,然后点击Generate,再点击Open Project,在vs2019里面准备下一步的编译过程,直接编译,报错如下:

右键点击各工程名称,选择属性-》c/c++语言-》将wchart_t视为内置类型改成否,c/c++->代码生成-》运行库改成和自己的QT编译时一样,我最早是按照/MTD编译的,需要改一下,最后回到常规-》配置类型,修改成与QT编译方式一样的,如我的是静态编译的,就改成静态库(.lib),再次编译后成功,依次对所有工程都修改编译成功后,最后运行INSTALL工程,整体安装到目标路径。

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

顺便把mingw32下面的编译过程记录一下:

在vlc-qt目录里面,mkdir build,mkdir install 建立这两个目录。

进入build目录,新建一个mybuild.bat,配置里面的内容如下:

set path=D:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin;D:\Qt\Qt5.14.2\Tools\mingw730_32\bin;%PATH%;
cmake .. -G"MinGW Makefiles"  -DCMAKE_INSTALL_PREFIX="../install"  -DLIBVLC_LIBRARY="D:/cpp_tools/vlc-3.0.12-win32/vlc/sdk/lib/libvlc.lib"   -
DLIBVLCCORE_LIBRARY="D:/cpp_tools/vlc-3.0.12-win32/vlc/sdk/lib/libvlccore.lib" -DLIBVLC_INCLUDE_DIR="D:/cpp_tools/vlc-3.0.12-win32/vlc/sdk/include/vlc"

注意上面一共是两行内容,第二行内容自己处理好换行,第一行的set path是为了引入32位mingw编译环境,第二行里面的libvlc.lib路径等都要搞对。

运行mybuild.bat,一般情况下都能正常编译,要是不能编译或者老是提示什么Undefined reference to之类的错误,可能是没有正确配置Tools\mingw下面的路径造成的。

之后运行mingw32-make进行编译,编译完成后mingw32-make install进行安装,完事。

测试一下效果吧 ,左侧的图像是vlc-qt播放的rtsp码流,右侧的图像是qtav播放的rtsp码流,对比来看的话vlc里面去放rtsp码流还是很省心的,而且这玩意还支持windows xp。

 

已标记关键词 清除标记
相关推荐
程序员的必经之路! 【限时优惠】 现在下单,还享四重好礼: 1、教学课件免费下载 2、课程案例代码免费下载 3、专属VIP学员群免费答疑 4、下单还送800元编程大礼包 【超实用课程内容】  根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能!   套餐中一共包含2门MySQL数据库必学的核心课程(共98课时)   课程1:《MySQL数据库从入门到实战应用》   课程2:《高性能MySQL实战课》   【哪些人适合学习这门课程?】  1)平时只接触了语言基础,并未学习任何数据库知识的人;  2)对MySQL掌握程度薄弱的人,课程可以让你更好发挥MySQL最佳性能; 3)想修炼更好的MySQL内功,工作中遇到高并发场景可以游刃有余; 4)被面试官打破沙锅问到底的问题问到怀疑人生的应聘者。 【课程主要讲哪些内容?】 课程一:《MySQL数据库从入门到实战应用》 主要从基础篇,SQL语言篇、MySQL进阶篇三个角度展开讲解,帮助大家更加高效的管理MySQL数据库。 课程二:《高性能MySQL实战课》主要从高可用篇、MySQL8.0新特性篇,性能优化篇,面试篇四个角度展开讲解,帮助大家发挥MySQL的最佳性能的优化方法,掌握如何处理海量业务数据和高并发请求 【你能收获到什么?】  1.基础再提高,针对MySQL核心知识点学透,用对; 2.能力再提高,日常工作中的代码换新貌,不怕问题; 3.面试再加分,巴不得面试官打破沙锅问到底,竞争力MAX。 【课程如何观看?】  1、登录CSDN学院 APP 在我的课程中进行学习; 2、移动端:CSDN 学院APP(注意不是CSDN APP哦)  本课程为录播课,课程永久有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化。  下载方式:电脑登录课程观看页面,点击右侧课件,可进行课程资料的打包下载。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页