Python 脚本使用 Pymediainfo 统计视频信息并写入 Excel
以下是一个 Python 3 脚本,使用 pymediainfo 库统计视频所有信息并将其写入 Excel:
import os
import sys
import csv
import datetime
import pymediainfo
def get_video_info(video_file):
'Get video information using pymediainfo library'
media_info = pymediainfo.MediaInfo.parse(video_file)
video_track = media_info.video_tracks[0]
audio_track = media_info.audio_tracks[0]
duration = datetime.timedelta(milliseconds=video_track.duration)
return {
'file_name': os.path.basename(video_file),
'file_path': os.path.abspath(video_file),
'duration': str(duration),
'bit_rate': video_track.bit_rate,
'frame_rate': video_track.frame_rate,
'codec': video_track.codec,
'codec_profile': video_track.codec_profile,
'width': video_track.width,
'height': video_track.height,
'audio_codec': audio_track.codec,
'audio_channels': audio_track.channel_s,
'audio_sample_rate': audio_track.sampling_rate,
}
def write_to_csv(video_files, output_file):
'Write video information to CSV file'
with open(output_file, 'w', newline='') as csv_file:
fieldnames = [
'file_name',
'file_path',
'duration',
'bit_rate',
'frame_rate',
'codec',
'codec_profile',
'width',
'height',
'audio_codec',
'audio_channels',
'audio_sample_rate',
]
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
for video_file in video_files:
video_info = get_video_info(video_file)
writer.writerow(video_info)
if __name__ == '__main__':
if len(sys.argv) < 3:
print('Usage: python video_info.py <input_dir> <output_file>')
sys.exit(1)
input_dir = sys.argv[1]
output_file = sys.argv[2]
video_files = [os.path.join(input_dir, f) for f in os.listdir(input_dir) if f.endswith(('.mp4', '.avi', '.mkv'))]
write_to_csv(video_files, output_file)
使用方法:
- 安装 pymediainfo 库:
pip install pymediainfo - 执行脚本,指定输入目录和输出文件:
python video_info.py /path/to/input_dir /path/to/output_file.csv
脚本将统计输入目录中所有扩展名为'.mp4'、'.avi' 或 '.mkv' 的视频文件的信息,并将其写入输出文件的 CSV 格式中。输出文件包括以下列:文件名、文件路径、持续时间、比特率、帧率、视频编解码器、视频编解码器配置文件、宽度、高度、音频编解码器、音频通道数和音频采样率。
原文地址: https://www.cveoy.top/t/topic/mz0J 著作权归作者所有。请勿转载和采集!