如何将 moviepy 的 .write_videofile 与 io.BytesIO 一起使用?

问题描述 投票:0回答:1

是否可以使用

io.BytesIO
和 moviepy 绕过文件系统上的存储?我需要将 Docker 容器的所有内容存储在内存中。

python moviepy bytesio
1个回答
0
投票

是的,您可以使用 io.BytesIO 和 MoviePy 将视频文件直接写入内存而不是文件:

pip install moviepy
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
...

output = io.BytesIO()
process = subprocess.Popen(
    ['ffmpeg', '-y', '-f', 'rawvideo', '-s', '640x480', '-pix_fmt', 'rgb24', '-r', '30', '-i', '-', '-c:v', 'libx264', '-f', 'mp4', 'pipe:1'],
    stdin=subprocess.PIPE, stdout=subprocess.PIPE
)
for frame in video.iter_frames(fps=30, dtype='uint8'):
    process.stdin.write(frame.tobytes())
process.stdin.close()
output.write(process.stdout.read())
output.seek(0)

在此处查找 MoviePy 的详细信息:https://pypi.org/project/moviepy/

© www.soinside.com 2019 - 2024. All rights reserved.