如何用MoviePy直接读取API响应视频,跳过中间文件添加淡入效果
解决方案
当然可以跳过中间文件的生成步骤,直接在内存中处理API返回的视频内容并导出最终文件。你可以利用Python的io.BytesIO将响应的二进制内容包装成内存类文件对象,MoviePy的VideoFileClip支持直接读取这种对象,无需先写入磁盘。
修正后的完整代码如下:
from moviepy.editor import VideoFileClip from moviepy.video.fx.all import fadein import requests from io import BytesIO # 发送请求获取视频响应 response = requests.post(url, json=payload, headers=headers) response.raise_for_status() # 确保请求成功,避免处理无效响应 # 将响应内容包装为内存中的类文件对象 video_stream = BytesIO(response.content) # 读取视频并添加淡入效果 clip = VideoFileClip(video_stream) clip = clip.fadein(duration=1) # 导出最终视频 clip.write_videofile("response2.mp4") # 手动关闭资源,避免内存泄漏 video_stream.close() clip.close()
关键说明
- 修正了原代码里的拼写错误:
resquests改为requests,cip改为clip - 新增
response.raise_for_status()用于捕获请求异常,防止处理失败的API响应 - 用
BytesIO把视频二进制内容留在内存中处理,跳过磁盘写入中间文件的步骤
内容的提问来源于stack exchange,提问作者Miguel Gonzalez
相关产品推荐
相关产品推荐

