45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
# ===================================
|
|
# 查看视频的帧率等属性
|
|
# ===================================
|
|
import cv2
|
|
import os
|
|
|
|
video_path = "asset/saved_video/output_result.mp4" # 替换成你上传的视频文件名
|
|
|
|
if not os.path.exists(video_path):
|
|
print(f"错误:找不到文件 {video_path}")
|
|
exit()
|
|
|
|
cap = cv2.VideoCapture(video_path)
|
|
|
|
if not cap.isOpened():
|
|
print("错误:无法打开视频文件!")
|
|
exit()
|
|
|
|
# 获取视频自带的物理帧率 (FPS)
|
|
fps = cap.get(cv2.CAP_PROP_FPS)
|
|
|
|
# 获取视频的总帧数
|
|
total_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)
|
|
|
|
# 获取视频的分辨率宽度和高度
|
|
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
|
|
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
|
|
|
|
# 计算视频总时长(秒)
|
|
duration = total_frames / fps if fps > 0 else 0
|
|
|
|
print("==========================================")
|
|
print(f"视频文件: {os.path.basename(video_path)}")
|
|
print(f"视频分辨率: {width} x {height}")
|
|
print(f"视频原生帧率 (FPS): {fps:.2f} 帧/秒 <--- [核心原因看这里]")
|
|
print(f"视频总帧数: {int(total_frames)} 帧")
|
|
print(f"视频总时长: {duration:.2f} 秒")
|
|
print("==========================================")
|
|
|
|
# if fps <= 25.5:
|
|
# print("💡 结论:不出所料,你的视频本身就被录制/压制成了 25 帧!")
|
|
# print("OpenCV 的 cap.read() 会卡在 25fps 的播放速度上等下一帧,导致 NPU 闲置。")
|
|
# print("你想测试 NPU 的真实上限,需要用前面提到的『纯随机数矩阵压测脚本』。")
|
|
|
|
cap.release() |