我对python相当陌生,这是我的第一个真正的项目,我遇到了一个障碍。这里有一个.wmv文件,我使用FFprobe从.wmv文件中提取持续时间(以秒为单位)。当我在CMD中运行以下命令时:
ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"我得到了成功的输出。
但是,当我使用os.system时,如下所示:
os.system('ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"')我得到以下输出:
'ffprobe' is not recognized as an internal or external command, operable program or batch file.这是非常令人困惑的,我还没有找到一个解决这个确切的问题在线,任何输入都会非常感谢。
发布于 2017-01-19 11:35:23
Python找不到ff探头,因为它不在您的环境变量中。这段youtube视频展示了如何正确安装它,这个维基网页 (方法2)也是如此,我将在这里引用如下:
在命令行中启用FFmpeg

单击“开始”按钮,右键单击“计算机”。从右键菜单中选择“属性”。在“系统”窗口中,单击左侧框架中的“高级系统设置”链接。

单击“系统属性”窗口中的“环境变量”按钮。它将位于窗口的底部。

在“用户变量”部分选择路径条目。它位于环境变量窗口的第一个框架中。单击编辑按钮。在“变量值”字段中,在已经写入的任何内容之后输入;c:\ffmpeg\bin。如果您将其复制到另一个驱动器,请更改驱动器号。单击“确定”以保存更改。如果在此屏幕中输入的内容不正确,则会导致Windows无法正确启动。如果“用户变量”设置中没有路径条目,请单击“新建”按钮并创建一个。输入变量名的路径。此方法将为当前用户启用FFmpeg。其他Windows用户将无法从命令行运行它。要为每个人启用它,请在“系统变量”中的路径条目中输入;c:\ffmpeg\bin。非常小心,不要删除这个变量中已经存在的任何内容。

打开命令提示符。输入命令“ffmpeg-version”。如果命令提示符返回FFmpeg的版本信息,则安装成功,可以从命令提示符中的任何文件夹访问FFmpeg。
如果收到“libstdc++ -6缺失”错误,则可能需要安装Microsoft Visual C++可再发行包,该包可从Microsoft免费获得。
我希望这能帮上忙。
顺便提一句,我不认为os.system是那种调用命令行的推荐方法。
我建议您更多地使用子进程(改编自代码这里):
import subprocess
import shlex
import json
def get_duration(file_path_with_file_name):
cmd = 'ffprobe -show_entries format=duration -v quiet -of csv="p=0"'
args = shlex.split(cmd)
args.append(file_path_with_file_name)
# run the ffprobe process, decode stdout into utf-8 & convert to JSON
ffprobe_output = subprocess.check_output(args).decode('utf-8')
ffprobe_output = json.loads(ffprobe_output)
return ffprobe_outputhttps://stackoverflow.com/questions/41728249
复制相似问题