You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MoviePy视频压缩异常:EC2 Ubuntu环境下视频几秒后卡顿

解决MoviePy在pip虚拟环境中视频压缩卡顿/无正常视频的问题

针对你遇到的本地conda环境正常、EC2 Ubuntu pip虚拟环境中视频压缩后仅音频完整、视频几秒卡顿的问题,分享几个排查和解决方向:

1. 确认虚拟环境中FFmpeg的版本与调用路径

软链接指向的系统FFmpeg版本很可能和本地的4.3.1存在差异,参数兼容性是核心问题:

  • 在虚拟环境中执行 ffmpeg -version,确认版本是否为4.3.1;
  • 在代码中添加打印,查看MoviePy实际调用的FFmpeg路径:
    import moviepy.editor as mp
    print(mp.ffmpeg_tools.ffmpeg_path)
    
  • 如果版本不符,建议在虚拟环境中单独编译安装FFmpeg 4.3.1,或者通过apt安装对应兼容版本,确保MoviePy调用的是匹配版本的FFmpeg。

2. 调整FFmpeg参数与线程设置

本地兼容的参数在不同FFmpeg版本中可能失效,同时单线程编码可能因EC2资源不足出错:

  • 先简化ffmpeg_params,比如只保留基础参数测试:
    clip_resized.write_videofile(output_path, codec="libx264",
                                 ffmpeg_params=['-pix_fmt', 'yuv420p', '-acodec', 'aac'])
    
    正常生成后再逐步添加-profile:v、-level等参数;
  • 去掉threads=1参数(让MoviePy自动适配线程数),或者设置为threads=4,提升编码稳定性。

3. 强制MoviePy调用指定FFmpeg

pip版MoviePy默认优先调用系统FFmpeg,软链接可能未被识别,可通过环境变量指定路径:

  • 在代码开头添加环境变量配置:
    import os
    # 替换为你安装的FFmpeg 4.3.1的实际路径
    os.environ['FFMPEG_BINARY'] = '/opt/ffmpeg-4.3.1/bin/ffmpeg'
    
  • 或者激活虚拟环境后,先设置环境变量再运行脚本:
    export FFMPEG_BINARY=/opt/ffmpeg-4.3.1/bin/ffmpeg && python your_script.py
    

4. 验证FFmpeg命令行编码是否正常

排除MoviePy的影响,直接用FFmpeg命令行测试:

ffmpeg -i input.mp4 -vf scale=640:360 -c:v libx264 -profile:v baseline -level 3.0 -pix_fmt yuv420p -c:a aac output.mp4

如果命令行生成的视频仍卡顿,说明是FFmpeg本身的配置/版本问题;如果命令行正常,则是MoviePy的调用逻辑需要调整。

5. 检查EC2资源限制

EC2实例的CPU、内存不足可能导致编码中途出错:

  • 查看EC2监控面板的CPU使用率,或者编码时用top命令观察资源占用;
  • 若资源不足,可临时升级实例类型,或调整编码参数降低负载(比如降低分辨率)。

内容的提问来源于stack exchange,提问作者Dmytro Razvaliaiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:06:17