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 音频编码格式 默认也是不填,会自动匹配常用的格式
# 建议还是点进去看源码,有些功能参数都是要用的时候才找不到,提前知道就不用那么费力用其他方法实现
本文来自博客园,作者:SlookUP,转载请注明原文链接:https://www.cnblogs.com/SlookUp/p/16813578.html

浙公网安备 33010602011771号