Source code for moviepy.video.io.ffmpeg_tools

""" Misc. bindings to ffmpeg and ImageMagick."""

import os
import subprocess as sp
import sys

from moviepy.config import get_setting
from moviepy.tools import subprocess_call


[docs]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)
[docs]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), "-map", "0", "-vcodec", "copy", "-acodec", "copy", targetname] subprocess_call(cmd)
[docs]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)
[docs]def ffmpeg_extract_audio(inputfile,output,bitrate=3000,fps=44100): """ extract the sound from a video file and save it in ``output`` """ cmd = [get_setting("FFMPEG_BINARY"), "-y", "-i", inputfile, "-ab", "%dk"%bitrate, "-ar", "%d"%fps, output] subprocess_call(cmd)
[docs]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)