读取目录里视频信息,如文件名,影像文件大小,影像分辨率多少,影像总长度多少
时间: 2023-08-11 16:42:25 浏览: 45
好的,下面是使用Python实现读取目录里视频信息的代码:
```python
import os
import cv2
# 定义一个函数,用于获取视频信息
def get_video_info(video_path):
# 打开视频文件
cap = cv2.VideoCapture(video_path)
# 获取视频的基本信息
video_name = os.path.basename(video_path)
video_size = os.path.getsize(video_path)
video_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
video_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
video_fps = int(cap.get(cv2.CAP_PROP_FPS))
video_frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
video_duration = video_frame_count / video_fps
# 释放视频文件
cap.release()
# 返回视频信息
return {
'name': video_name,
'size': video_size,
'resolution': f'{video_width}x{video_height}',
'duration': video_duration
}
# 定义一个函数,用于获取目录中所有视频的信息
def get_videos_info(dir_path):
# 获取目录中所有文件的路径
file_paths = [os.path.join(dir_path, file_name) for file_name in os.listdir(dir_path)]
# 筛选出视频文件的路径
video_paths = [file_path for file_path in file_paths if os.path.isfile(file_path) and file_path.endswith('.mp4')]
# 获取每个视频的信息
videos_info = [get_video_info(video_path) for video_path in video_paths]
# 返回所有视频的信息
return videos_info
# 设置目录路径
dir_path = 'videos/'
# 获取目录中所有视频的信息
videos_info = get_videos_info(dir_path)
# 打印每个视频的信息
for video_info in videos_info:
print(f"视频名称:{video_info['name']}")
print(f"影像文件大小:{video_info['size']} bytes")
print(f"影像分辨率:{video_info['resolution']}")
print(f"影像总长度:{video_info['duration']} 秒")
print('-' * 50)
```
以上代码中,我们定义了两个函数。`get_video_info`函数用于获取单个视频的信息,`get_videos_info`函数用于获取目录中所有视频的信息。我们可以先调用`get_videos_info`函数获取目录中所有视频的信息,然后再逐个打印每个视频的信息。
在`get_video_info`函数中,我们使用OpenCV库打开视频文件,并获取视频的基本信息,如文件名、文件大小、影像分辨率、影像总长度等。最后,我们将这些信息存储在一个字典中,并返回该字典。
在`get_videos_info`函数中,我们首先获取目录中所有文件的路径,然后筛选出视频文件的路径。接着,我们调用`get_video_info`函数获取每个视频的信息,并将这些信息存储在一个列表中,并返回该列表。
在最后的代码中,我们将目录路径设置为`videos/`,然后调用`get_videos_info`函数获取目录中所有视频的信息,并逐个打印每个视频的信息。
希望这段代码能够帮到你!