本篇文章小编给大家分享一下Python实现短视频伪原创代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
实现
下面将从 MD5、光线、色彩 3 个方面来进行说明
第 1 步, 修改视频的 MD5 值
MD5 是一种密码散列函数,文件的 MD5 值可以判断文件是否被修改
使用 Python 自带的 hashlib 模块, 分段读取文件, 可以获取文件的 MD5 值
干货主要有:
① 200 多本 Python 电子书(和经典的书籍)应该有
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且可靠的练手项目及源码)
④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
def get_file_md5(file_path): """ 分段读取,获取文件的md5值 :param file_path: :return: """ with open(file_path, 'rb') as file: md5_obj = hashlib.md5() while True: buffer = file.read(8096) if not buffer: break md5_obj.update(buffer) hash_code = md5_obj.hexdigest() md5 = str(hash_code).lower() return md5
要修改文件的 MD5 值,只需要在文件尾部追加一段字符串即可
def modify_file_md5(file_path): """ 修改文件的md5值 :param file_path: :return: """ with open(file_path, 'a') as file: file.write("####&&&&")
第 2 步, 亮度调整
亮度调整,相当于调整整个视频的曝光度,增加或者降低视频的光线
首先,安装 moviepy 依赖库
# 安装依赖库 pip3 install moviepy
接着,增加画面亮度, 这里有两 种方式增加视频亮度
第一种方式,对视频的每一帧图片,做亮度值调整
def handle_frame(image_frame): """ 处理图片帧 :param image_frame:图片帧 :return: """ image_frame_result = image_frame * 1.2 # 如果颜色值超过255,直接设置为255 image_frame_result[image_frame_result > 255] = 255 return image_frame_result def increase_video_brightness(file_path): """ 增加视频整体亮度 :param file_path:源视频路径 :return: """ video = VideoFileClip(file_path) result = video.fl_image(handle_frame) file_path_new = "/Users/xingag/Desktop/new.mp4" result.write_videofile(file_path_new)
第二种方式,从文件中提取视频剪辑 VideoFileClip,使用 fx() 函数中的 vfx.colorx 参数,指定一个系数,直接对视频画面亮度进行调整
def increase_video_brightness2(file_path): """ 增加视频整体亮度2 :param file_path:源视频路径 :return: """ # 调整系数值 coefficient_value = 1.2 video = VideoFileClip(file_path) file_path_new = "/Users/xingag/Desktop/new.mp4" video.fx(vfx.colorx, coefficient_value).write_videofile(file_path_new)
如果想降低视频整体的亮度,可以将上面的系数调整为小于 1 的数即可
第 3 步, 色彩调整
色彩调整,具体包含:色相、色彩明亮度、饱和度等,这里以视频转为黑白效果为例
同样,使用 fx() 函数中的 vfx.blackwhite 参数,可以将彩色视频画面一键转为黑白视频
def change_video_bhd(file_path): """ 黑白处理 :param file_path: :return: """ video = VideoFileClip(file_path) file_path_new = "/Users/xingag/Desktop/new.mp4" video.fx(vfx.blackwhite).write_videofile(file_path_new)