VLC-Qt实现简单的视频播放器

VLC-Qt是一个结合了Qt应用程序和libVLC的免费开源库。它提供了用于媒体播放的核心类,以及用于快速开发媒体播放器的GUI类。由于集成了整个libVLC,VLC-Qt具备了libVLC的所有特性,

例如:libVLC实例和播放器、单个文件和列表播放、音频和视频控制、元数据管理。这使得VLC-Qt成为快速创建功能齐全的跨平台媒体播放器的理想选择。

VLC-Qt主要由三部分组成:

  • 核心库:连接到libVLC并控制播放。核心类使开发者能够完全控制libVLC及其所有特性,同时支持多个实例和/或播放器。
  • Widgets库:提供了一些预先制作的窗口部件,如视频窗口、搜索部件、音量滑块、音视频控制器等,用于构建媒体播放器的UI。
  • QML库:提供了使用OpenGL的简单视频播放功能。

要使用VLC-Qt,可以下载并编译它,或者使用官网上预编译的版本。VLC-Qt的使用相对简单,可以通过查看示例来学习如何使用。例如,可以下载示例代码,然后修改相关设置以适应自己的安装路径,从而实现播放本地视频或RTSP流等功能。

vlc-qt下载:

官网地址:(Quickly create a fully functional cross-platform media player - VLC-Qt)

Github 地址:https://github.com/vlc-qt

这里我下载的MiGW的库,

下载完成解压出来3个目录。

include:包含了所需的头文件

lib:包含所需的 lib 文件

bin:包含了所需的 dll 文件(动态库及插件)

Demo程序下载

地址:GitHub - vlc-qt/examples: VLC-Qt Examples

解压后目录如下所示。

然后打开 simple-player.pro,并将 src.pro 中的 VLC-Qt 相关设置改为自己的路径:

修改 simple-player.pro中vlc-qt相关库内容,主要为最后两行。

cpp 复制代码
#
# VLC-Qt Simple Player
# Copyright (C) 2015 Tadej Novak <tadej@tano.si>
#

TARGET      = simple-player
TEMPLATE    = app
CONFIG 	   += c++11

QT         += widgets

SOURCES    += main.cpp \
    SimplePlayer.cpp \
    EqualizerDialog.cpp

HEADERS    += SimplePlayer.h \
    EqualizerDialog.h

FORMS      += SimplePlayer.ui \
    EqualizerDialog.ui

LIBS       += -lVLCQtCore -lVLCQtWidgets


# Edit below for custom library location
LIBS       += -L/Users/tadej/workspace/tanoprojects/install/vlc-qt/lib -lVLCQtCore -lVLCQtWidgets
INCLUDEPATH += /Users/tadej/workspace/tanoprojects/install/vlc-qt/include

主要修改最后两行,以下是修改后的路径,按自己存放路径来。

cpp 复制代码
LIBS       += -L$$PWD/vlc-qt/lib -lVLCQtCore -lVLCQtWidgets
INCLUDEPATH += $$PWD/vlc-qt/include

编译,然后生成,运行结果如下图所示。

相关推荐
handler014 分钟前
【C++11 】Lambda 表达式、std::function 与 std::bind 解析
c++·c·c++11·bind·解耦·function·lamda
方也_arkling6 分钟前
【Java-Day19】集合1(Collect单列集合)
java·开发语言
Xin_ye1008613 分钟前
C# 零基础到精通教程 - WPF 专题三:高级控件与自定义控件
开发语言·c#·wpf
SoftLipaRZC18 分钟前
C语言自定义类型:结构体完全指南
c语言·开发语言
方也_arkling20 分钟前
【Java-Day19】集合3 List中常见的方法和5种遍历方式
java·开发语言
AI玫瑰助手24 分钟前
Python函数:局部变量与全局变量的作用域
开发语言·python·信息可视化
2023自学中29 分钟前
imx6ull 开发板,RTMP 推流本地视频 到虚拟机
linux·音视频·嵌入式·开发板
字节高级特工32 分钟前
C++11(二) 革新:引用折叠与lambda表达式
java·开发语言·c++·算法
萨小耶32 分钟前
[Java学习日记11】聊聊深拷贝和浅拷贝
java·开发语言·学习
知识领航员33 分钟前
30个AI音乐提示词|直接复制可用,覆盖6大风格
人工智能·adobe·chatgpt·prompt·aigc·音视频