Python 脚本使用 MediaInfo 统计视频元数据并写入 Excel
以下是一个 Python 3 编写的使用 MediaInfo 统计视频元数据并将其写入 Excel 的脚本。在运行此脚本之前,您需要安装 mediainfo 和 openpyxl 模块。
import os
import openpyxl
from openpyxl import Workbook
from pymediainfo import MediaInfo
def get_video_metadata(file_path):
# 使用 MediaInfo 获取视频元数据
media_info = MediaInfo.parse(file_path)
video_metadata = {}
for track in media_info.tracks:
if track.track_type == 'Video':
video_metadata['Duration'] = int(float(track.duration))
video_metadata['Width'] = track.width
video_metadata['Height'] = track.height
video_metadata['FrameRate'] = track.frame_rate
video_metadata['Codec'] = track.codec
video_metadata['Bitrate'] = int(track.bit_rate)
break
return video_metadata
def write_to_excel(file_path, sheet):
# 将元数据写入到 Excel 表格中
metadata = get_video_metadata(file_path)
row = []
row.append(os.path.basename(file_path))
row.append(metadata.get('Duration'))
row.append(metadata.get('Width'))
row.append(metadata.get('Height'))
row.append(metadata.get('FrameRate'))
row.append(metadata.get('Codec'))
row.append(metadata.get('Bitrate'))
sheet.append(row)
def main():
# 遍历目录下所有视频文件并统计元数据
directory = 'path/to/directory'
wb = Workbook()
sheet = wb.active
sheet.title = 'Video Metadata'
sheet.append(['Filename', 'Duration', 'Width', 'Height', 'FrameRate', 'Codec', 'Bitrate'])
for dirpath, dirnames, filenames in os.walk(directory):
for filename in filenames:
if filename.endswith('.mp4') or filename.endswith('.avi') or filename.endswith('.mov'):
file_path = os.path.join(dirpath, filename)
write_to_excel(file_path, sheet)
# 保存 Excel 文件
wb.save('video_metadata.xlsx')
if __name__ == '__main__':
main()
此脚本将遍历指定目录下的所有视频文件,并使用 MediaInfo 获取视频元数据。然后,它将这些元数据写入 Excel 表格中,包括文件名,持续时间,分辨率,帧速率,编解码器和比特率。最后,脚本将保存 Excel 文件。
原文地址: https://www.cveoy.top/t/topic/mzZd 著作权归作者所有。请勿转载和采集!