clapper

RafostarGPL-3.0活跃维护

基于 GTK4 和 GStreamer 的现代视频播放器,界面简洁,支持硬件加速解码,适合在 GNOME 桌面下流畅播放高清视频。

Level up your video experience with a modern and user-friendly media player.

0.10.0发布于 2025-12-22 11:04 UTC978star46fork同步于 2026-11-07 07:33 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求

README 没有说明硬件要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本0.10.0
  1. 0.10.0最新正式版2025-12-22 · 2025-12-22 11:04 UTC

    Notice

    This release among other changes continues evolvement of Clapper enhancer plugin system. With both new plugins added and some features ported from this core repo into being a plugin for the app. Some of these plugins have options that can be changed. Check application Tweaks tab in preferences window to browse and configure them.

    Above includes movement of MPRIS, Server and Discoverer features into enhancer plugins. Applications that bundle Clapper as part of their container distribution are advised to build it with these features disabled in meson while adding newer implementations of these by bundling them as corresponding plugins. Flatpak apps can get these easily by including them as a runtime extension.

    If both implementations are available on the host system, Clapper will automatically prefer and load enhancer based one.

    List of changes

    Application:

    • Removed "Music" and few other keywords to lower app priority as a music player (@abhijeeth-babu)
    • Fix Adwaita 1.6 deprecations (@GeopJr)
    • Slightly wider URI dialog text entry
    • Added option in info dialog to preview GStreamer pipeline and a keyboard shortcut for it
    • Build uses modern appstream, instead of appstream-util for validation (@ximion)
    • Enhancer plugins can now be configured in preferences window (in Tweaks tab)
    • Added advance frame (frame step) with "E" key
    • Fixed crash with auto resize for some video resolutions
    • Fixed crash on drag and drop into empty queue
    • Support for drag and drop of items between lists in different windows
    • Bundled custom speed icons

    Clapper API:

    • Added function to get pipeline graph data
    • Introduced "ClapperEnhancerProxy" objects as intermediary between player and enhancer plugin
    • Added support for persistent configurable properties in enhancer plugins
    • Implemented cache for "Extractable" type of enhancers
    • Cleanup of GIR init section
    • Added ability to set "Harvest" expiration date
    • Whitelisted all ".peek_" functions for Vala language bindings
    • Added tag list reading to media items
    • Ability to fill media tags list initially
    • Added "Reactable" interface for writing enhancer plugins that react to the playback changes
    • Updated LGPL-2.1-or-later license text for remote-only FSF (@musicinmybrain)
    • Added "Playlistable" interface for writing custom playlist parsers
    • Added custom elements to handle playlist item playback and parsing (using "Playlistable" enhancers)
    • Put each main window into its own group (@City-busz)
    • Added detailed "message" signal to the player (allows applications to receive element messages)
    • Added Clapper version information for runtime checks that other apps may want to use
    • All Clapper feature objects (MPRIS, Server and Discoverer) are now deprecated as they were ported into enhancer plugins
    • Added events messaging between app, reactables and player
    • Added convenience function to insert into queue after other item position
    • Added advance frame function (frame step forward)
    • Support for loading enhancers written in Lua
    • Improved tags/metadata extraction in audio files

    Clapper GTK API:

    • Added colors to custom timeline markers in seek bar
    • Split of "ClapperGtkVideo" widget into "ClapperGtkAv" base class
    • Addition of "ClapperGtkAudio" widget (subclass of "ClapperGtkAv") for usage in audio players
    • Added some audio player examples in repository (written in python)
    • Fixed sink property type checks in video widget

    Other smaller bug fixes and documentation updates

  2. 0.8.02025-01-20 · 2025-01-20 21:20 UTC
    查看更新说明

    Notice

    This is the very first release of Clapper to support Windows OS. To make usage there easier, Clapper repo provides a Windows installer executable built with GitHub actions (also attached in the release note files). Just unpack and run setup like any other app. First startup on Windows after install might take a while, please be patient ;-)

    This release also introduces a brand new libpeas based plugin system for the Clapper library. The idea is to enhance it with new capabilities that do stuff outside of GStreamer scope of things. To avoid confusion with term plugins that GStreamer uses, I am gonna call these "enhancers" instead. It will be expanded in the future.

    What's Changed

    New Contributors

    Full Changelog: https://github.com/Rafostar/clapper/compare/0.6.1...0.8.0

  3. 0.6.12024-07-01 · 2024-07-01 17:56 UTC
    查看更新说明

    A bug-fix release in 0.6 series.

    • Updated metainfo summary and colors (thanks @bertob)
    • Complemented metainfo categories (thanks @1Maxnet1)
    • Fixed wrong MARKER_NO_END value in Clapper API GIR (thanks to @jangernert for noticing)
    • Fixed GtkWindowControls style when used within ClapperGtkVideo as OSD (noticed in NewsFlash, thanks @jangernert)
    • Fixed crashes after GL context is destroyed (noticed in Tuba Clapper-enabled builds, thanks @GeopJr)
    • Fixed missing signals disconnections after dispose of ClapperGtkVideo (also noticed in Tuba, thanks @GeopJr)
    • Fixed playback of media with missing plugins for metadata
    • Few small documentation fixes
    • Fixed problems building clapper-gtk documentation on a clean system
    • Fixed info window not closing when pressing "Esc" key
    • Fixed opened file content type detection (used for determining subtitle files)
    • Few fixes and additional checks for meson build script
    • Ensured private types before template init in ClapperGtk API
    • Enabled audio pitch correction for non-normal speed in ClapperGtkVideo (use "scaletempo" audio filter by default)
    • Fixed invisible status message in ClapperGtkVideo when used in light theme apps
    • Made transitions time in ClapperGtkBillboard widget a tad faster
    • Added Occitan translation (thanks @Mejans)
    • Updated translations

    Also while not 0.6.1 only, but happened after 0.6.0 release, so worth mentioning: There are now Rust language bindings available for Clapper 0.6.X APIs. For anyone interested, repo can be found here (credit to @jangernert for making them).

  4. 0.6.02024-04-22 · 2024-04-22 21:34 UTC
    查看更新说明

    In this release Clapper code was basically rewritten from scratch. Now split into two libraries and an application built on top of them. These are:

    The aim of this was to have a much cleaner and easier to maintain code that better integrates with GTK toolkit while also being able to share it with other apps if/when I decide to make another application that needs to play video as part of it. Of course anyone else is free to use them in his/her own projects too as long as he/she comply with license terms (licensed under LGPL-2.1-or-later). Just please note that until version 1.0 they should be considered as an unstable API (some things may change without prior notice).

    In new implementation of Clapper API, playback operates upon a media queue which implements GListModel interface, making it very easy to integrate with GTK4. All media items are refcounted items and Clapper API automatically takes care of serializing events/signal from GStreamer into main application thread making it compatible as-is with GTK toolkit. It also integrates GstDiscoverer API, so you will see actual media titles whenever possible once enqueued. Additionally it exposes common features that can be easily added to the implementation like MPRIS without need of implementing all that on the app side.

    As for ClapperGtk - it extends what main Clapper API does into the world of GTK widgets. The main concept here is to provide a premade widgets that can be simply added as overlays on top of the main ClapperGtkVideo widget. Once that is done, they automatically control playback without need to implement all their logic on the app side. For convenience, the video widget takes care of automatically revealing them when interacting with the player and hiding later.

    Both libraries support GObject Introspection bindings. A simple application example that was done for testing purposes can be found here.

    During this rewrite, all JavaScript code was dropped and we no longer use GJS for UI logic. For consistency of managing monorepo, everything was redone in pure C.

    Most significant changes to the Clapper application itself include:

    • Brand new, simplified and consistent UI
    • Player now operates on playback queue model
    • Multiple queue progression modes to choose from (consecutive, repeat item, carousel, shuffle)
    • New media info window (shows media information and GStreamer elements used to play it)
    • More dialogs and windows use libadwaita
    • Multiple new status/info overlays showing what is going and other messages
    • Added video buffering animation
    • Clapper will now inform users about missing GStreamer plugins needed for playback
    • Video chapters now appear throughout the seek bar on hover and while dragging slider
    • Vastly expanded MPRIS implementation
    • Integrated media discovery (see titles of queued items instead of URIs)
    • Expanded WebSocket server functionality (for remote playback control)
    • Increased maximum volume amplification level to 200%
    • Added some new keyboard shortcuts
    • In addition to volume, now also speed and queue progression mode are restored on launch
    • Fixed keyboard shortcuts not being reversed (e.g. seek) in RTL languages
    • Toggle play moved to left mouse button, right one now opens context menu (which was previously hard to access)
    • Many bug fixes and QoL improvements

    Info for package maintainers: Clapper no longer uses GJS, please remove it from package dependencies and descriptions. The "OpenGL rendering" part should now also be removed. In overall please try to make description more universal. From this point onward stable versions will use even numbers in minor version place and odd numbers for development releases. Sorry for all

  5. 0.5.22022-06-24 · 2022-06-24 08:16 UTC
    查看更新说明

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Clapper

    Flatpak Flatpak Nightly Crowdin Matrix Donate

    Clapper is a modern media player designed for simplicity and ease of use. Powered by GStreamer and built for the GNOME desktop environment using GTK4 toolkit, it has a clean and stylish interface that lets you focus on enjoying your favorite videos.

    This application aim is to offer all the essentials features you'd expect from a video player in a simple form.

    Clapper uses a playback queue where you can add multiple media files. Think of it like a playlist that you can build. You can easily reorder items or remove them from the queue with a simple drag and drop operation.

    Components

    Clapper's codebase consists of 2 libraries using which main application is built:

    Both libraries support GObject Introspection bindings. Check examples directory in this repo for usage.

    Above libraries are licensed under LGPL-2.1-or-later. You are free to use them in your own projects as long as you comply with license terms. Please note that until version 1.0 they should be considered as an unstable API (some things may change without prior notice).

    Other bindings:

    • Vala - part of this repo
    • Rust - maintained here and available on crates.io for clapper and clapper-gtk libraries

    Installation from Flatpak

    The Flatpak package includes all required dependencies and codecs. Additionally it also has a few patches, thus some functionalities work better in Flatpak version (until my changes are accepted upstream). List of patches used in this version can be found here.

    Packages in Linux Distributions

    Packaging status

    Unofficial AppImage can be found here.

    Pre-built RPM packages are also available in my repo (see status). Those are automatically built on each git commit, thus are considered unstable.

    Installation from Source Code

    meson setup builddir
    cd builddir
    meson compile
    sudo meson install
    

    If you want to compile app as Flatpak, remember to clone this repo with --recurse-submodules option.

    Questions?

    Feel free to ask me any questions. Come and talk on Matrix: #clapper-player:matrix.org

    Translations

    Preferred translation method is to use Clapper Crowdin web page.

    Crowdin does not require any additional tools and translating can be done through web browser. You can login using GitHub account or create a new one. Only I can add new languages to this project, so if your language is not available, please contact me first.

    Special Thanks

    Many thanks to sp1ritCS for creating and maintaining package build files. Big thanks to bridadan and Uniformbuffer3 for helping with testing V4L2 and NVDEC hardware acceleration methods. Also words of appreciation for JanGernert who made and is sharing Clapper Rust bindings.

    Thanks a lot to all the people who are supporting the development with their anonymous donations through Liberapay. I :heart: U.