如何在命令行中控制 mpv?

如何在命令行中控制 mpv?

如何mpv在命令行中进行控制?

就像有一个mpv next/prev命令可以用来播放下一个或上一个媒体文件吗?

答案1

有两种方法可以做到这一点:

  • 设置IPC进行mpv和socket控制
  • 使用第 3 方脚本

为 mpv 设置 IPC

你可以用 IPC 来做这样的事情,如下man mpv所示:

使用 --input-ipc-server 也适用于远程控制等目的。

首先,您需要在您的mpv.conf或中启用 IPC 套接字~/.config/mpv/mpv.conf

# Enable the IPC support to control mpv from the command-line.
input-ipc-server=~~/socket

如果您想暂时保持其打开状态并且仅在一个会话中保持打开状态,您可以执行以下操作:

$ mpv --input-ipc-server=$XDG_CONFIG_HOME/mpv/socket

现在您可以控制您的媒体:

播放/暂停

echo cycle pause | socat - "$XDG_CONFIG_HOME/mpv/socket"

下一曲目

echo playlist-next | socat - "$XDG_CONFIG_HOME/mpv/socket"

上一曲目

echo playlist-prev | socat - "$XDG_CONFIG_HOME/mpv/socket"

使用外部程序

从命令行控制 mpv 的另一种方法是使用mpvc或此类程序,就像mpc“mpv”一样。

真的很强大,例子:

$ mpvc next                   # Play next media
$ mpvc prev                   # Play previous media
$ mpvc mute                   # Mute media's sound track
$ mpvc unmute                 # Unmute media's sound track
$ mpvc volume +               # Increase volume
$ mpvc volume -               # Decrease volume
...

答案2

有多个选项可以从命令行与 mpv 交互,如手动的例如,

  • 键绑定(使用“input.conf”)
  • 屏幕显示
  • JSONIPC
  • 客户端 API (libmpv) ...

在 GNU 系统中,您可以检查/usr/share/doc/mpv/以获取有关如何配置 mpv 的一些灵感:input.conf具有默认的键绑定并mpv.conf具有示例配置文件。

您可以查看手册了解不同操作系统下的使用方法:

https://mpv.io/manual/master/#command-interface

答案3

虽然有多种方法和程序可以处理从命令行控制 MPV,但我对现有的解决方案并不满意,因此我编写了一个支持从 Python 命令行控制 mpv 的脚本。

https://github.com/ideasman42/mpvctl/blob/master/mpvctl


$ mpvctl next               # Play next media
$ mpvctl prev               # Play previous media
$ mpvctl add *.mp3          # Play MP3's in the current directory.
$ mpvctl trash              # Move the file to the trash and play the next. 

这支持:

  • 基本功能,例如暂停/播放、下一个/上一个..等。
  • 相对寻求。
  • 添加文件,可以选择替换当前播放列表。
  • 将正在播放的文件移至垃圾箱。

我发现的替代方案有一些限制($PWD例如,在添加文件时不扩展),并且我发现 BASH 处理更多涉及的命令很难遵循。因此用Python重写。

相关内容