You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Nvidia DALI获取视频的FPS及每帧时间信息?

获取视频FPS及每帧时间的方法

DALI的pipe.reader_meta()确实不会返回视频原始FPS,你可以用下面两种方法解决:

方法一:用OpenCV预获取视频FPS

直接用OpenCV读取视频文件的元数据,拿到原始FPS后计算每帧时间,是最直接的方案:

import cv2

# 读取视频文件
cap = cv2.VideoCapture(vid_name)
# 获取视频原始FPS
video_fps = cap.get(cv2.CAP_PROP_FPS)
# 计算每帧的时间间隔(秒)
frame_time = 1 / video_fps
# 释放资源
cap.release()

之后你在处理DALI读取的帧时,就可以用帧序号 * frame_time得到对应帧的时间戳。

方法二:通过DALI读取总帧数+外部工具获取视频时长计算FPS

如果需要结合DALI的帧计数结果,可以按以下步骤操作:

  1. 用DALI获取视频总帧数:
# 在pipe.build()之后执行
reader_meta = pipe.reader_meta()
total_frames = reader_meta["epoch_size"]
  1. 用ffmpeg获取视频总时长(也可以用Python的ffmpeg封装库调用):
ffmpeg -i your_video.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,

将得到的时长(如00:02:30.12格式)转换为秒数后,用total_frames / 总时长秒数算出FPS,再推导每帧时间。

方法一更简单高效,推荐优先使用。

内容的提问来源于stack exchange,提问作者Наталья Шафорост

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:02:34