working cli for concatination
authortelegnom <max@telegnom.org>
Mon, 14 Dec 2015 12:40:40 +0000 (13:40 +0100)
committertelegnom <max@telegnom.org>
Mon, 14 Dec 2015 12:40:40 +0000 (13:40 +0100)
ffm.py

diff --git a/ffm.py b/ffm.py
index 1ecd763..e5a3c96 100755 (executable)
--- a/ffm.py
+++ b/ffm.py
@@ -2,23 +2,27 @@
 
 import os
 import argparse
+import re
+import sys
 
 parser = argparse.ArgumentParser()
 parser.add_argument("-i", metavar='i', type=str, help="Introfile")
 parser.add_argument("-o", metavar='o', type=str, help="Outrofile")
-parser.add_argument("-s", metavar='s', type=int, help="skip first n seconds of main video")
+parser.add_argument("-s", metavar='s', type=str, help="skip hh:mm:ss of main video")
 #parser.add_argument("-c", metavar='c', type=int, help="cut last n seconds of main video")
 parser.add_argument("videofiles", type=str, help="files from camera in correct order", nargs='+')
 args = parser.parse_args()
 
+
+if args.s and re.fullmatch("^\d\d:\d\d:\d\d$", args.s) == None:
+    sys.stderr.write("-s skip time must be given in the form hh:mm:ss with leading zeros. e.g.: 00:01:10 to skip the first 70 Seconds\n")
+    sys.exit(1)
+
 print(args.videofiles)
 
 videofiles = args.videofiles
 io = 0
 
-""" add skip parameter to first video file """
-if args.s:
-    videofiles[0] = videofiles[0] + " -ss 00:00:" + str(args.s)
 
 inp = []
 
@@ -27,8 +31,12 @@ if args.i:
     inp.append("-i")
     inp.append(args.i)
 
+v1 = True
 for video in args.videofiles:
     print(video)
+    """ add skip parameter to first video file """
+    if v1 and args.s:
+        inp.append("-ss %s" % (args.s)) 
     inp.append("-i")
     inp.append(video)
 
@@ -53,3 +61,10 @@ maps.append("concat=n=%i:v=1:a=1 [v] [a]" % (vcount))
 mapstring = " ".join(maps)
 print(videostring)
 print(mapstring)
+
+ffmpeg = "ffmpeg -threads 16 -analyzeduration 20000000 %s -filter_complex '%s' -map '[v]' -map '[a]' -strict -2 out.mp4" % (videostring, mapstring)
+print()
+print("ffmpeg cli:")
+print()
+print(ffmpeg)
+print()