Python 脚本:使用 MediaInfo 统计视频信息并写入 Excel 表格
以下是一个使用 Python 3 编写的脚本,可以使用 mediainfo 统计视频信息并将其写入 Excel 表格中。请注意,您需要先安装 mediainfo 和 openpyxl 库才能运行此脚本。
import os
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font
from subprocess import Popen, PIPE
# 设置输入文件夹和输出 Excel 文件名
input_folder = '/path/to/folder'
output_file = 'video_info.xlsx'
# 创建一个新的 Excel 工作簿
wb = openpyxl.Workbook()
# 选择第一个工作表
sheet = wb.active
# 设置表头
headers = ['文件名', '格式', '分辨率', '帧率', '时长']
for col_num, header in enumerate(headers, 1):
col_letter = get_column_letter(col_num)
cell = sheet['{}1'.format(col_letter)]
cell.value = header
cell.font = Font(bold=True)
# 初始化行号
row_num = 2
# 循环遍历文件夹中的所有视频文件
for filename in os.listdir(input_folder):
if filename.endswith('.mp4') or filename.endswith('.mkv'):
# 使用 mediainfo 获取视频信息
p = Popen(['mediainfo', '--Output=JSON', os.path.join(input_folder, filename)], stdout=PIPE)
output, _ = p.communicate()
video_info = eval(output.decode('utf-8'))
# 提取所需信息
video_format = video_info['media']['track'][0]['format']
video_width = video_info['media']['track'][1]['Width']
video_height = video_info['media']['track'][1]['Height']
video_resolution = '{}x{}'.format(video_width, video_height)
video_frame_rate = video_info['media']['track'][1]['FrameRate']
video_duration = video_info['media']['track'][0]['Duration']
# 将信息写入 Excel 表格
sheet.cell(row=row_num, column=1).value = filename
sheet.cell(row=row_num, column=2).value = video_format
sheet.cell(row=row_num, column=3).value = video_resolution
sheet.cell(row=row_num, column=4).value = video_frame_rate
sheet.cell(row=row_num, column=5).value = video_duration
row_num += 1
# 调整列宽以适应数据
for col_num in range(1, sheet.max_column + 1):
col_letter = get_column_letter(col_num)
sheet.column_dimensions[col_letter].auto_size = True
# 保存 Excel 文件
wb.save(output_file)
print('Done!')
使用这个脚本,您只需要将 input_folder 变量设置为包含视频文件的文件夹的路径,然后运行它即可。它将自动使用 mediainfo 获取视频信息并将它们写入 Excel 表格中。输出 Excel 文件的名称为 video_info.xlsx。
原文地址: https://www.cveoy.top/t/topic/mzZE 著作权归作者所有。请勿转载和采集!