所以,我正在编写这段代码来分析这个视频,但是当我尝试在Spyder,Anaconda中运行它时,我遇到了这个问题:
import subprocess
from subprocess import call
import math
##Converts the given file into a series of images
def Video_to_Image_Converter(fileName):
res1 = call("ffmpeg -i " + fileName + " -vf fps=1 frame-%d.jpg", shell=True)
print(res1)
result = subprocess.Popen('ffprobe -i '+ fileName +' -show_entries format=duration -v quiet -of csv="p=0"', stdout=subprocess.PIPE,stderr=subprocess.STDOUT, shell=True)
output = result.communicate()
print(output)
#return math.ceil(float(output[0])) + 1
if __name__ == '__main__':
videoLength = Video_to_Image_Converter('sampleVideo.wmv')
print(videoLength)
所以,这段代码在iPython中工作正常,但是我在尝试使用Spyder时开始遇到问题。 如果一切顺利,res1 的退出状态应为 0,但它为 1。但是,我不知道出了什么问题。在通话中运行subprocess.check_output时,它所说的只是:
Command 'ffmpeg -i sampleVideo.wmv -vf fps=1 frame-%d.jpg' returned non-zero exit status 1
请帮忙。
所以,我想出了问题所在。我在计算机上安装了ffmpeg,但由于某种原因,Anaconda似乎没有使用环境变量来查找它应该运行的程序。似乎 Anaconda 有自己的一套安装程序,我不得不使用"conda install -c menpo ffmpeg"(来自 https://anaconda.org/menpo/ffmpeg(通过
conda 安装它。