Add first PoC
This commit is contained in:
commit
8f8e1a318f
2 changed files with 55 additions and 0 deletions
2
requirements.txt
Normal file
2
requirements.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
python-mpd2==1.0.0
|
||||
python-mpv==0.3.8
|
53
video-sync.py
Executable file
53
video-sync.py
Executable file
|
@ -0,0 +1,53 @@
|
|||
import mpv
|
||||
import pdb
|
||||
import sys
|
||||
import time
|
||||
from mpd import MPDClient
|
||||
|
||||
def my_log(loglevel, component, message):
|
||||
print('[{}] {}: {}'.format(loglevel, component, message))
|
||||
|
||||
player = mpv.MPV(log_handler=my_log, ytdl=True, input_default_bindings=True, input_vo_keyboard=True)
|
||||
|
||||
# Property access, these can be changed at runtime
|
||||
@player.property_observer('time-pos')
|
||||
def time_observer(_name, value):
|
||||
# Here, _value is either None if nothing is playing or a float containing
|
||||
# fractional seconds since the beginning of the file.
|
||||
#print('Now playing at {:.2f}s'.format(value))
|
||||
pass
|
||||
|
||||
#player.fullscreen = True
|
||||
player.mute = True
|
||||
player.loop_playlist = 'inf'
|
||||
# Option access, in general these require the core to reinitialize
|
||||
player['vo'] = 'opengl'
|
||||
|
||||
@player.on_key_press('q')
|
||||
def my_q_binding():
|
||||
sys.exit()
|
||||
|
||||
client = MPDClient()
|
||||
player.play('https://www.youtube.com/watch?v=RChFX5I2dkc')
|
||||
while True:
|
||||
client.connect("10.42.0.3", 6600)
|
||||
mpd_time = int(client.status().get("time").split(":")[0])
|
||||
video_time = player.time_pos
|
||||
try:
|
||||
video_time = int(video_time)
|
||||
except TypeError:
|
||||
pass
|
||||
else:
|
||||
#pdb.set_trace()
|
||||
delta = abs(mpd_time - video_time)
|
||||
print("mpd: {}, video: {}, delta: {}".format(mpd_time, video_time, delta))
|
||||
|
||||
if delta > 1:
|
||||
print("delta > 1s, syncing")
|
||||
player.time_pos = mpd_time
|
||||
|
||||
client.disconnect()
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
del player
|
Loading…
Reference in a new issue