QMPlay2

QMPlay2

跨平台开源多媒体播放器

QMPlay2是一款跨平台开源多媒体播放器,支持多种音视频格式、YouTube视频和音频CD。它具备硬件加速解码、去隔行和球面视图等功能,提供音频均衡器和可视化效果。QMPlay2界面友好,支持多语言,可通过扩展模块增加功能。作为一款功能丰富的媒体播放器,QMPlay2易于使用且适用于多种操作系统。

QMPlay2多媒体播放器跨平台FFmpeg硬件加速Github开源项目

QMPlay2 - Qt媒体播放器2

截图

QMPlay2是一个视频和音频播放器。它可以播放FFmpeg和libmodplug(包括J2B和SFX)支持的所有格式。它还支持音频CD、原始文件、雷曼2音乐和芯片音乐。它包含YouTube和MyFreeMP3浏览器。

目录

安装

Windows上的简易安装

  • 下载 Windows安装程序。

Linux上的简易安装(AppImage)

Arch Linux / Manjaro Linux上的简易安装

  • 安装AUR客户端(例如yay),
  • 运行以下命令:yay -S qmplay2

openSUSE上的简易安装

  • 不要混用不同仓库的FFmpeg!
  • 运行以下命令:
openSUSE Tumbleweed
sudo zypper ar https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed Packman sudo zypper dup --allow-vendor-change --from "Packman" sudo zypper in QMPlay2

Fedora上的简易安装

  • 运行以下命令:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo dnf groupupdate core sudo dnf update sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin sudo dnf groupupdate sound-and-video sudo dnf install qmplay2

Gentoo Linux上的简易安装

  • 运行以下命令:emerge --ask media-video/qmplay2

YouTube

您可以更改YouTube内容的默认音频和视频质量。点击搜索栏左侧的"设置"图标,更改音频和/或视频质量优先级的顺序,然后应用更改。 如果在YouTube内容中找不到所选质量,QMPlay2将尝试使用质量列表中的下一个条目。

没有外部"yt-dlp"软件,YouTube视频无法工作,所以QMPlay2会自动下载它。您可以从设置中删除已下载的"yt-dlp"。

Windows

  • 确保防病毒软件或防火墙不会阻止"yt-dlp",也不会阻止执行外部应用程序!
  • 在某些配置或过时的驱动程序上,Vulkan可能无法切换到全屏独占模式。

球面视图

QMPlay2在OpenGL和Vulkan视频输出上支持球面视图。您可以通过按"Ctrl+3"来观看例如YouTube球面视频。您也可以从菜单中启用它:"播放->视频滤镜->球面视图"。

ALSA

如果您使用自己的ALSA配置asound.conf.asoundrc,您还应该在配置文件中附加: defaults.namehint.!showall on。否则,可能看不到已添加的设备!

硬件加速

QMPlay2支持硬件视频解码:Vulkan Video、CUVID(仅限NVIDIA)、DXVA2(Windows)、D3D11VA(Vulkan,Windows)、VA-API(仅限Linux/BSD)和VideoToolBox(仅限macOS)。 硬件加速默认是禁用的,但您可以在"设置->播放设置"中启用它:

  • 将硬件加速解码器移动到解码器列表的顶部,
  • 应用设置。

硬件加速重要信息:

  • CUVID、DXVA2和VA-API使用OpenGL视频输出,因此OpenGL功能可用,但CPU滤镜将不起作用。
  • VkVideo、CUVID、D3D11VA和VA-API使用Vulkan视频输出,因此Vulkan功能可用,但CPU滤镜将不起作用。
  • DXVA2需要"WGL_NV_DX_interop"扩展。
  • DXVA2不适用于Vulkan。
  • VA-API、CUVID和DXVA2有自己的去隔行滤镜。它们的设置可在"设置->视频滤镜"中找到。
  • Vulkan上的VA-API仅在Intel驱动程序上使用其自己的去隔行滤镜。
  • H.264无损电影(CRF 0或QP 0)可能无法通过VA-API正确解码。
  • VideoToolBox不支持去隔行。

VA-API + OpenGL信息:

VA-API + OpenGL使用EGL创建OpenGL上下文。在X11上,QMPlay2尝试检测是否可以使用EGL,但检测可能会失败。在这种情况下,您可以尝试手动操作:export QT_XCB_GL_INTEGRATION=xcb_glx并从命令行运行QMPlay2。如果一切正常,您可以全局导出此变量。在系统中安装多个GPU的情况下,VA-API需要使用与OpenGL相同的设备。QMPlay2会自动检测它,但如果检测失败,请尝试手动操作,例如:export QMPLAY2_EGL_CARD_FILE_PATH=/dev/dri/card1并从命令行运行QMPlay2。如果一切正常,您可以全局导出此变量。

去隔行

QMPlay2会自动检测视频隔行。更多选项请前往"设置->视频滤镜"。 如果您有快速的CPU(或低视频分辨率),可以使用"Yadif 2x"去隔行滤镜以获得更好的质量。

如果需要,您可以在非隔行视频上启用去隔行滤镜(某些隔行视频可能没有隔行数据), 但请记住在其他视频上恢复此设置!否则视频质量和性能会变差!

硬件加速视频解码使用自己的视频滤镜,因此在这种情况下,CPU去隔行方法(例如"Yadif 2x")不起作用。 当然,在硬件加速的情况下,您可以调整其他去隔行设置。

Vulkan渲染器有Yadif去隔行滤镜,默认用于CPU解码的视频。您可以在Vulkan渲染器设置中更改此行为。此外,Yadif Vulkan滤镜用于硬件解码的视频。

当XVideo用作视频输出时,如果像素格式不是YUV420,色度平面可能无法正确去隔行。

隐藏功能

音频平衡

右键点击音量滑块并选择"分离通道"。

Last.fm记录

转到"选项->模块设置"并点击列表中的"扩展"。找到"LastFM"组框,选择"记录",输入您的登录名和密码,然后按"应用"。

控制文件

share目录中的空文件(在Windows上,它是包含QMPlay2.exe的目录):

  • portable - 以便携模式运行QMPlay2(设置存储在应用程序目录中),
  • noautoupdates - 在首次运行时禁用自动更新。

静态图像

转到"选项->设置"并勾选"读取并显示静态图像"。

自定义用户代理

您可以在QMPlay2.ini文件的General部分指定CustomUserAgent

禁用yt-dlp更新

QMPlay2.ini文件的General部分将SkipYtDlpUpdate设置为true

禁用封面缓存

QMPlay2.ini文件的General部分将NoCoversCache设置为true

单实例

您可以强制QMPlay2使用单实例:在"设置->常规设置"中设置"只允许一个实例"。

多媒体键

多媒体键应该自动工作(在Linux/BSD上可能取决于您的配置)。 此外,在Linux/BSD中,你可以将按键与命令关联:

  • 使用QMPlay2二进制文件,请参阅:QMPlay2 -h
  • 使用MPRIS2:
    • 切换播放/暂停:dbus-send --print-reply --dest=org.mpris.MediaPlayer2.QMPlay2 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
    • 下一个:dbus-send --print-reply --dest=org.mpris.MediaPlayer2.QMPlay2 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
    • 上一个:dbus-send --print-reply --dest=org.mpris.MediaPlayer2.QMPlay2 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
    • 停止:dbus-send --print-reply --dest=org.mpris.MediaPlayer2.QMPlay2 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop

从源代码安装

别忘了更新子模块:git submodule update --init

为Flatpak构建

安装flatpak构建器:

flatpak install org.flatpak.Builder

构建QMPlay2:

flatpak run org.flatpak.Builder build/flatpak --force-clean --ccache --user --install io.github.zaps166.QMPlay2.Devel.json

可选地,你可以安装包含所有编解码器的FFmpeg和用于Intel GPU的VA-API驱动:

flatpak install org.freedesktop.Platform.ffmpeg-full flatpak install org.freedesktop.Platform.VAAPI.Intel

CMake要求

对于CMake构建,请确保你拥有CMake 3.16或更高版本。

你需要以下开发包:

必需:

  • Qt5 >= 5.15.2:
    • Qt5DBus - 仅限Linux/BSD,
    • Qt5Svg - 用于SVG图标,
    • Qt5Qml - 用于MediaBrowser,
    • Qt6Core5Compat - 用于Qt6,
  • FFmpeg >= 4.0:
    • libavformat - 需要OpenSSL或GnuTLS以支持https,
    • libavcodec - 仅用于FFmpeg模块,
    • libswscale,
    • libavutil,
    • libswresample,
    • libavdevice - 仅用于FFmpeg模块,可选(在Linux上默认启用),

重要:

  • TagLib >= 1.11,
  • libass - 用于OSD和非图形字幕。

用于模块(如果未找到,其中一些可能会自动禁用):

  • FFmpeg(必要模块):libva (VA-API),
  • Chiptune:libgme和libsidplayfp,
  • AudioCD:libcdio和libcddb,
  • ALSA(仅限Linux):libasound,
  • PipeWire - libpipewire,
  • PulseAudio - libpulse-simple,
  • PortAudio:portaudio (v19),
  • XVideo(仅限X11):libxv。

