在 Python 中实现 skvideo.io.FFmpegReader

Posted

技术标签:

【中文标题】在 Python 中实现 skvideo.io.FFmpegReader【英文标题】:Implementing skvideo.io.FFmpegReader in Python 【发布时间】:2022-01-10 18:35:03 【问题描述】:

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
import skvideo
skvideo.setFFmpegPath("C:/Users/User/PycharmProjects/MachineLearning/venv/lib/site-packages/skvideo/io")
import skvideo.io
input_parameters =
output_parameters =
reader=skvideo.io.FFmpegReader("Cool_Kids.mp4",inputdict=input_parameters,outputdict=output_parameters)
num_frames,height,width,num_channels =reader.getShape()
print(num_frames, height, width, num_channels)

用于使用 skvideo 库分析 Cool_Kids.mp4 视频,在我使用之前

skvideo.setFFmpegPath("C:/Users/User/PycharmProjects/MachineLearning/venv/lib/site-packages/skvideo/io")

我收到以下错误:

AssertionError: 找不到真正的 FFmpeg(ffprobe 自带)的安装。

然后经过一番研究,我发现了这个 setFFmpegPath 命令,但得到了同样的错误。我错过了什么?有这个链接 Cannot find installation of real FFmpeg (which comes with ffprobe),但我无能为力。我该怎么办?

【问题讨论】:

【参考方案1】:

你必须安装FFmpeg命令行工具。

看来必须在 Python 之外的系统中安装 FFmpeg(我找不到使用 pip install 命令下载 ffmpeg.exe 和 ffprobe.exe 的方法)。

[注意:在 Windows 中安装 FFmpeg,与您在link 中描述的方式不同。

你也可以看看我对以下post的回答。


推荐解决方案:

下载适用于 Windows 的 FFmpeg(包括 FFprobe)可执行文件(下载静态链接版本)。

将 ffmpeg.exe 和 ffprobe.exe 放在同一个文件夹中。 例如在:c:/FFmpeg/bin

setFFmpegPath设置为上述文件夹:

 import skvideo
 skvideo.setFFmpegPath("C:/FFmpeg/bin")
 import skvideo.io
 ...

注意: 您可以选择将 ffmpeg.exe 和 ffprobe.exe 放在文件夹中:C:/Users/User/PycharmProjects/MachineLearning/venv/lib/site-packages/skvideo/io.

【讨论】:

以上是关于在 Python 中实现 skvideo.io.FFmpegReader的主要内容,如果未能解决你的问题,请参考以下文章

python Atbash密码在Python中实现。

python 在python中实现图形边缘/

在 Python 中实现类似列表的索引访问

在 Python 中实现 Typescript 接口

如何在 Python 中实现向量自回归?

python 在python中实现倒数第一个堆栈