我对 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.
这非常令人困惑,我无法在网上找到解决这个确切问题的方法,任何意见都将非常感激。
Python 找不到 ffprobe,因为它不在您的环境变量中。这个 YouTube 视频 https://www.youtube.com/watch?v=xcdTIDHm4KM显示如何正确安装它,就像这个维基百科页面 http://www.wikihow.com/Install-FFmpeg-on-Windows)(方法2),我将从这里引用:
在命令行中启用 FFmpeg
Click the Start button and right-click on Computer. Select Properties
from the right-click menu. In the System window, click on the
“Advanced system settings” link in the left frame.
单击系统属性中的环境变量按钮
窗户。它将位于窗口的底部。
选择“用户变量”部分中的 PATH 条目。这是位于
在环境变量窗口的第一帧中。点击
编辑按钮。在“变量值”字段中,输入;c:\ffmpeg\bin
任何已经写在那里的东西。如果您将其复制到另一个
驱动器,更改驱动器号。单击“确定”保存更改。如果
在此屏幕中输入任何内容不正确,可能会导致 Windows
导致无法正常启动。如果“用户”中没有 PATH 条目
变量”设置,单击新建按钮并创建一个。输入 PATH
为变量名。该方法将为当前启用 FFmpeg
用户。其他 Windows 用户将无法通过命令运行它
线。要为所有人启用它,请在 PATH 中输入 ;c:\ffmpeg\bin
条目“系统变量”。非常小心不要删除任何东西
这已经在这个变量中了。
打开命令提示符。输入命令“ffmpeg –version”。如果
命令提示符返回 FFmpeg 的版本信息,然后
安装成功,可以从任何地方访问FFmpeg
命令提示符中的文件夹。
如果您收到“libstdc++ -6 is
Missing”错误,您可能需要安装 Microsoft Visual C++
可再发行组件包,可从 Microsoft 免费获得。
我希望这有帮助。
只是旁注,我不认为os.system
是调用命令行的推荐方式。
我建议使用子进程来代替(改编自代码here https://gist.github.com/oldo/dc7ee7f28851922cca09):
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)