Python3 使用 MediaInfo 统计视频信息并写入 Excel
以下是一个使用 Python3 编写的,使用 mediainfo 统计视频大小、Video_info、Audio_info 并写入 excel 的脚本:
import os
import subprocess
import xlsxwriter
# 定义文件夹路径
folder_path = '/path/to/video/folder'
# 获取文件夹中所有视频文件路径
video_paths = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.mp4') or file.endswith('.avi') or file.endswith('.mkv'):
video_paths.append(os.path.join(root, file))
# 创建Excel文件和工作表
workbook = xlsxwriter.Workbook('video_info.xlsx')
worksheet = workbook.add_worksheet()
# 定义Excel表头
header = ['Filename', 'Size', 'Video Info', 'Audio Info']
for i in range(len(header)):
worksheet.write(0, i, header[i])
# 循环处理每个视频文件
for i in range(len(video_paths)):
video_path = video_paths[i]
filename = os.path.basename(video_path)
# 使用mediainfo获取视频信息
mediainfo_output = subprocess.check_output(['mediainfo', '--Output=JSON', video_path])
mediainfo_json = json.loads(mediainfo_output.decode('utf-8'))
# 提取视频大小
size = mediainfo_json['media']['track'][0]['FileSize']
# 提取视频信息
video_info = ''
for track in mediainfo_json['media']['track']:
if track['@type'] == 'Video':
video_info += '{} ({}x{}, {} fps), '.format(track['CodecID'], track['Width'], track['Height'], track['FrameRate'])
video_info = video_info[:-2] # 去除最后的逗号和空格
# 提取音频信息
audio_info = ''
for track in mediainfo_json['media']['track']:
if track['@type'] == 'Audio':
audio_info += '{} ({} Hz, {} channels), '.format(track['CodecID'], track['SamplingRate'], track['ChannelCount'])
audio_info = audio_info[:-2] # 去除最后的逗号和空格
# 将信息写入Excel
worksheet.write(i+1, 0, filename)
worksheet.write(i+1, 1, size)
worksheet.write(i+1, 2, video_info)
worksheet.write(i+1, 3, audio_info)
# 关闭Excel文件
workbook.close()
注意,为了使用该脚本,您需要先安装 mediainfo 和 xlsxwriter 模块。可以使用以下命令安装它们:
sudo apt-get install mediainfo
pip install xlsxwriter
另外,该脚本仅支持处理 mp4、avi 和 mkv 格式的视频文件。如果您需要处理其他格式的视频文件,请修改代码中的文件扩展名列表。
原文地址: https://www.cveoy.top/t/topic/mz0w 著作权归作者所有。请勿转载和采集!