0% found this document useful (0 votes)
31 views1 page

MPV (Json-Ipc)

This document provides instructions on using MPV with JSON IPC for controlling video playback through command-line interface. It details various commands to retrieve properties, control playback, and manipulate subtitles, along with examples of how to send these commands using tools like socat and nc. Additionally, it includes commands for obtaining metadata and audio information from the video file.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views1 page

MPV (Json-Ipc)

This document provides instructions on using MPV with JSON IPC for controlling video playback through command-line interface. It details various commands to retrieve properties, control playback, and manipulate subtitles, along with examples of how to send these commands using tools like socat and nc. Additionally, it includes commands for obtaining metadata and audio information from the video file.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

 New  Login Search...

 1351  2021-06-05  m1gin


MPV (json-ipc)

#linux #ubuntu #mpv #cli #socket

Starting MPV to be controlled by JSON IPC:

mpv --input-ipc-server='/tmp/mpvsocket' video.mp4

#https://mpv.io/manual/master/#json-ipc
#commands: https://mpv.io/manual/master/#list-of-input-commands
#properties: https://mpv.io/manual/master/#properties
#events: https://mpv.io/manual/master/#list-of-events

#nc can also be used instead of socat


echo '{ "command": ["get_property", "sub-text"] }' | nc -q 0 -U /tmp/mpvsocket

#read json
echo '{"data":421319855,"error":"success"}' | jq ".data"

Read async responses:

socat - /tmp/mpvsocket

Output:
{"event":"seek"}
{"event":"playback-restart"}
....

get filename

echo '{ "command": ["get_property", "filename"] }' | socat - /tmp/mpvsocket


#{"data":"video.mp4","error":"success"}

get filename without extension

echo '{ "command": ["get_property", "filename/no-ext"] }' | socat -


/tmp/mpvsocket
#{"data":"video","error":"success"}

get path

echo '{ "command": ["get_property", "path"] }' | socat - /tmp/mpvsocket


#{"data":"/home/user/test/video.mp4","error":"success"}

get working directory

echo '{ "command": ["get_property", "working-directory"] }' | socat -


/tmp/mpvsocket
#{"data":"/home/user/test","error":"success"}

get file size

echo '{ "command": ["get_property", "file-size"] }' | socat -


/tmp/mpvsocket
#{"data":421319855,"error":"success"}

#get total length in seconds


echo '{ "command": ["get_property", "duration"] }' | socat - /tmp/mpvsocket
#{"data":2466.884000,"error":"success"}

get current position..

echo '{ "command": ["get_property", "playback-time"] }' | socat -


/tmp/mpvsocket
#{"data":159.076000,"error":"success"}

#get remaining time, calculated by speed rate

echo '{ "command": ["get_property", "playtime-remaining"] }' | socat -


/tmp/mpvsocket
#{"data":2319.236000,"error":"success"}

#show filename on screen

echo 'show-text "file: ${filename}"' | socat - /tmp/mpvsocket

#show subtitle line for 5 seconds

echo 'show-text "${sub-text}" "5000" ' | socat - /tmp/mpvsocket

#show time on video screen

echo 'show-text ${playback-time}' | socat - /tmp/mpvsocket

#show current time as seconds

echo 'show-text "time: ${=time-pos}"' | socat - /tmp/mpvsocket

#add id to the request...

echo '{ "command": ["get_property", "time-pos"], "request_id": 100 }' |


socat - /tmp/mpvsocket
#{"data":487.905000,"request_id":100,"error":"success"}

#get volume

echo '{ "command": ["get_property", "volume"] }' | socat - /tmp/mpvsocket


#{"data":100.000000,"error":"success"}

#get speed

echo '{ "command": ["get_property", "speed"] }' | socat - /tmp/mpvsocket


#{"data":1.000000,"error":"success"}

#set speed

echo '{ "command": ["set_property", "speed", 1.4] }' | socat -


/tmp/mpvsocket
#{"error":"success"}

#get position as microseconds

echo '{ "command": ["get_time_us"] }' | socat - /tmp/mpvsocket


#{"data":1010179736,"error":"success"}

#get current subtitle line

echo '{ "command": ["get_property", "sub-text"] }' | socat - /tmp/mpvsocket


#{"data":"- What's wrong with your mom?\u000a- She's a
diabetic.","error":"success"}

#pause

{ "command": ["set_property", "pause", true] }

#jump 10 seconds forward

echo '{ "command": ["seek", 10] }' | socat - /tmp/mpvsocket


#{"data":null,"error":"success"}

#jump 5 seconds backward


echo '{ "command": ["seek", -5] }' | socat - /tmp/mpvsocket
#{"data":null,"error":"success"}

#jump to specific seconds


echo '{ "command": ["seek", 100, "absolute"] }' | socat - /tmp/mpvsocket
#{"data":null,"error":"success"}

#sid alias sub

#get active subtitle id


echo '{ "command": ["get_property", "sid"] }' | socat - /tmp/mpvsocket
#{"data":1,"error":"success"}

#remove subtitle
echo '{ "command": ["sub-remove", "1"] }' | socat - /tmp/mpvsocket

#disable subtitle
echo '{ "command": ["set_property", "sid", "no"] }' | socat - /tmp/mpvsocket
#{"error":"success"}

#set subtitle
echo '{ "command": ["set_property", "sid", "1"] }' | socat - /tmp/mpvsocket

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


{"error":"success"}

#append a file
echo '{ "command": ["loadfile", "https://test.com/v.mp4", "append"] }' | socat - /tmp/mpvsocket

#loop a file...
--loop-file=<N|inf|no>, --loop=<N|inf|no>

#observe a property... need to read socket for output..


echo '{ "command": ["observe_property", 222, "volume"] }' | socat - /tmp/mpvsocket

#stop observing a property


{ "command": ["unobserve_property", 222] }

#get metadata
echo '{ "command": ["get_property", "metadata"] }' | socat - /tmp/mpvsocket
#{"data":{"title":"Enlem_ve_Boylam_111_Kasim_201","artist":"M.
Birgin","album":"www.mbirgin.com","date":"2017","comment":"www.mbirgin.com","genre":"Blues"},"error":"success
"}

#get audio info


echo '{ "command": ["get_property", "audio-params"] }' | socat - /tmp/mpvsocket
#{"data":{"samplerate":44100,"channel-count":2,"channels":"stereo","hr-
channels":"stereo","format":"floatp"},"error":"success"}

#get bitrate
echo '{ "command": ["get_property", "audio-bitrate"] }' | socat - /tmp/mpvsocket
#{"data":192003,"error":"success"}

#get mpv version


echo '{ "command": ["get_property", "mpv-version"] }' | socat - /tmp/mpvsocket

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

Contact - About - Help

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy