Movipy的使用

官网文档

下载

pip install moviepy

导包

from moviepy.editor import *

 以下主要针对视频内容

一.属性查看

1.1 查看视频长度

video_clip = VideoFileClip(“test.mp4”)
video_time = video_clip.duration

1.2 查看视频帧数

video_clip = VideoFileClip(“test.mp4”)
video_fps = video_clip.fps

1.3 查看视频帧宽高

video_clip = VideoFileClip(“test.mp4”)
video_width = video_clip.w
video_height = video_clip.h

二.视频合并

2.1 两个或多个视频前后拼接合并

first_video_clip = VideoFileClip("1.mp4")
second_video_clip = VideoFileClip("2.mp4")
third_video_clip = VideoFileClip("3.mp4")
video_clip = concatenate_videoclips([first_video_clip, next_video_clip, third_video_clip], method='compose')
video_clip.write_videofile("合成视频.mp4")
# 合成的时候有很多参数,下面会一一讲解
video_clip.close()
# 如果是多个循环拼接,需要cloes(),默认进程没走完,该条视频线会一直在缓存中
method='compose'这个参数找了好久,如果合成的各个视频帧宽高不一时,则合成的视频会花屏
加了这个参数后就会默认使用最大视频的宽高,其他地方填充黑色背景

2.2 音频加入到视频作为背景音乐

video_clip = VideoFileClip("1.mp4")
voice_clip = video_clip.set_audio(AudioFileClip("she.mp3"))
video_clip.write_videofile(“新的视频.pm4”, audio_codec='aac')

我没试过这样合成的话,视频原声会不会静音,如果没有话,可以使用 audio=False 先让原视频设置为静音,然后再添加新声音

以2.1的合成为例

video_clip.write_videofile("合成视频.mp4" audio=Fales)

2.3 编辑视频时长

video_clip = VideoFileClip("1.mp4")
# 将0-20秒的内容剪切出来
video_clip = final_clip.subclip(0, 20)
video_clip.write_videofile(“新的视频.pm4”, audio_codec='aac')
# 剪切的时间格式还有以下:
clip.subclip(t_start,t_end)
t_start=230.54
t_start=(3,50.54)
t_start=(0,3,50.54)
t_start=('00:03:50.54')

2.4 调节音/视频音量大小

from moviepy.audio.fx.volumex import volumex

voice_clip = AudioFileClip("2.mp3")
video_clip = VideoFileClip("2.mp4")
voice_vol = volumex(voice_clip, 1)
video_vol = volumex(video_clip, 1)
# 1是原来大小,0-1越接近0声音越小,1-10,越接近10声音越大
voice_vol.write_audiofile('新声音.mp3')
video_vol.write_audiofile('新视频.mp4')

三. 合成视频过程中常用的参数解释

示例:

video_clip.write_videofile(“新合成的视频.pm4”), audio=libx264, audio_codec='aac', preset="superfast", fps=50,codec= True,audio_fps = 10000, threads = Threading, audio_codec = False) 
video_clip.close()
fps        视频帧率      通过修改视频帧率可以间接修改视频大小
codec     视频编码格式    具体可以点进去看源码,一般不设置,遇到mp4,avi不确定格式的视频,会自动匹配,主流是libx264
audio_fps   音频帧率     默认是44100
preset     合成速度    ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo 由快到慢(测试了一下,好像也没快很多)
threads    添加进程    一个合成线用一个进程,另外用多进程来跑一个合成线是没有用的,跑这个吃的是GPU,好的显卡很重要
audio_codec  音频编码格式  默认也是不填,会自动匹配常用的格式

# 建议还是点进去看源码,有些功能参数都是要用的时候才找不到,提前知道就不用那么费力用其他方法实现

 

posted @ 2022-10-21 15:15  SlookUP  阅读(285)  评论(0)    收藏  举报