Может получить временную метку кадра в видео с помощью 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))