Compare commits
2 commits
cb740dd48c
...
7fd38a091a
| Author | SHA1 | Date | |
|---|---|---|---|
| 7fd38a091a | |||
| 5567aa5560 |
3 changed files with 42 additions and 42 deletions
|
|
@ -1135,7 +1135,7 @@ def add_tag(item, tag):
|
|||
item.data['tags'].append(tag)
|
||||
item.save()
|
||||
|
||||
def process_motion_firstframe():
|
||||
def process_motion_firstframe(character="P1", keep=False):
|
||||
l = itemlist.models.List.objects.get(name='Motion-Firstframe')
|
||||
for i in l.items.all():
|
||||
ai = Item.objects.filter(data__type__icontains='ai').filter(data__title=i.data['title'])
|
||||
|
|
@ -1144,7 +1144,7 @@ def process_motion_firstframe():
|
|||
continue
|
||||
print(i)
|
||||
try:
|
||||
reshoot_item_segments(i, 'P1', keep=True)
|
||||
replace_character_motion_control(i, character, keep=keep)
|
||||
except:
|
||||
add_tag(i, 'ai-failed')
|
||||
print('>> failed', i)
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ class Sync(Thread):
|
|||
_pos = None
|
||||
_tick = 0
|
||||
need_to_sync = False
|
||||
loops = []
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.is_main = kwargs.get('mode', 'main') == 'main'
|
||||
|
|
@ -68,17 +69,24 @@ class Sync(Thread):
|
|||
if self.is_main:
|
||||
self.socket_enable_broadcast()
|
||||
|
||||
if kwargs.get("sax"):
|
||||
self.sax = mpv.MPV(
|
||||
if kwargs.get("music"):
|
||||
music = mpv.MPV(
|
||||
log_handler=mpv_log, input_default_bindings=True,
|
||||
input_vo_keyboard=True,
|
||||
)
|
||||
self.sax.loop_file = True
|
||||
self.sax.play("/srv/p_for_power/render/Saxophone-5.1.mp4")
|
||||
else:
|
||||
self.sax = None
|
||||
music.loop_file = True
|
||||
music.play("/srv/p_for_power/render/music-5.1.mp4")
|
||||
self.loops.append(music)
|
||||
|
||||
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(
|
||||
log_handler=mpv_log, input_default_bindings=True,
|
||||
input_vo_keyboard=True,
|
||||
|
|
@ -88,16 +96,6 @@ class Sync(Thread):
|
|||
sub_margin_y=CONFIG["sub_margin"],
|
||||
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"):
|
||||
self.mpv.vf = CONFIG["vf"]
|
||||
self.mpv.observe_property('time-pos', self.time_pos_cb)
|
||||
|
|
@ -124,10 +122,10 @@ class Sync(Thread):
|
|||
fmt = '%Y-%m-%d %H'
|
||||
now = datetime.now()
|
||||
offset = (now - datetime.strptime(now.strftime(fmt), fmt)).total_seconds()
|
||||
if self.sax:
|
||||
self.sax.wait_until_playing()
|
||||
self.sax.seek(offset, 'absolute', 'exact')
|
||||
self.sax.pause = True
|
||||
for loop in self.loops:
|
||||
loop.wait_until_playing()
|
||||
loop.seek(offset, 'absolute', 'exact')
|
||||
loop.pause = True
|
||||
position = 0
|
||||
for idx, item in enumerate(self.mpv.playlist):
|
||||
duration = ox.avinfo(item['filename'])['duration']
|
||||
|
|
@ -141,8 +139,8 @@ class Sync(Thread):
|
|||
break
|
||||
else:
|
||||
position += duration
|
||||
if self.sax:
|
||||
self.sax.pause = False
|
||||
for loop in self.loops:
|
||||
loop.pause = False
|
||||
|
||||
self.ready = True
|
||||
Thread.__init__(self)
|
||||
|
|
@ -185,8 +183,8 @@ class Sync(Thread):
|
|||
return
|
||||
self.is_paused = True
|
||||
self.mpv.pause = True
|
||||
if self.sax:
|
||||
self.sax.pause = True
|
||||
for loop in self.loops:
|
||||
loop.pause = True
|
||||
self.send_playback_state()
|
||||
|
||||
def p_binding(self, *args):
|
||||
|
|
@ -195,8 +193,8 @@ class Sync(Thread):
|
|||
self.is_paused = False
|
||||
self._tick = 0
|
||||
self.mpv.pause = False
|
||||
if self.sax:
|
||||
self.sax.pause = False
|
||||
for loop in self.loops:
|
||||
loop.pause = False
|
||||
self.send_playback_state()
|
||||
|
||||
def stop(self, *args):
|
||||
|
|
@ -408,16 +406,14 @@ class Sync(Thread):
|
|||
|
||||
|
||||
def main():
|
||||
prefix = os.path.expanduser('~/Videos/p_for_power')
|
||||
|
||||
parser = argparse.ArgumentParser(description='p_for_power sync player')
|
||||
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('--prefix', help='video location', default=prefix)
|
||||
parser.add_argument('--playlist', default='/srv/p_for_power/render/front.m3u', help="m3u")
|
||||
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('--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)
|
||||
args = parser.parse_args()
|
||||
|
||||
|
|
@ -435,7 +431,11 @@ def main():
|
|||
base = os.path.dirname(os.path.abspath(__file__))
|
||||
#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:
|
||||
try:
|
||||
player.mpv.wait_for_playback()
|
||||
|
|
|
|||
|
|
@ -210,7 +210,6 @@ def compose(clips, fragment, target=150, base=1024, voice_over=None, options=Non
|
|||
scene_duration = int(get_scene_duration(scene) * fps)
|
||||
voice_overs = []
|
||||
sub_offset = 0
|
||||
vo_min = 0
|
||||
subs = []
|
||||
print("--")
|
||||
print("Voice Over:")
|
||||
|
|
@ -221,6 +220,7 @@ def compose(clips, fragment, target=150, base=1024, voice_over=None, options=Non
|
|||
gap = (5 * fps + random_int(seq, 10 * fps)) / fps
|
||||
else:
|
||||
gap = (2 * fps + random_int(seq, 5 * fps)) / fps
|
||||
gap = format_duration(gps, fps)
|
||||
if int((sub_offset + gap)* fps) > scene_duration:
|
||||
gap = format_duration((scene_duration - int(sub_offset * fps)) / fps, fps)
|
||||
scene['audio-center']['A1'].append({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue