使用 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']
您可以从文档中找到示例,请参阅以下链接:
我正在使用 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']
您可以从文档中找到示例,请参阅以下链接: