imageio.get_writer()函数 制作MP4视频
时间: 2025-06-29 19:22:32 浏览: 8
### 使用 `imageio.get_writer()` 创建 MP4 视频
为了使用 `imageio` 库中的 `get_writer()` 方法来创建 MP4 视频,需要了解该方法的具体参数及其用途。以下是详细的参数说明以及示例代码。
#### 参数说明
- **uri**: 文件保存路径,可以是一个字符串表示的文件名或 URL 地址。
- **format**: 可选参数,默认情况下会根据 URI 自动推断格式;对于 MP4 类型应显式设置为 `'ffmpeg'` 或者其他支持此类型的插件名称[^3]。
- **mode**: 工作模式选项,通常设为 `'I'` 即可,意味着从头开始写入新的媒体流而不覆盖现有数据。
- **fps (frames per second)**: 设置输出视频的帧率,即每秒钟播放多少张静态画面组成的连续动态影像。
- **macro_block_size**: 对于某些编解码标准(如 H.264),可能涉及到宏块尺寸的选择,在实际应用中一般不需要手动调整该项除非有特殊需求.
#### 示例代码
下面是一段 Python 代码片段展示如何利用上述提到的功能生成一段简单的 MP4 影片:
```python
import numpy as np
import imageio.v2 as imageio
# 定义一些基本属性
output_file = "output.mp4"
frame_rate = 20 # 帧速率设定为20 FPS
duration = 5 # 总时长为五秒
num_frames = int(duration * frame_rate)
# 初始化 writer 实例
with imageio.get_writer(output_file, format='FFMPEG', mode='I', fps=frame_rate) as writer:
for i in range(num_frames):
# 构建每一帧的内容 - 这里我们只是简单地画一个渐变颜色矩形作为例子
array = np.zeros((192, 256, 3), dtype=np.uint8)
color_value = min(int(i / num_frames * 255), 255)
array[:, :] = [color_value, 0, 255-color_value]
# 将当前构建好的图像加入到writer当中去
writer.append_data(array)
```
这段程序将会创建一个名为 `"output.mp4"` 的文件,并向其中依次追加由 NumPy 数组定义的画面直到达到预设的时间长度为止。注意这里选择了 FFMPEG 格式的编码方式以确保能够正确处理 MP4 输出。
阅读全文
相关推荐


















