需要一个python3编写的使用mediainfo统计视频大小、Video_info、Audio_info并写入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/93l 著作权归作者所有。请勿转载和采集!