prepare player
This commit is contained in:
parent
cb740dd48c
commit
5567aa5560
2 changed files with 41 additions and 41 deletions
|
|
@ -1135,7 +1135,7 @@ def add_tag(item, tag):
|
||||||
item.data['tags'].append(tag)
|
item.data['tags'].append(tag)
|
||||||
item.save()
|
item.save()
|
||||||
|
|
||||||
def process_motion_firstframe():
|
def process_motion_firstframe(character="P1", keep=False):
|
||||||
l = itemlist.models.List.objects.get(name='Motion-Firstframe')
|
l = itemlist.models.List.objects.get(name='Motion-Firstframe')
|
||||||
for i in l.items.all():
|
for i in l.items.all():
|
||||||
ai = Item.objects.filter(data__type__icontains='ai').filter(data__title=i.data['title'])
|
ai = Item.objects.filter(data__type__icontains='ai').filter(data__title=i.data['title'])
|
||||||
|
|
@ -1144,7 +1144,7 @@ def process_motion_firstframe():
|
||||||
continue
|
continue
|
||||||
print(i)
|
print(i)
|
||||||
try:
|
try:
|
||||||
reshoot_item_segments(i, 'P1', keep=True)
|
replace_character_motion_control(i, character, keep=keep)
|
||||||
except:
|
except:
|
||||||
add_tag(i, 'ai-failed')
|
add_tag(i, 'ai-failed')
|
||||||
print('>> failed', i)
|
print('>> failed', i)
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ class Sync(Thread):
|
||||||
_pos = None
|
_pos = None
|
||||||
_tick = 0
|
_tick = 0
|
||||||
need_to_sync = False
|
need_to_sync = False
|
||||||
|
loops = []
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.is_main = kwargs.get('mode', 'main') == 'main'
|
self.is_main = kwargs.get('mode', 'main') == 'main'
|
||||||
|
|
@ -68,17 +69,24 @@ class Sync(Thread):
|
||||||
if self.is_main:
|
if self.is_main:
|
||||||
self.socket_enable_broadcast()
|
self.socket_enable_broadcast()
|
||||||
|
|
||||||
if kwargs.get("sax"):
|
if kwargs.get("music"):
|
||||||
self.sax = mpv.MPV(
|
music = mpv.MPV(
|
||||||
log_handler=mpv_log, input_default_bindings=True,
|
log_handler=mpv_log, input_default_bindings=True,
|
||||||
input_vo_keyboard=True,
|
input_vo_keyboard=True,
|
||||||
)
|
)
|
||||||
self.sax.loop_file = True
|
music.loop_file = True
|
||||||
self.sax.play("/srv/p_for_power/render/Saxophone-5.1.mp4")
|
music.play("/srv/p_for_power/render/music-5.1.mp4")
|
||||||
else:
|
self.loops.append(music)
|
||||||
self.sax = None
|
|
||||||
|
if kwargs.get("forest"):
|
||||||
|
forest = mpv.MPV(
|
||||||
|
log_handler=mpv_log, input_default_bindings=True,
|
||||||
|
input_vo_keyboard=True,
|
||||||
|
)
|
||||||
|
forest.loop_file = True
|
||||||
|
forest.play("/srv/p_for_power/render/forest-5.1.mp4")
|
||||||
|
self.loops.append(forest)
|
||||||
|
|
||||||
if mpv.MPV_VERSION >= (2, 2):
|
|
||||||
self.mpv = mpv.MPV(
|
self.mpv = mpv.MPV(
|
||||||
log_handler=mpv_log, input_default_bindings=True,
|
log_handler=mpv_log, input_default_bindings=True,
|
||||||
input_vo_keyboard=True,
|
input_vo_keyboard=True,
|
||||||
|
|
@ -88,16 +96,6 @@ class Sync(Thread):
|
||||||
sub_margin_y=CONFIG["sub_margin"],
|
sub_margin_y=CONFIG["sub_margin"],
|
||||||
sub_ass_line_spacing=CONFIG["sub_spacing"],
|
sub_ass_line_spacing=CONFIG["sub_spacing"],
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
self.mpv = mpv.MPV(
|
|
||||||
log_handler=mpv_log, input_default_bindings=True,
|
|
||||||
input_vo_keyboard=True,
|
|
||||||
sub_text_font_size=CONFIG["font_size"], sub_text_font=CONFIG["font"],
|
|
||||||
sub_border_size=CONFIG["font_border"],
|
|
||||||
sub_border_color=CONFIG["sub_border_color"],
|
|
||||||
sub_margin_y=CONFIG["sub_margin"],
|
|
||||||
sub_ass_line_spacing=CONFIG["sub_spacing"],
|
|
||||||
)
|
|
||||||
if CONFIG.get("vf"):
|
if CONFIG.get("vf"):
|
||||||
self.mpv.vf = CONFIG["vf"]
|
self.mpv.vf = CONFIG["vf"]
|
||||||
self.mpv.observe_property('time-pos', self.time_pos_cb)
|
self.mpv.observe_property('time-pos', self.time_pos_cb)
|
||||||
|
|
@ -124,10 +122,10 @@ class Sync(Thread):
|
||||||
fmt = '%Y-%m-%d %H'
|
fmt = '%Y-%m-%d %H'
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
offset = (now - datetime.strptime(now.strftime(fmt), fmt)).total_seconds()
|
offset = (now - datetime.strptime(now.strftime(fmt), fmt)).total_seconds()
|
||||||
if self.sax:
|
for loop in self.loops:
|
||||||
self.sax.wait_until_playing()
|
loop.wait_until_playing()
|
||||||
self.sax.seek(offset, 'absolute', 'exact')
|
loop.seek(offset, 'absolute', 'exact')
|
||||||
self.sax.pause = True
|
loop.pause = True
|
||||||
position = 0
|
position = 0
|
||||||
for idx, item in enumerate(self.mpv.playlist):
|
for idx, item in enumerate(self.mpv.playlist):
|
||||||
duration = ox.avinfo(item['filename'])['duration']
|
duration = ox.avinfo(item['filename'])['duration']
|
||||||
|
|
@ -141,8 +139,8 @@ class Sync(Thread):
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
position += duration
|
position += duration
|
||||||
if self.sax:
|
for loop in self.loops:
|
||||||
self.sax.pause = False
|
loop.pause = False
|
||||||
|
|
||||||
self.ready = True
|
self.ready = True
|
||||||
Thread.__init__(self)
|
Thread.__init__(self)
|
||||||
|
|
@ -185,8 +183,8 @@ class Sync(Thread):
|
||||||
return
|
return
|
||||||
self.is_paused = True
|
self.is_paused = True
|
||||||
self.mpv.pause = True
|
self.mpv.pause = True
|
||||||
if self.sax:
|
for loop in self.loops:
|
||||||
self.sax.pause = True
|
loop.pause = True
|
||||||
self.send_playback_state()
|
self.send_playback_state()
|
||||||
|
|
||||||
def p_binding(self, *args):
|
def p_binding(self, *args):
|
||||||
|
|
@ -195,8 +193,8 @@ class Sync(Thread):
|
||||||
self.is_paused = False
|
self.is_paused = False
|
||||||
self._tick = 0
|
self._tick = 0
|
||||||
self.mpv.pause = False
|
self.mpv.pause = False
|
||||||
if self.sax:
|
for loop in self.loops:
|
||||||
self.sax.pause = False
|
loop.pause = False
|
||||||
self.send_playback_state()
|
self.send_playback_state()
|
||||||
|
|
||||||
def stop(self, *args):
|
def stop(self, *args):
|
||||||
|
|
@ -408,16 +406,14 @@ class Sync(Thread):
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
prefix = os.path.expanduser('~/Videos/p_for_power')
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='p_for_power sync player')
|
parser = argparse.ArgumentParser(description='p_for_power sync player')
|
||||||
parser.add_argument('--mode', help='peer or main', default="peer")
|
parser.add_argument('--mode', help='peer or main', default="peer")
|
||||||
parser.add_argument('--playlist', default='/srv/p_for_power/render/128/front.m3u', help="m3u")
|
parser.add_argument('--playlist', default='/srv/p_for_power/render/front.m3u', help="m3u")
|
||||||
parser.add_argument('--prefix', help='video location', default=prefix)
|
|
||||||
parser.add_argument('--window', action='store_true', help='run in window', default=False)
|
parser.add_argument('--window', action='store_true', help='run in window', default=False)
|
||||||
parser.add_argument('--debug', action='store_true', help='debug', default=False)
|
parser.add_argument('--debug', action='store_true', help='debug', default=False)
|
||||||
parser.add_argument('--hour', action='store_true', help='hour', default=False)
|
parser.add_argument('--hour', action='store_true', help='hour', default=False)
|
||||||
parser.add_argument('--sax', action='store_true', help='hour', default=False)
|
parser.add_argument('--no-forest', action='store_false', help='disable background forest loop', default=True)
|
||||||
|
parser.add_argument('--no-music', action='store_false', help='disable background music loop', default=True)
|
||||||
parser.add_argument('--config', help='config', default=None)
|
parser.add_argument('--config', help='config', default=None)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
@ -435,7 +431,11 @@ def main():
|
||||||
base = os.path.dirname(os.path.abspath(__file__))
|
base = os.path.dirname(os.path.abspath(__file__))
|
||||||
#os.chdir(base)
|
#os.chdir(base)
|
||||||
|
|
||||||
player = Sync(mode=args.mode, playlist=args.playlist, fullscreen=not args.window, hour=args.hour, sax=args.sax)
|
player = Sync(
|
||||||
|
mode=args.mode, playlist=args.playlist, fullscreen=not args.window, hour=args.hour,
|
||||||
|
music=not args.no_music,
|
||||||
|
forest=not args.no_forest
|
||||||
|
)
|
||||||
while player.active:
|
while player.active:
|
||||||
try:
|
try:
|
||||||
player.mpv.wait_for_playback()
|
player.mpv.wait_for_playback()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue