拒绝降权!教你用 Python 确保制作的短视频独一无二
1. 场景
前段时间有人私信我,说自己辛辛苦苦剪辑的短视频,上传到某平台后,由于播放量太大,收到 降权 的通知,直接导致这个账号废掉了!
其实,各大视频平台都有自己的一套鉴别算法,针对视频的二次创作,如果直接搬运,都会面临着一些未知风险
本篇将带大家用 Python 对短视频做一些特殊处理,保证视频的 原创性 和 唯一性
2. 实现
下面将从 MD5、光线、色彩 3 个方面来进行说明
第 1 步,修改视频的 MD5 值
MD5 是一种密码散列函数,文件的 MD5 值可以判断文件是否被修改
使用 Python 自带的 hashlib 模块,分段读取文件,可以获取文件的 MD5 值
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)
3. 最后
除了上面的几种视频修改方式外,还可以借助 CV2 和 MoviePy,加入一些特殊的模板、片段片尾渐变动画来确保视频的原创性和唯一性
我已经将文中全部源码上传到公众号后台,关注公众号「 AirPython 」后回复「 ycdsp 」即可获得全部源码
如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。
推荐阅读
拒绝降权!教你用 Python 确保制作的短视频独一无二的更多相关文章
- Python爬取某短视频热点
写在前面的一些话: 随着短视频的大火,不仅可以给人们带来娱乐,还有热点新闻时事以及各种知识,刷短视频也逐渐成为了日常生活的一部分.本文以一个简单的小例子,简述如何通过Pyhton依托Selenium来 ...
- 手把手教你用python打造网易公开课视频下载软件5-python生成exe程序
python程序生成exe文件,使用的是py2exe扩展包,下面写下具体的步骤: 第一步:新建conver2exe.py,内容如下: #coding:utf-8 from distutils.core ...
- 手把手教你用python打造网易公开课视频下载软件4-图形化界面
上一篇讲解完函数:def getdownLoadInfo (url): 传入公开课的url地址,就可以提取课程的信息,这一篇讲解一下如何编写图像化界面.大概思考一下图像化界面需要的内容: (1)一个标 ...
- 手把手教你用python打造网易公开课视频下载软件2-编码相关说明
函数getdownLoadInfo(url)主要实现核心功能:根据url地址,获取课程信息:课程名(courseTitle),课程数目(courseCount),可下载视频数目(videoCount) ...
- 手把手教你用python打造网易公开课视频下载软件1-总述
写作前面的话:最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html,在线看 ...
- 手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理
上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标 ...
- 视频剪辑什么鬼?Python 带你高效创作短视频
阅读文本大概需要 10 分钟. 近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节:在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等. ...
- Python 带你一键生成朋友圈超火的九宫格短视频
1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! 从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
随机推荐
- 【scrapy运行姿势】scrapy.cmdline.execute
scrapy.cmdline.execute scrapy的cmdline命令 1.启动爬虫的命令为:scrapy crawl (爬虫名) 2.还可以通过以下方式来启动爬虫 方法一:创建一个.py文件 ...
- 接口参数校验(不使用hibernate-validator,规避大量if else)
引言 编写接口时,常用的参数校验使用hibernate-validator注解+@@Validated注解进行参数校验.当遇到一些特殊场景或需求,需要自己对参数进行手动校验时,会出现以下问题: 不可避 ...
- centos7 安装rpm版的mysql遇到坑——误删root用户的恢复
在网上找了教程http://blog.csdn.net/frankcheng5143/article/details/77609093安装过程很顺利,随着修改了root的密码后不下心误删了root账号 ...
- HttpSession之表单的重复提交 & 验证码
如果采用 HttpServletResponse.sendRedirct() 方法将客户端重定向到成功页面,将不会出现重复提交问题 1.表单的重复提交 1). 重复提交的情况: ①. 在表单提交到一个 ...
- Vim入门教程——转
简书: https://www.jianshu.com/p/bcbe916f97e1
- 01 . Redis简介及部署主从复制
简介 Remote Dictionary Server, 翻译为远程字典服务, Redis是一个完全开源的基于Key-Value的NoSQL存储系统,他是一个使用ANSIC语言编写的,遵守BSD协议, ...
- 如何短时间内快速通过Java面试
当然是刷题啊 1-10期[10期]Redis 面试常见问答[09期]说说hashCode() 和 equals() 之间的关系?[08期]说说Object类下面有几种方法呢?[07期]Redis中是如 ...
- Rocket - jtag - JtagTap
https://mp.weixin.qq.com/s/0u9jM2u-FkTlrk3QNuZaBw 简单介绍JtagTap的实现. 1. 简单介绍 定义TAP(Test Access Port)所需要 ...
- Java写算法题中那些影响你效率的细节(关于暴力破解算法题的细节处理)
QQ讨论群:99979568 多交流才能进步 暂时写到这里,有不懂的欢迎评论, 如果有什么其他提高效率的细节,欢迎评论或者私信我,小编一定努力学习,争取早日分享给大家 如果大家嫌三连累的话,可以看看这 ...
- Java实现 LeetCode 786 第 K 个最小的素数分数(大小堆)
786. 第 K 个最小的素数分数 一个已排序好的表 A,其包含 1 和其他一些素数. 当列表中的每一个 p<q 时,我们可以构造一个分数 p/q . 那么第 k 个最小的分数是多少呢? 以整数 ...