依赖:

Arch Linux / Manjaro Linux依赖
  • 常用包:
sudo pacman -S cmake ninja gcc pkg-config ffmpeg libass libva libxv alsa-lib libcdio taglib libcddb libpulse libgme libsidplayfp qt6-base qt6-tools qt6-5compat qt6-svg qt6-declarative pipewire

使用CMake在Linux/BSD上进行编译:

  • 使用包管理器安装所有需要的包和依赖(开发版本),或从源代码编译。
  • 你可以使用cmake-gui进行图形化配置。否则,请按照以下说明操作:
    • 运行CMake(你也可以加上你想要的参数):cmake -GNinja -B build -S .
    • 检查摘要 - 哪些功能已启用 - 你可以手动设置/强制它们,
    • 如果CMake没有错误地完成,运行:ninja -C build
    • 如果编译没有错误地完成,安装它:sudo ninja -C build install

CMake选项(选项 - 默认值:描述):

  • CMake选项及其默认设置:
    • CMAKE_INSTALL_PREFIX - 通常是/usr/local:安装目录。
    • CMAKE_BUILD_TYPE - Release
    • LANGUAGES - All - 要编译到QMPlay2中的翻译列表,用空格分隔。
    • SOLID_ACTIONS_INSTALL_PATH - 仅限Linux/BSD,自动检测:你可以手动指定路径。
    • SET_INSTALL_RPATH - 仅限非Windows,在macOS上为ON,其他地方为OFF:安装后设置RPATH。
    • USE_FFMPEG - ON:启用/禁用FFmpeg模块。
    • USE_FFMPEG_VKVIDEO:自动检测:如果启用Vulkan且FFmpeg版本 >= 6.1则启用。
    • USE_FFMPEG_VAAPI:自动检测:如果存在libva、libva-drm和egl则启用。
    • USE_FFMPEG_AVDEVICE - 在Linux上自动检测,在非Linux操作系统上为OFF:它允许使用例如V4L2设备。
    • USE_INPUTS - ON:启用/禁用Inputs模块。
    • USE_MODPLUG - ON:启用/禁用Modplug模块。
    • USE_EXTENSIONS - ON:启用/禁用Extensions模块。
    • USE_MPRIS2 - 仅限Linux/BSD,ON:在Extensions模块中启用/禁用MPRIS2。
    • USE_VISUALIZATIONS - ON:启用/禁用Visualizations模块。
    • USE_AUDIOFILTERS - ON:启用/禁用AudioFilters模块。
    • USE_VIDEOFILTERS - ON:启用/禁用VideoFilters模块。
    • USE_OPENGL - ON:启用/禁用OpenGL支持。
    • USE_VULKAN - 自动检测:启用/禁用Vulkan支持。
    • USE_GLSLC - OFF:在构建QMPlay2时启用/禁用GLSL -> SPIR-V着色器编译。
    • USE_AUDIOCD - 自动检测:如果存在libcdio和libcddb则启用:启用/禁用AudioCD模块。
    • USE_ALSA - 在Linux上为ON:启用/禁用ALSA模块。
    • USE_PORTAUDIO - 在非Linux操作系统上为ON:启用/禁用PortAudio模块。
    • USE_PULSEAUDIO - 在Linux/BSD上自动检测,在其他地方为OFF:启用/禁用PulseAudio模块。
    • USE_XVIDEO - 在X11上自动检测:如果存在libxv则启用:启用/禁用XVideo模块。
    • USE_CHIPTUNE_GME - 自动检测:如果存在libgme则启用。
    • USE_CHIPTUNE_SID - 自动检测:如果存在libsidplayfp则启用。
    • USE_TAGLIB - ON:启用/禁用标签编辑器。
    • USE_CMD - 仅限Windows,OFF
    • USE_LASTFM - ON:在Extensions模块中启用/禁用LastFM。
    • USE_LIBASS - ON:启用/禁用libass(字幕引擎)依赖。
    • USE_CUVID - ON:启用/禁用CUVID模块。
    • USE_LYRICS - ON:启用/禁用歌词模块。
    • USE_MEDIABROWSER - ON:启用/禁用MediaBrowser模块。
    • USE_RADIO - ON:启用/禁用Radio Browser模块。
    • USE_YOUTUBE - ON:启用/禁用YouTube模块。
    • USE_ASAN - OFF:启用/禁用地址sanitizer。
    • USE_UBSAN - OFF:启用/禁用未定义行为sanitizer。
    • CMAKE_INTERPROCEDURAL_OPTIMIZATION - OFF:启用/禁用链接时代码生成(LTO)。
    • USE_GIT_VERSION - ON:将Git HEAD附加到QMPlay2版本(如果存在)。
    • USE_UPDATES - ON:启用/禁用软件更新。
    • FIND_HWACCEL_DRIVERS_PATH - OFF:查找硬件加速驱动程序路径,对通用包有用。
    • BUILD_WITH_QT6 - 自动检测:使用Qt6构建。

