ffmpeg av_seek_frame

Вы можете преобразовать строку в список, пройти каждую букву и подсчитать, если вы находитесь в скобках или нет. В ToRemove вы собираете позиции пробелов, которые затем удаляете из списка. Затем вы конвертируете список обратно в строку ...

res = '(321, 3)-(m-5, 5) -(31,1)'
r = list(res)
insideBracket = 0
toRemove = []
for pos,letter in enumerate(r):
    if letter == '(':
        insideBracket += 1
    elif letter == ')':
        insideBracket -= 1
    if insideBracket > 0:
        if letter == ' ':
            toRemove.append(pos)

for t in toRemove[::-1]:
    r.pop(t)

result = ''.join(r)
print(result)
17
задан Jack Edmonds 2 February 2009 в 20:39
поделиться

1 ответ

Простой ответ: Вы должны сделать, чтобы AVFormatContext возразил лжи вокруг. duration свойство говорит Вам, какой длины Ваш файл с точки зрения метки времени, умноженной на 1 000, который может использоваться в av_seek_frame, так рассматривайте его как 100%. Тогда можно вычислить, как далеко в видео Вы хотите искать на.

, если Вы хотите продвинуться один кадр, просто назовите av_read_frame и avcodec_decode_video, пока он не заполняет got_picture_ptr ненулевым значением. Прежде, чем назвать avcodec_decode_video удостоверяются, что пакет от av_read_frame от видеопотока. avcodec_decode_video тогда заполнит структуру AVFrame, которую можно использовать, чтобы сделать что-либо с.

9
ответ дан 30 November 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: