MoviePy中CompositeVideoClip生成空白不可播放视频问题排查
问题排查与解决方案
问题原因分析
- 分辨率异常:生成2570×960的视频,说明代码大概率误将素材做了横向拼接(hstack),而非目标的纵向拼接(vstack)。目标竖屏为1080宽、1920高,图片和视频需统一宽度为1080,高度各960,纵向堆叠后总高度才会是1920。
- 空白不可播放:
- 未设置总剪辑的时长(比如图片剪辑未指定时长,默认对齐视频时长但逻辑出错);
- 输出时未指定合适编码格式,比如缺少
codec='libx264'参数; - 素材加载逻辑存在隐性问题(虽路径有效,但需确认图片/视频能被MoviePy正常读取)。
- 文字层级失效:未通过
CompositeVideoClip将文字剪辑叠加到拼接后的素材上层,导致文字未显示。
实现方案代码
方式1:使用clips_array实现纵向堆叠+文字叠加
from moviepy.editor import * # 1. 加载并处理素材 # 图片:调整为1080宽、960高,时长同步视频 img_clip = ImageClip("你的图片路径.jpg").resize(width=1080).crop(height=960) # 视频:缩放裁剪到1080宽、960高 video_clip = VideoFileClip("你的视频路径.mp4").resize(width=1080).crop(height=960) # 同步图片时长与视频一致 img_clip = img_clip.set_duration(video_clip.duration) # 2. 纵向堆叠图片和视频 stacked_clip = clips_array([[img_clip], [video_clip]]) # 3. 创建文字剪辑(叠加在最上层) text_clip = TextClip( "你的文字内容", fontsize=50, color="white", font="SimHei" # 中文需指定支持的字体 ).set_position("center").set_duration(video_clip.duration) # 4. 合成最终剪辑 final_clip = CompositeVideoClip([stacked_clip, text_clip]) # 5. 输出竖屏视频(指定编码保证兼容性) final_clip.write_videofile( "输出视频.mp4", fps=25, codec="libx264", audio_codec="aac", preset="medium" )
方式2:使用vstack配合合成逻辑(替代concatenate_videoclips时间轴拼接)
concatenate_videoclips默认是时间轴拼接,要实现空间纵向堆叠需用vstack,再叠加文字:
from moviepy.editor import * # 1. 处理素材(同方式1) img_clip = ImageClip("你的图片路径.jpg").resize(width=1080).crop(height=960) video_clip = VideoFileClip("你的视频路径.mp4").resize(width=1080).crop(height=960) img_clip = img_clip.set_duration(video_clip.duration) # 2. 纵向堆叠素材 stacked_clip = vstack([img_clip, video_clip]) # 3. 添加文字剪辑 text_clip = TextClip( "你的文字内容", fontsize=50, color="white", font="SimHei" ).set_position("center").set_duration(video_clip.duration) # 4. 合成并输出 final_clip = CompositeVideoClip([stacked_clip, text_clip]) final_clip.write_videofile( "输出视频.mp4", fps=25, codec="libx264", audio_codec="aac" )
额外注意事项
- 中文文字需确保系统有对应字体,否则会出现乱码;
- 裁剪素材时优先用
resize(width=1080)保证宽度正确,再用crop调整高度,避免画面变形; - 输出时指定
codec='libx264'和audio_codec='aac',确保视频在多数播放器中正常播放。
内容的提问来源于stack exchange,提问作者The Amateur Coder
相关产品推荐
相关产品推荐

