我有一个4D numpy电影帧阵列.我正在寻找一个函数,以给定的帧速率将它们写入电影.我在我的操作系统上安装了FFMPEG,正如我从这些答案中看到的,最有效的方法是通过管道.
但是,我使用管道的经验很少,上面链接中的解释对我来说没什么意义.此外,很少有答案似乎实际上实现了管道,并且确实使用了mencoder,而不是FFMPEG.我对FFMPEG相对缺乏经验,所以我不确定如何修改mencoder答案中的命令字符串以使其在FFMPEG中工作.
我想要的是什么:
以下形式的功能:
animate_np_array(4d_array,framerate) - > output.mp4(或其他视频编解码器)
它实现了一个接一个地将帧发送到FFMPEG的管道,并且我可以将其复制粘贴到我现有的代码中.
此外,绝对有必要这个函数永远不会实际绘制任何帧,因为对matplotlib.imshow()函数的调用(正如我最常见的那样)会大大减慢速度.
我正在研究一些代码,当需要两个整数m和n时,需要能够有效地预测(最好在O(1)时间内)以下算法的输出.
algorithm(m,n):
history = set()
while True:
if (m,n) in history:
return False
elif n == m:
return True
else:
history.add((m,n))
if m>n:
x = m-n
y = 2*n
m = x
n = y
else:
x = 2*m
y = n-m
m = x
n = y
Run Code Online (Sandbox Code Playgroud)
请注意,当(m,n)出现在以下算法的历史记录中时,您已进入无限循环(即2,1 - > 1,2 - > 2,1 ...); 当m == n时,算法只能继续前进一步并且必须终止(即5,5 - > 10,0 - > 10,0 ......).基本上我需要能够预测m(当前)和n(当前)是否匹配.
PS,如果这个算法有一个名字我很想知道它.此外,如果有关于这个主题的良好阅读(预测数字序列等等),我很乐意接受它.
python ×2
algorithm ×1
ffmpeg ×1
matplotlib ×1
numpy ×1
performance ×1
prediction ×1
sequence ×1
video ×1