我最近的工作涉及以编程方式制作视频.在python中,典型的工作流程看起来像这样:
import subprocess, Image, ImageDraw
for i in range(frames_per_second * video_duration_seconds):
img = createFrame(i)
img.save("%07d.png" % i)
subprocess.call(["ffmpeg","-y","-r",str(frames_per_second),"-i", "%07d.png","-vcodec","mpeg4", "-qscale","5", "-r", str(frames_per_second), "video.avi"])
Run Code Online (Sandbox Code Playgroud)
此工作流程为视频中的每个帧创建一个图像并将其保存到磁盘.保存所有图像后,调用ffmpeg以构建来自所有图像的视频.
将图像保存到磁盘(而不是在内存中创建图像)会占用此处的大部分周期,并且似乎不需要.有没有办法执行相同的功能,但没有将图像保存到磁盘?因此,将调用ffmpeg并构建图像并在构造后立即将其提供给ffmpeg.
当我在Sublime Text 2中保存coffeescript文件时,它会自动将其编译为javascript并在该目录中创建一个新文件.这是一种不受欢迎的行为.我如何阻止这种情况发生?当我保存在不同的文本编辑器(例如:nano)时,这不会发生.