我正在尝试编写一个可调整视频文件大小的应用程序,而最简单的方法就是moviepy。但是,我不能使用moviepy的调整大小功能。似乎未解决的参考。我的部分代码在这里:
我尝试使用带有子进程的ffmpeg解决我的问题,但这没有用。
from moviepy.editor import *
video_path = self.file_name2process.text()
video2process = VideoFileClip(video_path)
video2process_resized = video2process.resize(height=360)
video2process_resized.write_videofile("new.mp4")
它不显示任何错误消息,因为它不能识别调整大小的零件。由于它无法识别调整大小的部分,因此它也不允许我使用'write_videofile'函数。不知何故,当我查看“ VideoFileClip”模块时,可以在其中看到调整大小功能,但是我无法达到该目的。
答案 0 :(得分:0)
是的,它显示调整大小作为未解决的参考,但还是可以完成工作。
from moviepy.editor import VideoFileClip
disk_video_path = get_tmp_video_file_path(video)
clip = VideoFileClip(disk_video_path)
video_max_height = int(get_config_value(STORY_VIDEO_HEIGHT))
if clip.h > video_max_height:
clip_resized = clip.resize(height=video_max_height)
clip_resized.write_videofile(RESIZED_STORY_VIDEO_NAME, temp_audiofile="temp-audio.m4a",
remove_temp=True,
codec="libx264",
audio_codec="aac", fps=30,
logger=None, threads=4)
clip.close()
答案 1 :(得分:0)
对于像我一样盲目地绊倒它的人:调整大小函数返回调整大小的剪辑的副本。您需要重新分配变量! 我知道 Shivam 的答案包含解决方案,但直到在 reddit 上明确找到答案之前我才注意到它。 moviePy 文档令人困惑,因为该示例没有显示重新分配。
resizedClip = oldClip.resize(width=400)