使用VapourSynth ffms2插件获取视频帧的时间戳

2024-05-19 05:51:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我将此片段用作视频源,稍后再处理:

import vapoursynth as vs
core = vs.core
core.std.LoadPlugin("/usr/local/lib/libffms2.so")

video = core.ffms2.Source("videotest.mkv")

如何获取指定帧的时间戳或获取每个帧的时间戳列表?你知道吗


Tags: coreimport视频solibusrlocalas
1条回答
网友
1楼 · 发布于 2024-05-19 05:51:47

根据FFMS2The VapourSynth API-Reference的文档,可以通过访问每个帧的_AbsoluteTime属性来获得帧的时间戳。你知道吗

使用video.frames()在每个帧上获取迭代器:

for frame in video.frames():
    print(frame.props["_AbsoluteTime"])

下面是另一个例子:

>>> import vapoursynth
>>> s = vapoursynth.core.ffms2.Source(r"Z:\Anime\Serien\Incomplete\Akanesasu Shoujo\[HorribleSubs] Akanesasu Shoujo - 01 [1080p].mkv")
>>> f = s.get_frame(0)
>>> f.props
<vapoursynth.VideoProps {'_AbsoluteTime': 0.043, '_ChromaLocation': 0, '_ColorRange': 1, '_DurationDen': 1000, '_DurationNum': 41, '_FieldBased': 0, '_Matrix': 2, '_PictType': b'I', '_Primaries': 2, '_SARDen': 1, '_SARNum': 1, '_Transfer': 2}>
>>> f.props._AbsoluteTime
0.043

相关问题 更多 >

    热门问题