需要一个python3编写的使用pymediainfo库统计所有info并写入excel的脚本
以下是一个使用pymediainfo库统计所有info并写入excel的Python脚本示例:
import os
import xlsxwriter
from pymediainfo import MediaInfo
# 设置要读取的视频文件夹路径
video_folder_path = "/path/to/video/folder"
# 创建Excel工作簿和工作表
workbook = xlsxwriter.Workbook('video_info.xlsx')
worksheet = workbook.add_worksheet()
# 设置Excel表头
worksheet.write(0, 0, "文件名")
worksheet.write(0, 1, "格式")
worksheet.write(0, 2, "时长")
worksheet.write(0, 3, "视频编码")
worksheet.write(0, 4, "视频分辨率")
worksheet.write(0, 5, "视频比特率")
worksheet.write(0, 6, "音频编码")
worksheet.write(0, 7, "音频比特率")
worksheet.write(0, 8, "音频采样率")
worksheet.write(0, 9, "音频声道数")
# 遍历视频文件夹中的所有视频文件
for i, filename in enumerate(os.listdir(video_folder_path)):
if filename.endswith(".mp4") or filename.endswith(".avi"):
# 使用pymediainfo库获取视频信息
media_info = MediaInfo.parse(os.path.join(video_folder_path, filename))
# 提取所有info
info_dict = {}
for track in media_info.tracks:
for key in track.__dict__:
if not key.startswith("_"):
info_dict[key] = track.__dict__[key]
# 将info写入Excel表格中
worksheet.write(i+1, 0, filename)
worksheet.write(i+1, 1, info_dict.get("format"))
worksheet.write(i+1, 2, round(info_dict.get("duration") / 1000))
worksheet.write(i+1, 3, info_dict.get("video_codec"))
worksheet.write(i+1, 4, f"{info_dict.get('width')}x{info_dict.get('height')}")
worksheet.write(i+1, 5, f"{info_dict.get('bitrate')} bps")
worksheet.write(i+1, 6, info_dict.get("audio_codec"))
worksheet.write(i+1, 7, f"{info_dict.get('audio_bitrate')} bps")
worksheet.write(i+1, 8, f"{info_dict.get('audio_sampling_rate')} Hz")
worksheet.write(i+1, 9, info_dict.get("audio_channels"))
# 关闭Excel工作簿
workbook.close()
使用此脚本,您可以将视频文件夹中的所有视频信息提取到一个Excel文件中。请注意,此脚本仅限于MP4和AVI格式的视频文件。如果您需要处理其他格式的视频文件,请根据需要进行修改。
原文地址: https://www.cveoy.top/t/topic/93N 著作权归作者所有。请勿转载和采集!