Qt 5 和 LibVLC
Qt 5 and LibVLC
我正在从事一个涉及接收、显示和转播多个本地网络视频流的项目。 LibVLC 似乎是要走的路,我想在 Qt Creator/C++/OSX 10.12.1 中使用它,我还需要该项目可以在某些 Windows 上编译我安装了 Qt 的 10 台机器。
我通过安装来自 projects.tano.si/vlc-qt 的官方 QT-LibVLC 包装器成功测试了一些功能。不幸的是,包装器缺少许多对我的项目必不可少的 LibVLC 方法,因此我决定安装完整的 LibVLC。
现在我一直在研究如何使 LibVLC 工作。
我遵循了 https://wiki.videolan.org/OSXCompile/#Apple_Software 的所有指示
安装和库构建,一切顺利。
然后我在QT中开始了一个新项目,尝试添加 INCLUDEPATH += 。 vlc 和 LIBS +=-lvlc 路径到 Qt 中的 .pro 文件,但它不起作用。此外,将路径添加到 VLC 构建文件夹的 "Framework" 文件夹也不起作用。
有谁知道这个魔术是怎么来的吗?
对不起,我知道我有点天真,但仅此而已......
预先感谢您的任何回答!
更新:
感谢 eyllanesc 的建议,此结构现在适用于编译器:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = testVLC
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
player.cpp \
main.cpp
HEADERS += \
player.h
macx: LIBS += -L$$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/lib/ -lvlc.5
INCLUDEPATH += $$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/include
DEPENDPATH += $$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/include
很遗憾,应用程序已启动,但 VLC 实例未初始化。看来我的VLC安装有问题。
已解决:
经过一些调整后,项目编译并正确启动。
我不明白为什么,但是必须在实例化 VLC 之前设置环境变量 VLC_PLUGIN_PATH,否则 VLC 拒绝初始化:
//set environment variable VLC_PLUGIN_PATH
int s = setenv ("VLC_PLUGIN_PATH", "/Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/lib/vlc/plugins", 1);
// Initialize libVLC
vlcInstance = libvlc_new(0, NULL);
实际上如果在QtCreator的Build Environment中设置它根本不起作用
为我们的应用程序添加库的一种简单方法是借助 Qt Creator,它有一个助手,只需右键单击您的项目名称即可使用它:
然后 select Add Library
选项。
然后小助手打开:
和select导入的类型,在你的情况下建议使用External Library
。
然后您查找项目的位置并接受。
注意:在 Linux 中,可以使用快捷方式 Ctrl + E
打开此工具
我正在从事一个涉及接收、显示和转播多个本地网络视频流的项目。 LibVLC 似乎是要走的路,我想在 Qt Creator/C++/OSX 10.12.1 中使用它,我还需要该项目可以在某些 Windows 上编译我安装了 Qt 的 10 台机器。
我通过安装来自 projects.tano.si/vlc-qt 的官方 QT-LibVLC 包装器成功测试了一些功能。不幸的是,包装器缺少许多对我的项目必不可少的 LibVLC 方法,因此我决定安装完整的 LibVLC。
现在我一直在研究如何使 LibVLC 工作。 我遵循了 https://wiki.videolan.org/OSXCompile/#Apple_Software 的所有指示 安装和库构建,一切顺利。
然后我在QT中开始了一个新项目,尝试添加 INCLUDEPATH += 。 vlc 和 LIBS +=-lvlc 路径到 Qt 中的 .pro 文件,但它不起作用。此外,将路径添加到 VLC 构建文件夹的 "Framework" 文件夹也不起作用。
有谁知道这个魔术是怎么来的吗? 对不起,我知道我有点天真,但仅此而已...... 预先感谢您的任何回答!
更新:
感谢 eyllanesc 的建议,此结构现在适用于编译器:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = testVLC
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
player.cpp \
main.cpp
HEADERS += \
player.h
macx: LIBS += -L$$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/lib/ -lvlc.5
INCLUDEPATH += $$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/include
DEPENDPATH += $$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/include
很遗憾,应用程序已启动,但 VLC 实例未初始化。看来我的VLC安装有问题。
已解决:
经过一些调整后,项目编译并正确启动。 我不明白为什么,但是必须在实例化 VLC 之前设置环境变量 VLC_PLUGIN_PATH,否则 VLC 拒绝初始化:
//set environment variable VLC_PLUGIN_PATH
int s = setenv ("VLC_PLUGIN_PATH", "/Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/lib/vlc/plugins", 1);
// Initialize libVLC
vlcInstance = libvlc_new(0, NULL);
实际上如果在QtCreator的Build Environment中设置它根本不起作用
为我们的应用程序添加库的一种简单方法是借助 Qt Creator,它有一个助手,只需右键单击您的项目名称即可使用它:
然后 select Add Library
选项。
然后小助手打开:
和select导入的类型,在你的情况下建议使用External Library
。
然后您查找项目的位置并接受。
注意:在 Linux 中,可以使用快捷方式 Ctrl + E