Python 3 脚本:利用 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/mzYP 著作权归作者所有。请勿转载和采集!