Python3 脚本:利用 MediaInfo 统计视频元数据并写入 Excel
以下是一个利用 MediaInfo 统计视频元数据并写入 Excel 的 Python3 脚本:
import os
import subprocess
import openpyxl
# 定义 MediaInfo 命令
mediainfo_cmd = 'mediainfo --Output=XML'
# 定义需要统计的元数据
metadata_list = ['General/CompleteName', 'General/Format', 'Video/CodecID', 'Video/Duration',
'Video/Width', 'Video/Height', 'Video/FrameRate', 'Audio/CodecID', 'Audio/SamplingRate',
'Audio/Channels', 'Audio/Duration']
# 定义需要统计的文件夹路径
folder_path = '/path/to/folder'
# 定义 Excel 文件名和路径
excel_file_name = 'metadata.xlsx'
excel_file_path = os.path.join(folder_path, excel_file_name)
# 创建 Excel 文件
workbook = openpyxl.Workbook()
worksheet = workbook.active
# 写入 Excel 表头
for i, metadata in enumerate(metadata_list):
worksheet.cell(row=1, column=i+1, value=metadata)
# 遍历文件夹中的所有视频文件
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
if file_path.endswith('.mp4') or file_path.endswith('.avi'):
# 执行 MediaInfo 命令
output = subprocess.check_output([mediainfo_cmd, file_path])
# 解析 XML 输出
xml_output = output.decode('utf-8')
xml_output = xml_output.replace('&', '&')
xml_output = xml_output.replace('<MediaInfo>', '<MediaInfo xmlns="http://mediainfo.sourceforge.net/mediainfo">')
parsed_output = openpyxl.xml.functions.fromstring(xml_output)
# 写入 Excel 表格
row = [parsed_output.findtext(metadata) for metadata in metadata_list]
worksheet.append(row)
# 保存 Excel 文件
workbook.save(excel_file_path)
使用方法:
-
将上面的代码保存为一个 Python 脚本文件,比如
mediainfo_to_excel.py。 -
修改以下参数:
metadata_list:定义需要统计的元数据,可以根据需要修改。folder_path:定义需要统计的文件夹路径。excel_file_name:定义 Excel 文件名。
-
在终端中执行以下命令:
$ python3 mediainfo_to_excel.py脚本将会自动执行,并在指定的文件夹路径中生成一个 Excel 文件,包含所有视频文件的元数据信息。
原文地址: https://www.cveoy.top/t/topic/mzYW 著作权归作者所有。请勿转载和采集!