使用 skvideo 包获取视频的帧率 python

Get frame rate of a video using skvideo package python

我正在使用 skvideo 包阅读视频

video = skvideo.io.vread(video_path)

这 returns 仅帧。但是我也想读取帧率,这样在保存处理后的视频的同时,我可以用相同的帧率保存它。

我在 Whosebug 上找到了很多关于获取帧率的答案,但他们都使用 open-cv。我不想使用 open-cv 来读取帧速率。

您确实可以使用 skvideo 来读取视频元数据。

例如:

import skvideo.io
import skvideo.datasets
import json
metadata = skvideo.io.ffprobe(skvideo.datasets.bigbuckbunny())
print(metadata.keys())
print(json.dumps(metadata["video"], indent=4))

这将打印所有视频元数据。

如果您只对帧率感兴趣,您可以这样获取:

import skvideo.io
import skvideo.datasets

# Example video file
filename = skvideo.datasets.bigbuckbunny()

# Read actual video data and do something with it later on..
videodata = skvideo.io.vread(filename)

# Read video metadata and do something with it..
videometadata = skvideo.io.ffprobe(filename)
frame_rate = videometadata['video']['@avg_frame_rate']

您可以从文档中找到示例,请参阅以下链接: