我想根据我在matplotlib中的python脚本中生成的帧创建h264或divx电影。这部电影大约有10万张。
在网络上的示例中[例如
1],我只看到了将每个帧另存为png,然后在这些文件上运行mencoder或ffmpeg的方法。就我而言,保存每一帧是不切实际的。有没有办法获取从matplotlib生成的图并将其直接传输到ffmpeg,而不会生成任何中间文件?
用ffmpeg的C-
api编程对我来说太困难了[例如。2]。另外,我需要一种具有良好压缩效果的编码,例如x264,因为电影文件对于后续步骤来说太大了。因此,最好坚持使用mencoder
/ ffmpeg / x264。
管道[3]有什么可以做的吗?
[1]
http://matplotlib.sourceforge.net/examples/animation/movie_demo.html
[2] http://www.ffmpeg.org/ffmpeg-
doc.html#SEC41
现在,该功能(至少从1.2.0起,可能从1.1起)通过MovieWriter
类及其animation
模块中的子类引入了matplotlib中。您还需要ffmpeg
提前安装。
import matplotlib.animation as animation
import numpy as np
from pylab import *
dpi = 100
def ani_frame():
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_aspect('equal')
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
im = ax.imshow(rand(300,300),cmap='gray',interpolation='nearest')
im.set_clim([0,1])
fig.set_size_inches([5,5])
tight_layout()
def update_img(n):
tmp = rand(300,300)
im.set_data(tmp)
return im
#legend(loc=0)
ani = animation.FuncAnimation(fig,update_img,300,interval=30)
writer = animation.writers['ffmpeg'](fps=30)
ani.save('demo.mp4',writer=writer,dpi=dpi)
return ani
有关的文档 animation
(希望有人能帮我解决这个问题)非常感谢!!
我正在编写一个应用程序,它从url下载图像,然后使用AWS-SDK将其上传到S3桶中。 以前,我只是下载图像并将它们保存到磁盘上,就像这样。 然后像这样将图像上传到AWS S3 但我想跳过将映像保存到磁盘的部分。有什么方法可以响应从到一个变量,然后上传它吗?
我尝试用以下代码保存从internet下载的文件 但在运行时,我得到的错误如下 03-04 20:42:51.080 8972-8972/com.example.me.demo2 E/BitmapFactory:无法解码流:java.io.FileNotFoundExcoop: /storage/emulated/0/.tanks/4a100abb-0e55-4062-8c37-f11f4189e
我想从图像序列生成电影。我用了这个代码: 输入图像为png彩色图像,但视频为黑白。
问题内容: 在python中(对于在GUI中创建的一个图形),我可以使用以下方法将图形保存在.jpg和.pdf下: 要么 我想使用一个文件将多个图形保存为.pdf或.jpg(就像在数学实验室中所做的一样)。有人可以帮忙吗? 问题答案: 使用为您解决问题。将您的对象传递给方法。 例如,如果您打开了一大堆对象并将其保存到多页PDF中,则可以执行以下操作:
问题内容: 我有一个表格,要求用户上传2个文件,分别是 file-upload 和 imgupload 。我正在尝试通过ajax保存整个表单。 表单和Ajax代码 控制器代码 问题在于,在控制器代码中,只有1个文件被上传。如果我将文件上传作为第一个上传代码,则仅此文件将被上传,而imgupload将不会被上传。 如果我将imgupload保留为第一个上载代码,则仅此将被上载,而文件上载将不会被上载