scratch youtube using puredata
import sys, os, signal, subprocess, re
savepath = os.getcwd()
def Walk( root, recurse=1, pattern='*', return_folders=0 ):
import fnmatch, os, string
# initialize
result = []
# must have at least root folder
try:
names = os.listdir(root)
except os.error:
return result
# expand pattern
pattern = pattern or '*'
pat_list = string.splitfields( pattern , ';' )
# check each file
for name in names:
fullname = os.path.normpath(os.path.join(root, name))
# grab if it matches our pattern and entry type
for pat in pat_list:
if fnmatch.fnmatch(name, pat):
if os.path.isfile(fullname) or (return_folders and os.path.isdir(fullname)):
result.append(fullname)
continue
# recursively scan other folders, appending results
if recurse:
if os.path.isdir(fullname) and not os.path.islink(fullname):
result = result + Walk( fullname, recurse, pattern, return_folders )
return result
def getframeinfo(input):
length = None
framerate = None
f = os.popen("tcprobe -i '%s'" % input, "r")
for l in f:
m = re.search(r"-f ([\d\.]+)", l)
if m:
framerate = float(m.group(1))
m = re.search(r"length: (\d+) frames", l)
if m:
length = int(m.group(1))
return framerate, length
f.close()
files = Walk(str(savepath), 1, '*.flv')
for file in files:
os.system('ffmpeg -i '+str(file)+' -acodec pcm_s16le -sameq '+str(file[0:-3])+'mov')
os.system('transcode -i '+str(file[0:-3])+'mov -y ffmpeg,wav -F mjpeg -G 1.2 -Z 640x480 --zoom_filter Mitchell -c 2100-2600 -m '+str(file[0:-4])+'temp.wav -o '+str(file[0:-3])+'avi')
os.system('rm -rf '+str(file[0:-3])+'mov')
os.system('sox '+str(file[0:-4])+'temp.wav -r 44100 '+str(file[0:-3])+'wav')
os.system('rm -rf '+str(file[0:-4])+'temp.wav')
os.system('normalize-audio '+str(file[0:-3])+'wav')
page revision: 0, last edited: 22 Feb 2009 23:20