Python使用imageio库实现MP4转GIF转换器运行失败求助
问题原因
- 代码存在核心API调用错误:你在初始化输出文件操作对象时,错误使用了用于读取文件的
imageio.get_reader()方法,该对象没有写入帧的对应能力,无法完成GIF输出操作。 - 次要潜在问题:imageio处理MP4格式依赖ffmpeg编解码组件,若修复核心错误后仍无法运行,大概率是缺少对应依赖。
修复方案
- 将初始化写入对象的代码行替换为正确的写方法调用:
把
writer = imageio.get_reader(outputPath, fps=fps)
替换为
writer = imageio.get_writer(outputPath, fps=fps)
- 若运行时报编解码相关错误,执行以下命令安装完整依赖:
pip install imageio[ffmpeg]
修复后完整可运行代码
import imageio import os clip = os.path.abspath('six.mp4') def gifMaker(inputPath,targetFormat): outputPath = os.path.splitext(inputPath)[0] + targetFormat print(f'converting {inputPath} \n to {outputPath}') reader = imageio.get_reader(inputPath) fps = reader.get_meta_data()['fps'] # 修复此处API调用错误 writer = imageio.get_writer(outputPath, fps=fps) for frames in reader: writer.append_data(frames) print(f'frame processed') print('Klart') writer.close() gifMaker(clip, '.gif')
注:原代码中打印frame本身会输出大量像素矩阵信息,可替换为打印处理进度提示更友好
内容的提问来源于stack exchange,提问作者Rickard
相关产品推荐
相关产品推荐

