以下是一个使用 pymediainfo 库统计视频元数据并将其写入 Excel 的 Python 3 脚本示例:

import os
import csv
import sys
from pymediainfo import MediaInfo

def get_metadata(filename):
    media_info = MediaInfo.parse(filename)
    metadata = {}
    for track in media_info.tracks:
        if track.track_type == 'General':
            metadata['duration'] = track.duration
            metadata['format'] = track.format
            metadata['bitrate'] = track.overall_bit_rate
            metadata['filesize'] = track.file_size
        elif track.track_type == 'Video':
            metadata['video_codec'] = track.codec_id
            metadata['width'] = track.width
            metadata['height'] = track.height
            metadata['framerate'] = track.frame_rate
        elif track.track_type == 'Audio':
            metadata['audio_codec'] = track.codec_id
            metadata['channels'] = track.channel_s
            metadata['sampling_rate'] = track.sampling_rate
            metadata['language'] = track.language
    return metadata

def write_to_csv(metadata, output_file):
    with open(output_file, 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(metadata.values())

def main():
    if len(sys.argv) < 3:
        print('Usage: python3 metadata.py input_directory output_file.csv')
        sys.exit(1)

    input_directory = sys.argv[1]
    output_file = sys.argv[2]

    with open(output_file, 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(['Filename', 'Duration', 'Format', 'Bitrate', 'Filesize', 'Video Codec', 'Width', 'Height', 'Framerate', 'Audio Codec', 'Channels', 'Sampling Rate', 'Language'])

    for root, dirs, files in os.walk(input_directory):
        for filename in files:
            if filename.endswith('.mp4') or filename.endswith('.mkv'):
                filepath = os.path.join(root, filename)
                metadata = get_metadata(filepath)
                metadata['filename'] = filename
                write_to_csv(metadata, output_file)

if __name__ == '__main__':
    main()

该脚本接受两个命令行参数:输入目录和输出文件名。它会遍历输入目录中的所有.mp4和.mkv文件,并使用pymediainfo库获取视频元数据。然后,它将元数据写入一个CSV文件,每一行代表一个视频文件的元数据。输出文件的第一行是标题行。

Python 3 脚本:使用 pymediainfo 库提取视频元数据并写入 Excel

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

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