Получить временную метку видеокадра с помощью плагина VapourSynth ffms2 - PullRequest
0 голосов
/ 10 октября 2018

Я использую этот фрагмент в качестве источника видео, чтобы связываться с ним позже:

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

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

Как я могу получить метку времени указанного кадра или получить список меток времени для каждого кадра?

1 Ответ

0 голосов
/ 11 октября 2018

В соответствии с документами FFMS2 и Справочник по API VapourSynth метка времени кадра может быть получена путем доступа к проповеди _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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...