如何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
具有示例配置文件。
您可以查看手册了解不同操作系统下的使用方法:
答案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重写。