Skip to content

Instantly share code, notes, and snippets.

@alfredplpl
Created November 2, 2019 04:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alfredplpl/be332f57e4c7ce109a531a55839468b2 to your computer and use it in GitHub Desktop.
Save alfredplpl/be332f57e4c7ce109a531a55839468b2 to your computer and use it in GitHub Desktop.
Concatenate movies by ffmpeg on Windows. ffmpegで動画をつなぐスクリプト
# License: MIT License
__author__="Alfred Increment"
import glob
import os
import datetime
dt_now = datetime.datetime.now()
dateString=dt_now.strftime('%Y-%m-%d')
DIR=r"S:\VIDEO"
OUT_FILENAME=(r"{}.mp4").format(dateString)
OUT_PATH=os.path.join(r"F:\SleepingMovies",OUT_FILENAME)
LIST_PATH= os.path.join(DIR,"mylist.txt")
#createFileList
files = glob.glob(os.path.join(DIR,"*.avi"))
files=[x.replace("\\", "\\\\") for x in files]
lines=[r"file "+x+"\n" for x in files]
with open(LIST_PATH,"w") as f:
f.writelines(lines)
# 2pass encode
import subprocess
args=["ffmpeg","-f", "concat","-safe","0", "-i",LIST_PATH,"-vf","pp=dr/fq,hqdn3d=6.00:4.50:6.00:4.50",
"-vcodec","hevc_nvenc","-preset", "slow","-acodec", "aac","-b:v", "2000k",
OUT_PATH]
subprocess.call(args, shell=True)
# clear original movies
print("clear original movies.")
args=["del","/Q",os.path.join(DIR,"*")]
proc = subprocess.run(args,stdout = subprocess.PIPE, stderr = subprocess.PIPE,shell=True)
print(proc.stdout.decode("cp932"))
args=["shutdown","/s", "/t", "60"]
proc = subprocess.run(args,stdout = subprocess.PIPE, stderr = subprocess.PIPE,shell=True)
print(proc.stdout.decode("cp932"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment