""" video.py h265[h264] """ import sys import subprocess as sp import shlex import time import os DAT_FOLDER = "/extdisk/origin" TARGET_FOLDER = "/extdisk/camera" SUFFIX = ".dat" TARGET_SUFFIX = ".mp4" def list_folder(org_folder, tar_folder, code): current_time = time.strftime(time.strftime("%Y-%m-%d-%H"), time.localtime()) for root, dirs, files in os.walk(org_folder): for f in files: if current_time in f: print("file ignore: {0} ".format(os.path.join(root, f))) continue else: convert(os.path.join(root, f), os.path.join(tar_folder, code, list(root.split("/"))[-1], f.replace(SUFFIX, "") + TARGET_SUFFIX)) def convert(origin, target): print("origin: {0} ,target: {1}".format(origin, target)) cmd = 'ffmpeg -i {0} -c copy {1}'.format(origin, target) print("cmd:: {0}".format(cmd)) args = shlex.split(cmd) status, output = sp.getstatusoutput(cmd) print("status:: {0}, output {1}".format(status, output)) if status ==0: print("{0} convert {1} Success, origin dat will remove!".format(origin, target)) os.remove(origin) else: print("{0} convert fail".format(origin)) #proc = sp.Popen(args, stdin=sp.PIPE, stdout=sp.PIPE, stderr=sp.PIPE) #answer = b'Overwrite ? [y/N]' #try: # outs, errs = proc.communicate() # print(outs, errs) # print("answer in outs : {0}".format(answer in errs)) # if answer in errs: # print('write y') # # proc.stdin.write(b'y') # if proc.returncode == 0: # print("{0} convert {1} Success, origin dat will remove!".format(origin, target)) # os.remove(origin) # else: # print("{0} convert fail".format(origin)) #except sp.TimeoutExpired: # proc.kill() if __name__ == "__main__": codec = "h265" if len(sys.argv) > 1: codec = sys.argv[1] # timeout=sys.argv[2] print("codec:: {0}".format(codec)) list_folder(DAT_FOLDER, TARGET_FOLDER, codec)