以下是一个利用 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_DIROUTPUT_FILE替换成你自己的视频目录和输出文件名。如果你需要修改输出的列名或添加新的统计项,只需要修改FIELD_NAMES变量即可。

Python3 利用 pymediainfo 库统计视频信息并写入 Excel

原文地址: https://www.cveoy.top/t/topic/mz00 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录