diff options
Diffstat (limited to 'mpv/script_modules/mpvSockets/README.md')
-rw-r--r-- | mpv/script_modules/mpvSockets/README.md | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/mpv/script_modules/mpvSockets/README.md b/mpv/script_modules/mpvSockets/README.md deleted file mode 100644 index 9d3e1fb..0000000 --- a/mpv/script_modules/mpvSockets/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# mpvSockets -create one sockets per mpv instance (with the instance's process **ID** (PID), (**unique**)), instead of one socket for the last started instance - -dangling sockets for crashed or killed instances is an issue, -not sure if this script should handle/remove them or the clients/users, or both. - -# Installation -Download the single script file to your mpv-scripts-directory -## Linux / unixes: -``` bash -curl "https://raw.githubusercontent.com/wis/mpvSockets/master/mpvSockets.lua" --create-dirs -o "$Your_Mpv_Scripts_Directory_Location/mpvSockets.lua" -``` -if you're on Linux, most likely the location is `~/.config/mpv/scripts`, so run this before: -``` bash -$Your_Mpv_Scripts_Directory_Location=$HOME/config/mpv/scripts -``` -## Windows (untested) -powershell: -``` powershell -Invoke-WebRequest -OutFile "$env:LOCALAPPDATA\mpv\scripts\mpvSockets.lua" "https://raw.githubusercontent.com/wis/mpvSockets/master/mpvSockets.lua" -``` - -# Usage, with Mpv's [JSON IPC](https://github.com/mpv-player/mpv/blob/master/DOCS/man/ipc.rst) -## Linux / unixes (unix sockets): -a script that pauses all running mpv instances: -bash: -``` bash -#!/bin/bash -for i in $(ls /tmp/mpvSockets/*); do - echo '{ "command": ["set_property", "pause", true] }' | socat - "$i"; -done -# Socat is a command line based utility that establishes two bidirec-tional byte streams and transfers data between them. -# available on Linux and FreeBSD, propably most unixes. you can also use -``` - -## Windows (named pipes): -quote from https://mpv.io/manual/stable/#command-prompt-example -> Unfortunately, it's not as easy to test the IPC protocol on Windows, since Windows ports of socat (in Cygwin and MSYS2) don't understand named pipes. In the absence of a simple tool to send and receive from bidirectional pipes, the echo command can be used to send commands, but not receive replies from the command prompt. -> -> Assuming mpv was started with: -> -> `mpv file.mkv --input-ipc-server=\\.\pipe\mpvsocket` -> You can send commands from a command prompt: -> -> `echo show-text ${playback-time} >\\.\pipe\mpvsocket` -To be able to simultaneously read and write from the IPC pipe, like on Linux, it's necessary to write an external program that uses overlapped file I/O (or some wrapper like .NET's NamedPipeClientStream.) - -powershell client writer and reader (untested): -``` powershell -# socat.ps1 -# usage: socat.ps1 <Pipe-name> <Message> -$sockedName = args[0] -$message = args[1] - -$npipeClient = new-object System.IO.Pipes.NamedPipeClientStream('.', $socketName, [System.IO.Pipes.PipeDirection]::InOut, [System.IO.Pipes.PipeOptions]::None, [System.Security.Principal.TokenImpersonationLevel]::Impersonation) - -$pipeReader = $pipeWriter = $null -try { - $npipeClient.Connect() - $pipeReader = new-object System.IO.StreamReader($npipeClient) - $pipeWriter = new-object System.IO.StreamWriter($npipeClient) - $pipeWriter.AutoFlush = $true - - $pipeWriter.WriteLine($message) - - while (($data = $pipeReader.ReadLine()) -ne $null) { - $data - } -} -catch { - "An error occurred that could not be resolved." -} -finally { - $npipeClient.Dispose() -} -```
\ No newline at end of file |