本文整理汇总了Python中moviepy.tools.subprocess_call函数的典型用法代码示例。如果您正苦于以下问题:Python subprocess_call函数的具体用法?Python subprocess_call怎么用?Python subprocess_call使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了subprocess_call函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ffmpeg_resize
def ffmpeg_resize(video,output,size):
""" resizes ``video`` to new size ``size`` and write the result
in file ``output``. """
cmd= [get_setting("FFMPEG_BINARY"), "-i", video, "-vf", "scale=%d:%d"%(size[0], size[1]),
output]
subprocess_call(cmd)
示例2: ffmpeg_resize
def ffmpeg_resize(video,output,size):
""" resizes ``video`` to new size ``size`` and write the result
in file ``output``. """
cmd= ["ffmpeg", "-i", video, "-vf", "scale=%d:%d"%(res[0], res[1]),
output]
subprocess_call(cmd)
示例3: gif_to_directory
def gif_to_directory(gif_file,dirName=None):
"""
Stores all the frames of the given .gif file
into the directory ``dirName``. If ``dirName``
is not provided, the directory has the same name
as the .gif file. Supports transparency.
Returns the directory name.
Example:
>>> d = gif_to_directory("animated-earth.gif")
>>> clip = DirectoryClip(d,fps=3)
"""
if dirName is None:
name, ext = os.path.splitext(gif_file)
dirName = name
try:
os.mkdir(dirName)
except:
pass
subprocess_call(["convert", "-coalesce", gif_file,
os.path.join(dirName,"%04d.png")])
示例4: ffmpeg_merge_video_audio
def ffmpeg_merge_video_audio(video,audio,output,
vcodec='copy', acodec='copy', ffmpeg_output=False):
""" merges video file ``video`` and audio file ``audio`` into one
movie file ``output``. """
cmd = ["ffmpeg", "-y", "-i", audio,"-i", video,
"-vcodec", vcodec, "-acodec", acodec, output]
subprocess_call(cmd, stdin=None, stdout=None)
示例5: __init__
def __init__(self, txt, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfile='temp.png', temptxt='temp.txt',
transparent=True, remove_temp=True,
print_cmd=False):
if not txt.startswith('@'):
temptxt = 'temp.txt'
with open(temptxt, 'w+') as f:
f.write(txt)
txt = '@temp.txt'
else:
txt = "'%s'"%txt
if size != None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ( ["convert",
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize !=None:
cmd += ["-pointsize", "%d"%fontsize]
if kerning != None:
cmd += ["-kerning", "%0.1f"%kerning]
if stroke_color != None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f"%stroke_width]
if size != None:
cmd += ["-size", "%sx%s"%(size[0], size[1])]
if align != None:
cmd += ["-gravity",align]
if interline != None:
cmd += ["-interline-spacing", "%d"%interline]
cmd += ["%s:%s" %(method, txt),
"-type", "truecolormatte", "PNG32:%s"%tempfile]
if print_cmd:
print( " ".join(cmd) )
subprocess_call(cmd, verbose=False )
ImageClip.__init__(self, tempfile, transparent=transparent)
self.txt = txt
self.color = color
self.stroke_color = stroke_color
if remove_temp:
os.remove(tempfile)
try:
os.remove(temptxt)
except:
pass
示例6: ffmpeg_merge_video_audio
def ffmpeg_merge_video_audio(video,audio,output, vcodec='copy',
acodec='copy', ffmpeg_output=False,
logger = 'bar'):
""" merges video file ``video`` and audio file ``audio`` into one
movie file ``output``. """
cmd = [get_setting("FFMPEG_BINARY"), "-y", "-i", audio,"-i", video,
"-vcodec", vcodec, "-acodec", acodec, output]
subprocess_call(cmd, logger = logger)
示例7: ffmpeg_merge_video_audio
def ffmpeg_merge_video_audio(video,audio,output, vcodec='copy',
acodec='copy', ffmpeg_output=False,
verbose = True):
""" merges video file ``video`` and audio file ``audio`` into one
movie file ``output``. """
cmd = [FFMPEG_BINARY, "-y", "-i", audio,"-i", video,
"-vcodec", vcodec, "-acodec", acodec, output]
subprocess_call(cmd, verbose = verbose)
示例8: download_webfile
def download_webfile(url, filename, overwrite=False):
""" Small utility to download the file at 'url' under name 'filename'.
If url is a youtube video ID like z410eauCnH it will download the video
using youtube-dl (install youtube-dl first !).
If the filename already exists and overwrite=False, nothing will happen.
"""
if os.path.exists(filename) and not overwrite:
return
if '.' in url:
urlretrieve(url, filename)
else:
subprocess_call(['youtube-dl', url, '-o', filename])
示例9: ffmpeg_movie_from_frames
def ffmpeg_movie_from_frames(filename, folder, fps, digits=6):
"""
Writes a movie out of the frames (picture files) in a folder.
Almost deprecated.
"""
s = "%" + "%02d" % digits + "d.png"
cmd = ["ffmpeg", "-y", "-f","image2",
"-r", "%d"%fps,
"-i", os.path.join(folder,folder) + '/' + s,
"-b", "%dk"%bitrate,
"-r", "%d"%self.fps,
filename]
subprocess_call(cmd, stdin=None, stdout=None)
示例10: ffmpeg_movie_from_frames
def ffmpeg_movie_from_frames(filename, folder, fps, digits=6, bitrate='v'):
"""
Writes a movie out of the frames (picture files) in a folder.
Almost deprecated.
"""
s = "%" + "%02d" % digits + "d.png"
cmd = [get_setting("FFMPEG_BINARY"), "-y", "-f","image2",
"-r", "%d"%fps,
"-i", os.path.join(folder,folder) + '/' + s,
"-b", "%dk"%bitrate,
"-r", "%d"%fps,
filename]
subprocess_call(cmd)
示例11: ffmpeg_extract_subclip
def ffmpeg_extract_subclip(filename, t1, t2, targetname=None):
""" Makes a new video file playing video file ``filename`` between
the times ``t1`` and ``t2``. """
name, ext = os.path.splitext(filename)
if not targetname:
T1, T2 = [int(1000*t) for t in [t1, t2]]
targetname = "%sSUB%d_%d.%s" % (name, T1, T2, ext)
cmd = [get_setting("FFMPEG_BINARY"),"-y",
"-ss", "%0.2f"%t1,
"-i", filename,
"-t", "%0.2f"%(t2-t1),
"-vcodec", "copy", "-acodec", "copy", targetname]
subprocess_call(cmd)
示例12: download_webfile
def download_webfile(url, filename, overwrite=False):
""" Small utility to download the file at 'url' under name 'filename'.
If url is a youtube video ID like z410eauCnH it will download the video
using youtube-dl (install youtube-dl first !).
If the filename already exists and overwrite=False, nothing will happen.
"""
if os.path.exists(filename) and not overwrite:
return
if '.' in url:
urlretrieve(url, filename)
else:
try:
subprocess_call(['youtube-dl', url, '-o', filename])
except OSError as e:
raise OSError(e.message + '\n A possible reason is that youtube-dl'
' is not installed on your computer. Install it with '
' "pip install youtube-dl"')
示例13: download_webfile
def download_webfile(url, filename, overwrite=False):
""" Small utility to download the file at 'url' under name 'filename'.
If url is a youtube video ID like z410eauCnH it will download the video
using youtube-dl (install youtube-dl first !).
If the filename already exists and overwrite=False, nothing will happen.
"""
if os.path.exists(filename) and not overwrite:
return
if '.' in url:
r = requests.get(url, stream=True)
with open(filename, 'wb') as fd:
for chunk in r.iter_content(chunk_size=128):
fd.write(chunk)
else:
try:
subprocess_call(['youtube-dl', url, '-o', filename])
except OSError as e:
raise OSError(
e.message + '\n A possible reason is that youtube-dl'
' is not installed on your computer. Install it with '
' "pip install youtube_dl"')
示例14: __init__
def __init__(self, txt, size=None, color='black',
bg_color='transparent', fontsize=None, font='Courier',
stroke_color=None, stroke_width=1, method='label',
kerning=None, align='center', interline=None,
tempfilename=None, temptxt=None,
transparent=True, remove_temp=True,
print_cmd=False):
if not txt.startswith('@'):
if temptxt is None:
temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
os.write(temptxt_fd, txt)
os.close(temptxt_fd)
txt = '@'+temptxt
else:
txt = "'%s'"%txt
if size != None:
size = ('' if size[0] is None else str(size[0]),
'' if size[1] is None else str(size[1]))
cmd = ( [IMAGEMAGICK_BINARY,
"-background", bg_color,
"-fill", color,
"-font", font])
if fontsize !=None:
cmd += ["-pointsize", "%d"%fontsize]
if kerning != None:
cmd += ["-kerning", "%0.1f"%kerning]
if stroke_color != None:
cmd += ["-stroke", stroke_color, "-strokewidth",
"%.01f"%stroke_width]
if size != None:
cmd += ["-size", "%sx%s"%(size[0], size[1])]
if align != None:
cmd += ["-gravity",align]
if interline != None:
cmd += ["-interline-spacing", "%d"%interline]
if tempfilename is None:
tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
os.close(tempfile_fd)
cmd += ["%s:%s" %(method, txt),
"-type", "truecolormatte", "PNG32:%s"%tempfilename]
if print_cmd:
print( " ".join(cmd) )
subprocess_call(cmd, verbose=False )
ImageClip.__init__(self, tempfilename, transparent=transparent)
self.txt = txt
self.color = color
self.stroke_color = stroke_color
if remove_temp:
if os.path.exists(tempfilename):
os.remove(tempfilename)
if os.path.exists(temptxt):
os.remove(temptxt)
示例15: to_gif
def to_gif(self, filename, fps=None, program= 'ImageMagick',
opt="OptimizeTransparency", fuzz=1, verbose=True,
loop=0, dispose=False):
""" Write the VideoClip to a GIF file
Converts a VideoClip into an animated GIF using ImageMagick or
ffmpeg.
Parameters
-----------
filename
Name of the resulting gif file.
fps
Number of frames per second (see note below). If it
isn't provided, then the function will look for the clip's
``fps`` attribute (VideoFileClip, for instance, have one).
program
Software to use for the conversion, either 'ImageMagick' or
'ffmpeg'.
opt
(ImageMagick only) optimalization to apply, either
'optimizeplus' or 'OptimizeTransparency'.
fuzz
(ImageMagick only) Compresses the GIF by considering that the
colors that are less than fuzz% different are in fact the same.
Notes
-----
The gif will be playing the clip in real time (you can
only change the frame rate). If you want the gif to be played
slower than the clip you will use ::
>>> # slow down clip 50% and make it a gif
>>> myClip.speedx(0.5).to_gif('myClip.gif')
"""
def verbose_print(s):
if verbose: sys_write_flush(s)
if fps is None:
fps = self.fps
fileName, fileExtension = os.path.splitext(filename)
tt = np.arange(0,self.duration, 1.0/fps)
tempfiles = []
verbose_print("\nMoviePy: building GIF file %s\n"%filename
+40*"-"+"\n")
verbose_print("Generating GIF frames.\n")
total = int(self.duration/fps)+1
for i, t in tqdm(enumerate(tt), total=total):
name = "%s_GIFTEMP%04d.png"%(fileName, i+1)
tempfiles.append(name)
self.save_frame(name, t, savemask=True)
verbose_print("Done generating GIF frames.\n")
delay = int(100.0/fps)
if program == "ImageMagick":
cmd = [IMAGEMAGICK_BINARY,
'-delay' , '%d'%delay,
"-dispose" ,"%d"%(2 if dispose else 1),
"-loop" , "%d"%loop,
"%s_GIFTEMP*.png"%fileName,
"-coalesce",
"-fuzz", "%02d"%fuzz + "%",
"-layers", "%s"%opt,
"%s"%filename]
elif program == "ffmpeg":
cmd = [FFMPEG_BINARY, '-y',
'-f', 'image2',
'-i', fileName+'_GIFTEMP%04d.png',
'-r',str(fps),
filename]
subprocess_call( cmd, verbose = verbose )
for f in tempfiles:
os.remove(f)