python读取视频信息_python调用mediainfo工具批量提取视频信息

本文介绍了两个Python脚本,利用mediainfo工具批量提取视频的元数据信息,包括文件大小、码率、时长、视频格式、帧宽和帧高等。脚本分别针对指定目录和当前目录下的视频文件,处理过程中忽略非视频文件和子目录。提取结果保存到Excel表格,失败的视频记录在日志文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写了2个脚本,分别是v1版本和v2版本

都是python调用mediainfo工具提取视频元数据信息

v1版本是使用pycharm中测试运行的,指定了视频路径

v2版本是最终交付给运营运行的,会把v2版本打成exe运行

先看v1版本

import os,subprocess,json,re,locale,sys

import xlwt,time,shutil

#获取当前文件所在绝对目录路径

# this_path=os.path.abspath('.')

# print('当前路径为----',this_path)

# dir_path=this_path

#视频文件所在目录

dir_path='I:\\3分钟便当'

# print(os.listdir(this_path))

print('---------------------------------')

print('--------------程序马上开始----------------')

# dir_path=this_path

#定义个列表存放每个文件绝对路径,便于后期操作

init_list=[]

# dir_path='F:\\玩具屋总视频'

#创建个方法,统计每个文件路径,并追加列表中。这里注释掉了递归,不获取子目录了,只获取dir_path下面的视频

def get_all_file(dir_path,init_list):

for file in os.listdir(dir_path):

# print(file)

filepath=os.path.join(dir_path,file)

# print(filepath)

if os.path.isdir(filepath):

print('遇到子目录---%s---此版本暂不提取子目录视频信息--'%(filepath))

time.sleep(2)

# get_all_file(filepath)

else:

if not file.endswith('exe'):

init_list.append(filepath)

return init_list

#执行上面方法,把每个文件绝对路径追加到列表中

file_list=get_all_file(dir_path,init_list)

print("文件读取完毕-----3秒后开始获取视频详细信息------------")

time.sleep(3)

#定义个方法,获取单个media文件的元数据,返回为字典数据

#此程序核心是调用了mediainfo工具来提取视频信息的

def get_media_info(file):

pname='D:\mediainfo_i386\MediaInfo.exe "%s" --Output=JSON'%(file)

result=subprocess.Popen(pname,shell=False,stdout=subprocess.PIPE).stdout

list_std=result.readlines()

str_tmp=''

for item in list_std:

str_tmp+=bytes.decode(item.strip())

json_data=json.loads(str_tmp)

return json_data

#定义个方法传递字典数据,返回自己想要的字段数据,返回值列表

def get_dict_data(json_dat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值