Может получить временную метку кадра в видео с помощью pyav - python

Как я могу получить метку времени кадра в потоке видео или RTMP из pts и time_base или длительности? Большое спасибо!

import av
def init_input(file_name):
    global a
    container = av.open(file_name)
    a = container.duration
    return container.decode(video=0)
url = "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov"
stream1 = init_input(url)
for frame1 in stream1:
    print(frame1.pts)
    print(frame1.time_base)

PS: frame.time неверно с фактическим временем

1 ответ

На момент написания, эта ошибка была просто исправлена на GitHub.

Если вам нужно это для работы с текущим выпущенным PyAV (т.е. с PyPI), то вы можете использовать time_base на видео Stream:

import av

url = "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov"

container = av.open(url, options={'rtsp_transport': 'tcp'})
stream = container.streams.video[0]

for frame in container.decode(stream):
    print(float(frame.pts * stream.time_base))
Другие вопросы по тегам