import os import glob import subprocess

def get_video_info(file_path): video_result = subprocess.run( [ 'mediainfo', '--Inform=Video;%Format%|%Width%x%Height%|%BitRate/String%|%FrameRate%|%Duration/String3%', file_path ], stdout=subprocess.PIPE ) video_output = video_result.stdout.decode().strip() return video_output

def get_audio_info(file_path): audio_result = subprocess.run( [ 'mediainfo', '--Inform=Audio;%Format%|%BitRate/String%|%SamplingRate/String%', file_path ], stdout=subprocess.PIPE ) audio_output = audio_result.stdout.decode().strip() return audio_output

def write_to_file(file_path, content): with open(file_path, 'a') as f: f.write(content)

def process_videos(directory): for root, dirs, files in os.walk(directory): for file_name in files: if file_name.endswith('.mp4'): file_path = os.path.join(root, file_name) video_name = os.path.splitext(os.path.basename(file_path))[0] output_file = os.path.join(root, 'mediainfo_{}.txt'.format(video_name)) # mediainfo_*.txt write_to_file(output_file, '[center]\n') write_to_file(output_file, '----------------Mediainfo----------------\n')

            write_to_file(output_file, 'Video\n')
            video_info = get_video_info(file_path)
            video_info_parts = video_info.split('|')
            if len(video_info_parts) >= 5:
                duration = int(video_info_parts[4].split()[0])
                write_to_file(output_file, 'Format : {}\n'.format(video_info_parts[0]))
                write_to_file(output_file, 'Resolution : {}\n'.format(video_info_parts[1]))
                write_to_file(output_file, 'BitRate : {}\n'.format(video_info_parts[2]))
                write_to_file(output_file, 'FrameRate : {}\n'.format(video_info_parts[3]))
                write_to_file(output_file, 'Duration : {} seconds\n'.format(duration))

            write_to_file(output_file, '\nAudio\n')
            audio_info = get_audio_info(file_path)
            audio_info_parts = audio_info.split('|')
            if len(audio_info_parts) >= 3:
                write_to_file(output_file, 'Format : {}\n'.format(audio_info_parts[0]))
                write_to_file(output_file, 'BitRate : {}\n'.format(audio_info_parts[1]))
                write_to_file(output_file, 'SamplingRate : {}\n'.format(audio_info_parts[2]))

            write_to_file(output_file, '\nscenes:\n')
            write_to_file(output_file, '[/center]')

视频目录

video_directory = r'C:\Users\Administrator\桌面\fsdownload' process_videos(video_directory

代码中写入的Duration不是整数请在写入txt时取整数秒import osimport globimport subprocessdef get_video_infofile_path video_result = subprocessrun mediainfo --Inform=Video;FormatWidthxHeight

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

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