以编程方式暂停视频播放器 mpv
Pause programmatically video player mpv
我想知道是否有办法向 linux 上的 运行 进程发送消息?
例如,是否可以通过编程方式 "pause" 以 mpv
启动的视频。
kill -s STOP $(pidof mpv)
和 kill -s CONT $(pidof mpv)
或更好:
xdotool key --window "$(xdotool search --class mpv)" p
键 "P" 默认设置为暂停视频。
要远程控制 mpv
(例如从另一个终端会话),您还可以使用选项
启动它
--input-ipc-server=/tmp/mpvsocket
并通过发出这样的命令来控制它:
echo '{ "command": ["set_property", "pause", true] }' | socat - /tmp/mpvsocket
有关(许多)更多详细信息,请参阅 man mpv
。
编辑:另见 mpv --list-properties
edit2:我发现 "toggle" pause/play 最简单的方法是
{"command": ["cycle", "pause"]}
可以通过IPC控制mpv。来自手册 mpv(1)
:
--input-ipc-server=<filename>
Enable the IPC support and create the listening socket at the given path.
On Linux and Unix, the given path is a regular filesystem path.
On Windows, named pipes are used, so the path refers to the pipe namespace (\.\pipe\<name>). If the \.\pipe\ prefix is missing, mpv will add it automatically before creating the pipe, so --input-ipc-server=/tmp/mpv-socket and --input-ipc-server=\.\pipe\tmp\mpv-socket are equivalent for IPC on Windows.
See JSON IPC for details.
举几个例子:
$ echo 'cycle pause' | socat - /tmp/mpv-socket
$ echo 'playlist-prev' | socat - /tmp/mpv-socket
$ echo 'playlist-next' | socat - /tmp/mpv-socket
请参阅 mpv(1)
了解更多信息。
另请参阅:
我想知道是否有办法向 linux 上的 运行 进程发送消息?
例如,是否可以通过编程方式 "pause" 以 mpv
启动的视频。
kill -s STOP $(pidof mpv)
和 kill -s CONT $(pidof mpv)
或更好:
xdotool key --window "$(xdotool search --class mpv)" p
键 "P" 默认设置为暂停视频。
要远程控制 mpv
(例如从另一个终端会话),您还可以使用选项
--input-ipc-server=/tmp/mpvsocket
并通过发出这样的命令来控制它:
echo '{ "command": ["set_property", "pause", true] }' | socat - /tmp/mpvsocket
有关(许多)更多详细信息,请参阅 man mpv
。
编辑:另见 mpv --list-properties
edit2:我发现 "toggle" pause/play 最简单的方法是
{"command": ["cycle", "pause"]}
可以通过IPC控制mpv。来自手册 mpv(1)
:
--input-ipc-server=<filename>
Enable the IPC support and create the listening socket at the given path.
On Linux and Unix, the given path is a regular filesystem path.
On Windows, named pipes are used, so the path refers to the pipe namespace (\.\pipe\<name>). If the \.\pipe\ prefix is missing, mpv will add it automatically before creating the pipe, so --input-ipc-server=/tmp/mpv-socket and --input-ipc-server=\.\pipe\tmp\mpv-socket are equivalent for IPC on Windows.
See JSON IPC for details.
举几个例子:
$ echo 'cycle pause' | socat - /tmp/mpv-socket
$ echo 'playlist-prev' | socat - /tmp/mpv-socket
$ echo 'playlist-next' | socat - /tmp/mpv-socket
请参阅 mpv(1)
了解更多信息。
另请参阅: