首页 » PHP教程 » 视频缩放php技巧_MoviePy视频编辑

视频缩放php技巧_MoviePy视频编辑

访客 2024-12-04 0

扫一扫用手机浏览

文章目录 [+]

pip install moviepy

安装完成后,你就可以开始利用MoviePy进行视频编辑了。
但有些繁芜的操作可能须要安装ImageMagick:

​​​​​https://www.imagemagick.org/script/download.php#google_vignett

视频缩放php技巧_MoviePy视频编辑

以WIN10为例,我们还须要手动将ImageMagick的安装目录加入到环境变量中。
或者可以直接修正已经安装好的MoviePy中的config_defaults.py:

视频缩放php技巧_MoviePy视频编辑
(图片来自网络侵删)

IMAGEMAGICK_BINARY = os.getenv('IMAGEMAGICK_BINARY', 'auto-detect')

修正成:IMAGEMAGICK_BINARY = r"C:\ImageMagick-7.1.1-Q16-HDRI\magick.exe"

须要将这个文件路径修正成你自己的安装路径。

基本剪辑导入MoviePy库和视频文件

首先,导入MoviePy库并加载你想编辑的视频文件:

from moviepy.editor import VideoFileClip video = VideoFileClip('input.mp4')

剪辑视频

你可以利用剪辑方法来选择视频的一部分:

# 剪辑从第10秒到第30秒的视频 clip = video.subclip(10, 30)

subclip 方法是 MoviePy 库中用于剪辑视频的主要方法之一。
它许可你从原始视频中选择一个韶光段(子剪辑)并返回一个新的 VideoClip 工具,该工具只包含所选韶光段的视频内容。

语法:

subclip(start_time, end_time)

start_time和end_time以秒位单位,如果视频过长可以换算成秒,但也可以利用下面的格式:

clip.subclip(): 截取视频全部,相称于没做处理clip.subclip(10): 从视频的 `第10秒` 截取到 `结尾`clip.subclip(10, -2): 从视频的 `第10秒` 截取到结尾的 `前两秒`clip.subclip((1, 35), (3, 10)): 从视频的 `第1分35秒` 截取到 `3分10秒`clip.subclip((1, 2, 18), (2, 1, 34)): 从视频的 `第1小时2分18秒` 截取到 `第2小时1分34秒`

保存剪辑后的视频

要保存剪辑后的视频,可以利用以下命令:

clip.write_videofile('output.mp4') 截图

要在视频中截取一帧作为图片,可以利用以下命令:

frame = video.get_frame(15) # 在第15秒截取一帧 frame.save_frame('screenshot.png') 添加笔墨

你可以在视频上添加笔墨,利用MoviePy的TextClip类:

from moviepy.editor import TextClip text = TextClip('Hello, MoviePy!', fontsize=50, color='white') text = text.set_pos('center').set_duration(5) # 在视频中央显示,并持续5秒 final_video = CompositeVideoClip([video, text]) final_video.write_videofile('video_with_text.mp4')制作GIF

要制作GIF,你可以选择视频的一部分并将其保存为GIF格式:

clip = (video.subclip((2, 45), (2, 60)).resize(0.2))clip.write_gif("test.gif", fps=1)

截取原视频2分45到2分60秒的片段,并将尺寸缩小至原来的20%,以1帧每秒保存成GIF文件。

resize语法:

resize(newsize, apply_to="everything", padding_color=None)newsize:新的视频尺寸,可以是一个二元元组 (width, height),也可以是一个数字,表示新的宽度(高度会根据原始宽高比自动打算)。
apply_to:指定要调度尺寸的内容,可选值为 "mask", "video", "audio", "transition" 或 "everything"。
默认为 "everything",表示将尺寸调度运用到视频、音频和过渡效果等所有内容。
padding_color:可选参数,指定在调度尺寸时,如果视频被裁剪或者添补的颜色。
这该当是一个RGB元组或颜色名称。
如果未指定,则默认利用玄色。

write_gif语法:

write_gif(filename, fps=None, program='imageio', opt='nq', loop=0, remove_temp=True, verbose=True)filename:要保存的 GIF 文件的名称,包括文件扩展名(例如:"output.gif")。
fps:可选参数,GIF 的帧速率(帧每秒)。
如果未指定,将利用原始视频剪辑的帧速率。
program:可选参数,用于天生 GIF 的程序。
默认为 'imageio',但也可以选择 'ffmpeg'。
opt:可选参数,用于指定压缩选项的字符串。
默认为 'nq',表示没有压缩。
你可以根据须要变动这些选项,例如利用 'nq' 进行无损压缩,或者利用 'iq' 进行高质量压缩。
loop:可选参数,GIF 播放的循环次数。
0 表示无限循环。
remove_temp:可选参数,如果为 True,则在天生 GIF 后删除临时文件。
默认为 True。
verbose:可选参数,如果为 True,则在天生 GIF 时显示详细信息。
默认为 True。
视频合并

如果你有多个视频文件想要合并,可以利用MoviePy的concatenate_videoclips方法:​

仅供参考,欢迎互换。

标签:

相关文章

Java代码虚拟化保护技术与应用前景

软件应用的需求日益增长,软件开发过程中对代码的保护成为了一个重要议题。Java作为一种广泛应用于企业级应用的编程语言,其代码虚拟化...

PHP教程 2025-03-02 阅读1 评论0

CAD插件错误代码与应对步骤

CAD(计算机辅助设计)软件在工程设计领域得到了广泛应用。CAD插件作为提升设计效率的重要工具,在提高设计师工作效率的也带来了一定...

PHP教程 2025-03-02 阅读1 评论0

上古卷轴代码规则大全游戏背后的编程奥秘

《上古卷轴》作为一款深受玩家喜爱的角色扮演游戏,自问世以来便以其丰富的世界观、独特的游戏体验和深厚的文化底蕴吸引了无数玩家。在这款...

PHP教程 2025-03-02 阅读1 评论0