首页 > 解决方案 > Moviepy 扭曲连接(纵向)视频

问题描述

尝试使用moviepy库连接我用手机拍摄的各种“肖像”视频。但由于某种原因,结果是视频失真。作为一个测试案例,我什至尝试读取一个视频剪辑并使用 concatenate_videoclips 方法重新编写它,但它仍然会产生失真的结果。

这是用我的手机拍摄的测试视频的示例帧(磁盘分辨率:1920 x 1080,显然包括黑色背景):

文本

这是从输出视频中捕获的同一帧(分辨率保持在 1920 x 1080 但没有黑色背景 => 失真图像):

文本

这是我使用的(非常简单的)代码片段:

from moviepy.editor import VideoFileClip, concatenate_videoclips


video_0 = VideoFileClip("test_vid.mp4")

concatenated_clip = concatenate_videoclips([video_0], method="compose")  # same result if method="chain"
concatenated_clip.write_videofile("test_vid_concat.mp4")

我无法弄清楚问题是什么。

标签: pythonpython-3.xvideo-processingmoviepy

解决方案


这是moviepy版本中的一个错误1.0.3:ffmpeg 阅读器不会将旋转元数据考虑到手机上捕获的视频。该错误记录在:

视频文件剪辑宽度和高度不考虑旋转元数据 #1663

以及今年 5 月在master分支上提供的修复:

考虑旋转元数据来定义视频大小 #577

版本1.0.3仍然是 PyPI 上的最新版本(即由 安装的版本pip),因此您需要安装 master 分支(git clonerepo 并py setup.py install在源文件夹中运行)才能获得修复。

我遇到了同样的问题,安装主分支为我修复了它。

预先警告:moviepy仍然很过时。它依赖于numpy == 1.20,因此您将不得不使用许多较旧的软件包。我强烈建议安装在虚拟环境中。


推荐阅读