Пауза программно видео плеер MPV

Я хотел бы знать, есть ли способ отправить сообщение запущенному процессу в Linux?

Например, можно ли программно "приостановить" видео, запущенное с mpv,

3 ответа

Решение

Контролировать mpv удаленно (например, из другого терминального сеанса) вы также можете запустить его с опцией

--input-ipc-server=/tmp/mpvsocket

и управляйте этим, выполняя команды как это:

echo '{ "command": ["set_property", "pause", true] }' | socat - /tmp/mpvsocket

Увидеть man mpv для (многих) более подробной информации.

редактировать: см. также mpv --list-properties

edit2: самый простой способ "переключить" паузу / воспроизведение

{"command": ["cycle", "pause"]}

kill -s STOP $(pidof mpv) а также kill -s CONT $(pidof mpv)

или лучше:

xdotool key --window "$(xdotool search --class mpv)" p

Кнопка "P", по умолчанию установлена ​​для приостановки видео.

Можно управлять MPV через IPC. Из руководства 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) Узнать больше.

Смотрите также:

Другие вопросы по тегам