moviepy如何将字幕竖着显示,注意moviepy版本为1.0.3
时间: 2023-11-17 11:06:23 浏览: 68
TDengineGUI.1.0.3
可以使用 moviepy 中的 TextClip 和 CompositeVideoClip,在 TextClip 中设置参数 align='center',fontsize=40,method='caption',然后将其垂直方向旋转90度,再使用 CompositeVideoClip 将旋转后的 TextClip 和视频合成即可。代码示例:
```
from moviepy.editor import *
from moviepy.video.tools.subtitles import file_to_subtitles
import numpy as np
duration = 10 # 视频时长
subtitles_path = 'subtitles.srt' # 字幕文件路径
# 将字幕文件转为字幕数组
subtitles = file_to_subtitles(subtitles_path)
# 创建视频
video = CompositeVideoClip([
ColorClip((640, 360), color=(255, 255, 255)).set_duration(duration)
])
# 创建 TextClip 对象,并将其垂直方向旋转90度
txt_clip = TextClip(txt='This is a vertical subtitle', align='center',fontsize=40,method='caption').rotate(90)
# 计算 TextClip 的位置
txt_x = video.w // 2
txt_y = video.h // 2
# 将 TextClip 转为 numpy 数组
txt_img = txt_clip.set_pos((txt_x, txt_y)).get_frame(0)
# 将 TextClip 的高和宽互换,以实现垂直方向的显示
txt_img = np.transpose(txt_img, (1, 0, 2))
# 将旋转后的 TextClip 添加到视频中
sub = ImageClip(txt_img, duration=duration).set_position((0, 0))
# 合成视频
final = CompositeVideoClip([video, sub])
```
当然,具体实现方式还需根据实际情况进行具体调整。
阅读全文