【发布时间】:2021-07-03 16:11:58
【问题描述】:
作为视频分析脚本的一部分,我想找出视频文件的持续时间。为此,我找到了该问题的第一个答案中提供的脚本:How to get the duration of a video in Python?
import subprocess
def get_length(filename):
result = subprocess.run(["ffprobe", "-v", "error", "-show_entries",
"format=duration", "-of",
"default=noprint_wrappers=1:nokey=1", filename],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
return float(result.stdout)
当我的朋友在 Jupyter 服务器环境中运行此代码时,它运行良好,但当我在笔记本电脑上尝试时,问题就开始了。
当我将以下文件名输入函数时:
filename = "C:\\Users\\benja\\OneDrive - De Haagse Hogeschool\\Onderzoeken 3\\8V.mp4"
我收到以下错误:
Traceback (most recent call last):
File "c:/Users/benja/OneDrive - De Haagse Hogeschool/Onderzoeken 3/python_script.py", line 9, in <module>
num_of_frames = math.floor((pf.get_length(filename) - 1)) * 30
File "c:\Users\benja\OneDrive - De Haagse Hogeschool\Onderzoeken 3\python_funcs.py", line 21, in get_length
stderr=subprocess.STDOUT)
File "C:\Users\benja\Anaconda3\lib\subprocess.py", line 466, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Users\benja\Anaconda3\lib\subprocess.py", line 769, in __init__
restore_signals, start_new_session)
File "C:\Users\benja\Anaconda3\lib\subprocess.py", line 1172, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] Het systeem kan het opgegeven bestand niet vinden
我确实意识到我的问题与这里的其他几个问题几乎相同。但是,他们的解决方案似乎对我不起作用。我尝试过:
- 将 ffmpeg-win64-4.2.2.exe 的位置添加到 Path 系统变量中。
- 将 python.exe 的位置添加到 ComSpec 系统变量中。
- 将视频文件放在与脚本相同的目录中。
如果有人能指出我正确的方向,我将不胜感激。提前谢谢你。
【问题讨论】:
标签: python python-3.x ffmpeg subprocess file-not-found