使用其他Qt安装的CMake:

  • Qt6Widgets_DIR:Qt6Widgets cmake目录的路径(例如~/qtbase/lib/cmake/Qt6Widgets)。
  • Qt6DBus_DIR:Qt6DBus cmake目录的路径(例如~/qtbase/lib/cmake/Qt66Bus)。
  • Qt6LinguistTools_DIR:Qt6LinguistTools cmake目录的路径(例如~/qtbase/lib/cmake/Qt6LinguistTools)。
  • Qt6Svg_DIR:Qt6Svg cmake目录的路径(例如~/qtbase/lib/cmake/Qt6Svg)。
  • Qt6Qml_DIR:Qt6Qml cmake目录的路径(例如~/qtbase/lib/cmake/Qt6Qml)。

每个CMake选项必须以-D开头,新值在=之后设置。 你可以在安装时剥离二进制文件以节省磁盘空间:sudo ninja -C build install/strip

示例命令(在包含源代码的QMPlay2目录中执行):

  • 简单安装(依赖自动检测,strip减小大小,但会使调试不可用):
cmake -GNinja -B build -S . -DCMAKE_INSTALL_PREFIX=/usr ninja -C build sudo ninja -C build install/strip
  • 使用手动指定的安装前缀,禁用SID,仅使用波兰语并使用手动指定的Solid操作路径:
cmake -GNinja -B build -S . -DCMAKE_INSTALL_PREFIX=/usr -DUSE_CHIPTUNE_SID=OFF -DLANGUAGES="pl" -DSOLID_ACTIONS_INSTALL_PATH="/usr/share/solid/actions" ninja -C build sudo ninja -C build install
  • 更新图标主题、mime和桌面数据库(将/usr/share/替换为你的安装前缀路径):
sudo update-desktop-database sudo update-mime-database /usr/share/mime sudo gtk-update-icon-cache /usr/share/icons/hicolor
  • 卸载:
sudo ninja -C build uninstall

macOS:

  • 安装Brew和开发者命令行工具。
  • 下载并安装macOS版Qt6(忽略有关缺少XCode的错误,如果有的话)。
  • 下载并安装macOS版CMake:
  • cmake CLI(来自Bundle)创建到/usr/local/bin的符号链接。
  • 从Brew安装pkg-config和所有依赖项。
  • 你也可以手动编译它们(特别是libassffmpeg(不含大多数编码器)、fribidi(不含glib)和libsidplayfp)。
  • 为依赖项设置缺失的目录(推荐使用QtCreator或CMake GUI):
  • 将安装前缀设置为如桌面目录(用于Bundle),
  • 通过ninja install安装 - 这会创建一个Bundle。

Windows(交叉编译):

  • 安装所有必需的MinGW包(我推荐AUR MinGW包)。
  • 一些库不兼容、使用不需要的依赖项或在仓库中不存在 - 你应该自己构建它们。
  • 从交叉编译工具链运行cmake
Windows的其他信息
  • 你可以在Windows主机上编译QMPlay2,但必须自己准备工具链(还包括CMake高级选项中的库和路径):
  • CMAKE_LIBRARY_PATH - 在哪里查找QMPlay2依赖库,
  • CMAKE_INCLUDE_PATH - 在哪里查找QMPlay2依赖包含文件,
  • CUSTOM_*_LIBRARIES - 链接器的额外自定义库(对静态链接有用),
  • 我为许多MinGW库使用自己的PKGBUILD。
  • Visual Studio无法编译QMPlay2。

构建RPM、DEB或其他任何包

你可以参考Arch Linux PKGBUILD

其他信息

  • QMPlay2包含经过修改的libmodplug源代码,这些源代码被Modplug模块使用。
  • QMPlay2使用由Alexey Varfolomeev创建的Concept图标。

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI助手AI工具AI写作工具AI辅助写作蛙蛙写作学术助手办公助手营销助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

聊天机器人AI助手热门AI工具AI对话
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多