调整影片亮度/对比/颜色
这篇文章会介绍使用 Python 的 moviepy 第三方函数库,读取影片并调整影片的亮度、对比和颜色 ( 黑白影片、负片效果...等 )。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
安装 moviepy
输入下列指令安装 moviepy,根据个人环境使用 pip 或 pip3。
!pip install moviepy
由于影片转档会使用 ffmpeg,因此也要安装 ffmpeg ( 影片存档常见错误“TypeError: must be real number, not NoneType”往往都是 ffmpeg 没有安装导致 ),根据个人环境使用 pip 或 pip3,Anaconda Jupyter 可以使用 conda install。
!pip install ffmpeg
调整影片亮度与对比
加载 moviepy.video.fx.all 的特效模组,使用 moviepy 读取影片后,使用 lum_contrast方法,就能调整影片的亮度和对比 ( 更多特效方法参考:moviepy.video.fx (vfx) ),lum_contrast 有下列几个参数:
| 参数 | 说明 |
|---|---|
| clip | 要套用效果的影片。 |
| lum | 亮度,默认 0,范围 -255~255,数字越大越亮。 |
| contrast | 对比度,默认 0,正常范围 -1~3 ( 最大约 3~5,超过后产生的颜色会固定 ),若小于 -1 颜色会反转。 |
| contrast_thr | 对比临界值,默认 127,通常不需做设定。 |
下方的程序码执行后,会四个亮度对比不同的影片。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
from moviepy.video.fx.all import *
video = VideoFileClip("oxxostudio.mp4")
output_1 = lum_contrast(video, lum=-50, contrast=0) # 亮度減少 50
output_2 = lum_contrast(video, lum=150, contrast=0) # 亮度增加 150
output_3 = lum_contrast(video, lum=0, contrast=-0.5) # 對比減少 0.5
output_4 = lum_contrast(video, lum=0, contrast=2) # 對比增加 2
output_1.write_videofile("output_1.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
output_2.write_videofile("output_2.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
output_3.write_videofile("output_3.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
output_4.write_videofile("output_4.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
print('ok')
调整影片颜色
加载 moviepy.video.fx.all 的特效模组,使用 moviepy 读取影片后,有下列几种方法可以调整影片的颜色 ( 更多特效方法参考:moviepy.video.fx (vfx) ):
| 方法 | 说明 |
|---|---|
| blackwhite | 转换成黑白影片。 |
| invert_colors | 反转影片颜色 ( 负片效果 )。 |
| gamma_corr | 调整影片 gamma 值,包含一个参数,默认 0。 |
| colorx | 调整影片色彩,包含一个参数,默认 0,范围约 -1~2。 |
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
from moviepy.video.fx.all import *
video = VideoFileClip("oxxostudio.mp4")
output_1 = colorx(video, 1.5) # 調整顏色
output_2 = gamma_corr(video, 1) # 調整 gamma 值
output_3 = blackwhite(video) # 黑白影片
output_4 = invert_colors(video) # 負片效果
output_1.write_videofile("output_1.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
output_2.write_videofile("output_2.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
output_3.write_videofile("output_3.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
output_4.write_videofile("output_4.mp4",temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
print('ok')
微信扫码关注
抖音扫码关注