可以使用pyav - python获取视频中帧的时间戳



如何从 pts 和 time_base 或持续时间获取视频或 rtmp 流中帧的时间戳?多谢!

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:帧时间与实际时间不正确

在撰写本文时,此错误刚刚在GitHub上修复。

如果您需要它来使用当前发布的 PyAV(即在 PyPI 上(,那么您可以在视频Stream上使用time_base

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))

相关内容

  • 没有找到相关文章

最新更新