From 8902e0ad167a78b53b71645eae3e36ab433a4718 Mon Sep 17 00:00:00 2001 From: q Date: Fri, 13 Dec 2024 14:44:57 +0200 Subject: [PATCH] multiple trims --- tsmark/__init__.py | 2 +- tsmark/video_annotator.py | 30 ++++++++++++------------------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/tsmark/__init__.py b/tsmark/__init__.py index 0b2d644..6cf4115 100644 --- a/tsmark/__init__.py +++ b/tsmark/__init__.py @@ -2,7 +2,7 @@ import argparse from tsmark.video_annotator import Marker -VERSION = "0.5" +VERSION = "0.5.1" def get_options(): diff --git a/tsmark/video_annotator.py b/tsmark/video_annotator.py index adff941..ef44e28 100755 --- a/tsmark/video_annotator.py +++ b/tsmark/video_annotator.py @@ -372,24 +372,18 @@ class Marker: if len(self.stamps) == 0: self.stamps.append(0) self.stamps.append(self.frames) - if len(self.stamps) > 0: - print( - 'ffmpeg -i "{}" {}-c:v mpeg2video -q:v 3 -g 1 -a copy -ss {} -to {} "{}.trimmed.mp4"'.format( - self.opts.video.replace('"', '\\"'), - cropstr, - self.format_time(self.stamps[0]), - self.format_time(self.stamps[-1]), - os.path.splitext(self.opts.video)[0].replace('"', '\\"'), - ) - ) - elif self.crop[0][0] is not None: - print( - 'ffmpeg -i "{}" {}-c:v mpeg2video -q:v 3 -g 1 "{}.trimmed.mp4"'.format( - self.opts.video.replace('"', '\\"'), - cropstr, - os.path.splitext(self.opts.video)[0].replace('"', '\\"'), - ) - ) + padlen = len(str(self.frames)) + src_name = self.opts.video.replace('"', '\\"') + tgt_name = os.path.splitext(self.opts.video)[0].replace('"', '\\"') + for i in range(1,len(self.stamps),2): + from_ts = self.stamps[i-1] + to_ts = self.stamps[i] + from_ft = self.format_time(from_ts) + to_ft = self.format_time(to_ts) + from_str=str(from_ts).zfill(padlen) + to_str=str(to_ts).zfill(padlen) + print(f'ffmpeg -i "{src_name}" {cropstr}-c:v mpeg2video -q:v 3 -g 1 -c:a copy -ss {from_ft} -to {to_ft} "{tgt_name}.trim.{from_str}-{to_str}.mpeg"') + def save_timestamps(self):