我需要一个python3编写的统计视频所有元数据并写入excel的脚本
以下是一个Python 3编写的统计视频所有元数据并写入Excel的脚本示例:
import os
import subprocess
import xlsxwriter
# 设置要分析的视频文件夹路径和Excel文件名
video_folder = '/path/to/video/folder'
excel_file = 'video_metadata.xlsx'
# 获取视频文件列表
video_files = [os.path.join(video_folder, f) for f in os.listdir(video_folder) if f.endswith('.mp4')]
# 创建Excel工作簿和工作表
workbook = xlsxwriter.Workbook(excel_file)
worksheet = workbook.add_worksheet()
# 写入表头行
headers = ['文件名', '时长', '编码', '分辨率', '比特率']
for i, header in enumerate(headers):
worksheet.write(0, i, header)
# 遍历视频文件列表,分析每个视频并写入Excel行
for row, video_file in enumerate(video_files, start=1):
# 从文件名获取视频标题
video_title = os.path.splitext(os.path.basename(video_file))[0]
# 使用ffprobe命令获取视频元数据
ffprobe_cmd = f'ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -show_entries stream=codec_name,width,height,bit_rate -of csv=p=0 "{video_file}"'
ffprobe_output = subprocess.check_output(ffprobe_cmd, shell=True, universal_newlines=True)
ffprobe_output = ffprobe_output.strip().split(',')
# 将元数据写入Excel行
worksheet.write(row, 0, video_title)
worksheet.write(row, 1, ffprobe_output[0])
worksheet.write(row, 2, ffprobe_output[1])
worksheet.write(row, 3, f'{ffprobe_output[2]}x{ffprobe_output[3]}')
worksheet.write(row, 4, ffprobe_output[4])
# 关闭Excel工作簿
workbook.close()
说明:
- 首先设置要分析的视频文件夹路径和Excel文件名。
- 获取视频文件列表,仅选择文件名以“.mp4”结尾的文件。
- 创建Excel工作簿和工作表,写入表头行。
- 遍历视频文件列表,分析每个视频并写入Excel行。
- 使用ffprobe命令获取视频元数据,解析并将其写入Excel行。
- 最后关闭Excel工作簿。
原文地址: https://www.cveoy.top/t/topic/90o 著作权归作者所有。请勿转载和采集!