下面的python3代码无法处理wmv格式视频会报not enough values to unpack expected 3 got 1错误请帮忙修改并检查代码中的错误import osimport reimport subprocessimport openpyxlimport mathfrom openpyxlstyles import Font PatternFill Alignment#
该代码中使用了mediainfo工具来获取视频信息,但是mediainfo不能处理wmv格式视频,因此需要修改代码来处理这种情况。
建议使用ffprobe工具来获取视频信息,因为它支持更多的视频格式,包括wmv格式。
修改步骤如下:
-
安装ffprobe工具。可以在https://ffmpeg.org/download.html#build-windows下载静态编译版,解压后将ffprobe.exe所在目录添加到系统环境变量中。
-
替换原来使用mediainfo获取视频信息的代码,改为使用ffprobe获取视频信息。具体代码如下:
# 使用ffprobe获取视频信息
result = subprocess.run(['ffprobe', '-v', 'error', '-show_entries', 'format=format_name,duration:stream=width,height,bit_rate,avg_frame_rate:stream_tags=language', '-of', 'csv=p=0', video_file], stdout=subprocess.PIPE)
output = result.stdout.decode().strip()
info = output.split(',')
# 解析输出结果
format_name = info[0]
duration = info[1]
# 视频信息
video_info = info[2:6]
resolution = f'{video_info[0]}x{video_info[1]}'
bitrate = video_info[2]
framerate = video_info[3]
# 音频信息
audio_bitrate = []
audio_sampling_rate = []
audio_lang = []
for i in range((len(info) - 6) // 3):
audio_bitrate.append(info[6 + i * 3])
audio_sampling_rate.append(info[6 + i * 3 + 1])
audio_lang.append(info[6 + i * 3 + 2])
-
删除原来使用的正则表达式pattern,因为ffprobe输出的码率数据中已经没有空格了。
-
修改Excel表头中的“码率”和“帧率”为“视频码率”和“视频帧率”,以区分音频码率和视频码率。
修改后的完整代码如下:
原文地址: https://www.cveoy.top/t/topic/bd3q 著作权归作者所有。请勿转载和采集!