一个新的视频播放器项目进入了KDE

From Introducing Haruna (kde.org):

Jonathan Riddell<[jr@jriddell.org>
2021/5/6 12:28:26
Just passed the Incubator process is Haruna, a video player. It uses a
bunch of KDE libraries so is a natural fit to move into KDE.

Multimedia / Haruna · GitLab

The project is run by George Florea Bănuș.

Jonathan

源代码托管在 Multimedia / Haruna · GitLab (kde.org),基于libmpvKF5Kirigami2KF5XmlGui,功能包括:

  • 通过youtube-dl播放在线视频
  • 用鼠标点击切换播放列表,播放列表覆盖在视频上
  • 自动跳过含有特定单词的章节
  • 可配置的快捷方式和鼠标按钮
  • 通过鼠标中键点击进度条快速跳到下一章


目前它仅以 flatpakAppImage的形式可用。现在它的源代码托管已经迁移到了KDE,所以未来它或许会使用KDE的CI发布flatpak和AppImage:
https://binary-factory.kde.org/

这是什么黑科技?
单词是在文件名还是字幕或音视频中?
这用不好就细思恐极啊。

原文如此:

Features

these are just some features that set Haruna apart from others players

  • play online videos, through youtube-dl
  • toggle playlist with mouse-over, playlist overlays the video
  • auto skip chapter containing certain words
  • configurable shortcuts and mouse buttons
  • quick jump to next chapter by middle click on progress bar

相关功能的帮助说:

Skip chapters

When enabled it automatically skips chapters containing certain words/characters.

The words/characters to skip are defined as a comma separated string.
The match is not exact, meaning op will match words containing it like opening.

这个功能具体是什么情况还要进行研究……

    onChapterChanged: {
        if (!PlaybackSettings.skipChapters) {
            return
        }

        const chapters = mpv.getProperty("chapter-list")
        const chaptersToSkip = PlaybackSettings.chaptersToSkip
        if (chapters.length === 0 || chaptersToSkip === "") {
            return
        }

        const words = chaptersToSkip.split(",")
        for (let i = 0; i < words.length; ++i) {
            if (chapters[mpv.chapter] && chapters[mpv.chapter].title.toLowerCase().includes(words[i].trim())) {
                actions.seekNextChapterAction.trigger()
                if (PlaybackSettings.showOsdOnSkipChapters) {
                    osd.message(i18n("Skipped chapter: %1").arg(chapters[mpv.chapter-1].title))
                }
                // a chapter title can match multiple words
                // return to prevent skipping multiple chapters
                return
            }
        }
    }

我研究了源代码,该功能应当匹配的是视频章节的标题中的字母或单词(设置中给出的例子也是op,ed,chapter 1)。

1 个赞

在什么场景下会有这个需求?
跳过不带特定单词的文件,或者自动选择带特定单词的文件的需求我倒是有。

此功能可能适用于以下用例:
fansub 将其作品作为 mkv 容器格式文件分发,并将文件内容分为 op,main,ed 三个章节。部分用户可能只想观看 main 章节而跳过 op 和 ed 章节。
现在考虑 fansub 不是分别分发每一集而是将一季或一年的内容作为一个 mkv 容器文件分发,这样该文件将具有数量非常可观的章节数,如果播放器不能自动跳过部分章节,用户就必须手动跳过他们不想观看的章节,在这个例子中,他们将要手动跳过大量的章节,这会很麻烦。

问题在于,该功能针对的是章节名,而非文件名,这两者是不相同的东西。一个视频文件只会具有一个文件名,但是它可能具有多个章节名。该功能谈论的是在播放视频文件时自动跳过某些章节。
参考
https://www.matroska.org/technical/chapters.html

懂了。

今天在 debian 里安装了这个播放器,感觉还不错,等用一段时间后如果没问题就准备替换现有的 smplayer 了,后者在 wayland 下不能正常播放视频。

同意。smplayer不能在wayland下正常播放视频,Celluloid界面过于简陋,很多操作都要使用快捷键,而vlc迟迟不发布4.0版本,与ffmpeg5.0不匹配导致VA-API无法工作,这各播放器现在看起来似乎是最好的一个选择了。