我需要一个python3编写的利用pymediainfo库统计视频大小gib单位、时长小时分钟秒、比特率kbs单位、fps取小数点后两位、宽度、高度音频元数据等所有信息并写入excel的脚本
以下是一个实现你所需功能的Python3脚本,使用了pymediainfo库和openpyxl库。
import os
from pymediainfo import MediaInfo
from openpyxl import Workbook
def get_video_info(filename):
media_info = MediaInfo.parse(filename)
video_track = media_info.tracks[0]
audio_track = media_info.tracks[1]
duration = int(float(video_track.duration) / 1000)
size = os.path.getsize(filename) / 1024 / 1024 / 1024
bitrate = int(video_track.bit_rate / 1000)
fps = round(float(video_track.frame_rate), 2)
width = video_track.width
height = video_track.height
audio_codec = audio_track.format
audio_bitrate = int(audio_track.bit_rate / 1000)
audio_channels = audio_track.channel_s
audio_sampling_rate = int(audio_track.sampling_rate / 1000)
return duration, size, bitrate, fps, width, height, audio_codec, audio_bitrate, audio_channels, audio_sampling_rate
def write_to_excel(filename, data):
wb = Workbook()
ws = wb.active
ws.append(['文件名', '时长(秒)', '大小(GiB)', '比特率(kb/s)', 'FPS', '宽度', '高度', '音频编码', '音频比特率(kb/s)', '音频通道数', '音频采样率(kHz)'])
for row in data:
ws.append(row)
wb.save(filename)
if __name__ == '__main__':
folder_path = 'your_folder_path'
excel_filename = 'video_info.xlsx'
data = []
for filename in os.listdir(folder_path):
if filename.endswith('.mp4') or filename.endswith('.mov'):
file_path = os.path.join(folder_path, filename)
duration, size, bitrate, fps, width, height, audio_codec, audio_bitrate, audio_channels, audio_sampling_rate = get_video_info(file_path)
data.append([filename, duration, size, bitrate, fps, width, height, audio_codec, audio_bitrate, audio_channels, audio_sampling_rate])
write_to_excel(excel_filename, data)
你需要修改以下变量:
- folder_path:需要统计的视频所在的文件夹路径
- excel_filename:统计结果写入的Excel文件名
在脚本运行结束后,你将得到一个Excel文件,其中包含了所有视频的信息。
原文地址: https://www.cveoy.top/t/topic/91r 著作权归作者所有。请勿转载和采集!