我需要一个python3编写的利用pymediainfo和av库统计视频元数据并写入excel的脚本
以下是一个简单的Python 3脚本,使用pymediainfo和av库来统计视频元数据并将其写入Excel文件中。在运行脚本之前,需要先安装pymediainfo和openpyxl库。
import os
import openpyxl
from pymediainfo import MediaInfo
import av
# 获取视频元数据
def get_metadata(file_path):
media_info = MediaInfo.parse(file_path)
for track in media_info.tracks:
if track.track_type == 'Video':
width = track.width
height = track.height
frame_rate = track.frame_rate
duration = track.duration
codec = track.codec
return {'width': width, 'height': height, 'frame_rate': frame_rate, 'duration': duration, 'codec': codec}
# 将元数据写入Excel文件中
def write_to_excel(file_path, metadata):
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = '文件名'
sheet['B1'] = '视频宽度'
sheet['C1'] = '视频高度'
sheet['D1'] = '帧率'
sheet['E1'] = '时长'
sheet['F1'] = '编解码器'
sheet['A2'] = os.path.basename(file_path)
sheet['B2'] = metadata['width']
sheet['C2'] = metadata['height']
sheet['D2'] = metadata['frame_rate']
sheet['E2'] = metadata['duration']
sheet['F2'] = metadata['codec']
wb.save('metadata.xlsx')
# 主函数
def main():
file_path = 'example.mp4'
metadata = get_metadata(file_path)
write_to_excel(file_path, metadata)
if __name__ == '__main__':
main()
在这个例子中,我们首先定义了一个get_metadata函数来获取视频元数据。我们使用pymediainfo库解析视频文件并遍历所有轨道,如果找到了视频轨道,我们就返回包含元数据的字典。
接下来,我们定义了一个write_to_excel函数,它接收文件路径和元数据字典作为参数。我们使用openpyxl库创建一个新的Excel工作簿,并将元数据写入第二行。
最后,在主函数中,我们调用get_metadata函数来获取视频元数据,并调用write_to_excel函数将其写入Excel文件中。在这个例子中,我们使用了一个名为example.mp4的视频文件。你可以将其替换为你自己的视频文件路径。
请注意,这个例子只统计了单个视频文件的元数据。如果你需要统计多个视频文件的元数据,你需要在main函数中编写适当的逻辑来遍历所有视频文件。
原文地址: https://www.cveoy.top/t/topic/91v 著作权归作者所有。请勿转载和采集!