【问题标题】:ffprobe produce memory linkffprobe 产生内存链接
【发布时间】:2020-08-10 10:28:07
【问题描述】:

我正在编写一个 python 脚本来计算一个目录(以及子目录、链接等)中所有视频文件的持续时间。

一切正常,我唯一的问题是以下代码会产生内存泄漏。我对每个媒体文件使用这个函数来获取持续时间。并且分配的内存显着增加。就像每秒 50 兆字节。当函数返回值时,内存不会被释放。即使关闭所有程序或在 Windows 中注销,内存也不会消失。只有重新启动会有帮助。

def probe(vid_file_path):
    with subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) as proc:
       cmd = ["ffprobe", "-loglevel", "quiet", "-print_format", "json", "-show_format", "-show_streams", vid_file_path]
       out, err = proc.communicate()
       return json.loads(out)

我花了几个小时试图找出问题出在 ffprobe 还是子进程上。而且我认为是ffprobe。

如果我这样做:

cd "<goto ffprobe directory>"
:start
ffprobe -show_streams "<a video file>"
goto start

在批处理文件中我可以看到内存也在增加。

EDIT1:如果你想测试我的 python 脚本,请看这里:https://pastebin.com/NewBgwia

【问题讨论】:

  • 还是没有解决办法。

标签: python memory-leaks ffprobe


【解决方案1】:

Microsoft Defenders“受控文件夹访问”是我问题的根源。 禁用它解决了我的内存泄漏问题。

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 2018-11-16
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2011-02-21
    相关资源
    最近更新 更多