我有一个相当大的程序(内存方面),它是一个带有张量流的神经网络。我在处理体积数据。我的最终目标是使用ffmpeg
通过卷创建一个视频,其中每个帧是一个z切片。在使用os
python库之前,我已经成功地做到了这一点。代码如下所示:
videoFile = self.slicesPath + "/0.mp4"
sliceFiles = self.slicesPath + "/%04d.jpg"
os.system("ffmpeg -y -framerate 10 -start_number 0 -i " + sliceFiles + " -vcodec mpeg4 " + videoFile)
当我用pdb
单步执行这个命令并尝试执行os.system()
命令时,我得到了-1
,好像有什么错误。你知道吗
(Pdb) os.system("ffmpeg -y -framerate 10 -start_number 0 -i " + sliceFiles + " -vcodec mpeg4 " + videoFile)
-1
然后我打印了两个变量。。。你知道吗
(Pdb) sliceFiles
'/home/volcart/UnsupervisedResults/HercFragment/VAE/0/1/%04d.jpg'
(Pdb) videoFile
'/home/volcart/UnsupervisedResults/HercFragment/VAE/0/1/0.mp4'
在新的终端选项卡中打开python控制台,复制并粘贴完全相同的代码行(使用上面的字符串而不是变量名),然后BAM!它神奇地工作。你知道吗
为什么会这样?它在单独的python控制台中工作,在bash中工作,但在我的程序中不工作(当它是完全相同的东西时)。我唯一的猜测是与记忆有关,但我肯定我没有失去记忆。。。我的机器有64GB,python没有限制。你知道吗
编辑
我只是尝试了一个subprocess
而得到了这个:
(Pdb) subprocess.call("ffmpeg -y -framerate 10 -start_number 0 -i " + sliceFiles + " -vcodec mpeg4 " + videoFile, shell=True)
*** OSError: [Errno 12] Cannot allocate memory
但是它怎么不能分配内存呢?Python没有内存限制,对吧?我有64GB的内存,我可以在程序外执行ffmpeg
命令,所以我的程序受到了一些限制。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