2

如何从 pts 和 time_base 或 duration 获取视频或 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:frame.time 与实际时间不符

4

1 回答 1

4

在撰写本文时,这个错误刚刚在 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))
于 2018-09-05T23:40:13.037 回答