我对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.
这非常令人困惑,我无法在网上找到解决此问题的方法,我们非常感谢任何输入。
答案 0 :(得分:0)
Python无法找到ffprobe,因为它不在您的环境变量中。 This youtube video显示了如何正确安装它,this wikihow page(方法2)也是如此,我将从这里引用:
在命令行中启用FFmpeg
单击“开始”按钮,然后右键单击“计算机”。选择属性 从右键菜单中。在“系统”窗口中,单击 左侧框架中的“高级系统设置”链接。
单击“系统属性”中的“环境变量”按钮 窗口。它将位于窗口的底部。
在“用户变量”部分中选择PATH条目。这是位于 在“环境变量”窗口的第一帧中。点击 编辑按钮。在“变量值”字段中,输入; c:\ ffmpeg \ bin之后 任何已经写在那里的东西。如果您将其复制到另一个 开车,更改驱动器号。单击“确定”保存更改。如果 在此屏幕中输入的内容不正确,可能会导致Windows 无法正常启动。如果“用户”中没有PATH条目 变量“设置,单击”新建“按钮并创建一个。输入PATH 对于变量名称。此方法将为当前启用FFmpeg 用户。其他Windows用户将无法从该命令运行它 线。要为每个人启用它,请在PATH中输入; c:\ ffmpeg \ bin 在“系统变量”中输入。小心不要删除任何东西 已经在这个变量中。
打开命令提示符。输入命令“ffmpeg -version”。如果 命令提示符返回FFmpeg的版本信息,然后是 安装成功,可以从任何地方访问FFmpeg 命令提示符下的文件夹。
如果收到“libstdc ++ -6 is 缺少“错误,您可能需要安装Microsoft Visual C ++ 可再发行软件包,可从Microsoft免费获得。
我希望有所帮助。
只是旁注,我不认为os.system
是推荐的调用命令行的方式。
我建议使用subprocess更改这样的东西(改编自代码here):
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_output