diff --git a/player/player-back.service b/player/player-back.service index 30cbe5f..1ae4193 100644 --- a/player/player-back.service +++ b/player/player-back.service @@ -8,4 +8,4 @@ KillSignal=SIGINT ExecStart=/srv/pandora/t_for_time/player/player.py --mode peer --playlist /srv/t_for_time/render/back.m3u [Install] -WantedBy=graphical-session.target +WantedBy=default.target diff --git a/player/player-front.service b/player/player-front.service index 856a32b..6090352 100644 --- a/player/player-front.service +++ b/player/player-front.service @@ -8,4 +8,4 @@ KillSignal=SIGINT ExecStart=/srv/pandora/t_for_time/player/player.py --mode main --playlist /srv/t_for_time/render/front.m3u [Install] -WantedBy=graphical-session.target +WantedBy=default.target diff --git a/player/player.py b/player/player.py index a408a54..89395d3 100755 --- a/player/player.py +++ b/player/player.py @@ -80,8 +80,7 @@ class Sync(Thread): if self._tick and abs(time.time() - self._tick) > 60: logger.error("player is stuck") self._tick = 0 - self.stop() - self.mpv.stop() + self.quit() def q_binding(self, *args): self.stop() diff --git a/player/saxophone.service b/player/saxophone.service index 2b9d2f0..dc6ce7a 100644 --- a/player/saxophone.service +++ b/player/saxophone.service @@ -8,4 +8,4 @@ ExecStart=/usr/bin/mpv --quiet --loop /srv/t_for_time/render/Saxophone-5.1.mp4 KillSignal=SIGINT [Install] -WantedBy=graphical-session.target +WantedBy=default.target diff --git a/render.py b/render.py index f7adb21..b551831 100644 --- a/render.py +++ b/render.py @@ -253,30 +253,33 @@ def get_scene_duration(scene): def render(root, scene, prefix=''): fps = 24 files = [] - scene_duration = int(get_scene_duration(scene) * 24) for timeline, data in scene.items(): #print(timeline) project = KDEnliveProject(root) tracks = [] - track_durations = {} for track, clips in data.items(): #print(track) for clip in clips: project.append_clip(track, clip) - track_durations[track] = int(sum([c['duration'] for c in clips]) * 24) - if timeline.startswith('audio-'): - track_duration = project.get_duration() - delta = scene_duration - track_duration - if delta > 0: - for track in track_durations: - if track_durations[track] == track_duration: - project.append_clip(track, {'blank': True, "duration": delta/24}) - break path = os.path.join(root, prefix + "%s.kdenlive" % timeline) with open(path, 'w') as fd: fd.write(project.to_xml()) files.append(path) + if timeline == "audio": + duration = project.get_duration() + for track, clips in data.items(): + project = KDEnliveProject(root) + for clip in clips: + project.append_clip(track, clip) + track_duration = project.get_duration() + delta = duration - track_duration + if delta > 0: + project.append_clip(track, {'blank': True, "duration": delta/24}) + path = os.path.join(root, prefix + "%s-%s.kdenlive" % (timeline, track)) + with open(path, 'w') as fd: + fd.write(project.to_xml()) + files.append(path) return files def get_fragments(clips, voice_over, prefix): @@ -448,8 +451,8 @@ def render_all(options): for cmd in cmds: #print(" ".join([str(x) for x in cmd])) subprocess.call(cmd) - ft = ox.avinfo(str(fragment_prefix / "front-5.1.mp4"))['duration'] - bt = ox.avinfo(str(fragment_prefix / "back.mp4"))['duration'] + ft = ox.avinfo(fragment_prefix / "front-5.1.mp4")['duration'] + bt = ox.avinfo(fragment_prefix / "back.mp4")['duration'] if ft != bt: print(ft, fragment_prefix / "front-5.1.mp4") print(bt, fragment_prefix / "back.mp4")