Python3 利用 pymediainfo 库统计视频信息并写入 Excel
以下是一个利用 pymediainfo 库统计视频 info 并写入 excel 的 python3 脚本示例:
import os
import sys
import csv
import datetime
from pymediainfo import MediaInfo
# 视频文件所在目录
VIDEO_DIR = '/path/to/videos'
# 输出 Excel 文件名
OUTPUT_FILE = 'video_info.csv'
# 列名
FIELD_NAMES = ['文件名', '文件路径', '时长', '视频宽度', '视频高度', '视频码率', '音频码率']
def get_video_info(file_path):
'''
获取视频信息
'''
media_info = MediaInfo.parse(file_path)
for track in media_info.tracks:
if track.track_type == 'General':
duration = track.duration / 1000
elif track.track_type == 'Video':
width = track.width
height = track.height
video_bitrate = track.bit_rate
elif track.track_type == 'Audio':
audio_bitrate = track.bit_rate
return duration, width, height, video_bitrate, audio_bitrate
def write_to_csv(file_path, duration, width, height, video_bitrate, audio_bitrate):
'''
将视频信息写入 CSV 文件
'''
with open(file_path, 'a', newline='') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=FIELD_NAMES)
writer.writerow({
'文件名': os.path.basename(file_path),
'文件路径': file_path,
'时长': datetime.timedelta(seconds=duration),
'视频宽度': width,
'视频高度': height,
'视频码率': video_bitrate,
'音频码率': audio_bitrate
})
if __name__ == '__main__':
with open(OUTPUT_FILE, 'w', newline='') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=FIELD_NAMES)
writer.writeheader()
for root, dirs, files in os.walk(VIDEO_DIR):
for file in files:
file_path = os.path.join(root, file)
try:
duration, width, height, video_bitrate, audio_bitrate = get_video_info(file_path)
write_to_csv(OUTPUT_FILE, duration, width, height, video_bitrate, audio_bitrate)
except Exception as e:
print(f'获取视频信息失败:{file_path}', file=sys.stderr)
print(e, file=sys.stderr)
这个脚本会遍历指定目录下所有视频文件,获取视频信息并写入指定 Excel 文件中。你需要将代码中的VIDEO_DIR和OUTPUT_FILE替换成你自己的视频目录和输出文件名。如果你需要修改输出的列名或添加新的统计项,只需要修改FIELD_NAMES变量即可。
原文地址: https://www.cveoy.top/t/topic/mz00 著作权归作者所有。请勿转载和采集!