zoukankan      html  css  js  c++  java
  • 拒绝降权!教你用 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 带你高效创作短视频

    10万+的短视频被批量生产了,Python表示不服

  • 相关阅读:
    正则表达式练习,持续更新中
    Jquery使用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
    SQL查找 删除重复数据只保留一条
    TreeView(C#)无限目录树代码片段
    ora-01440:要减小精度或标度,则要修改的列必须为空
    SQL查询和删除重复字段的内容
    CodeSmith(C#)简单示例及相关小知识
    MSSQL 自定义函数详解
    一些精妙的sql语句收集
    134.Gas Station
  • 原文地址:https://www.cnblogs.com/xingag/p/13140280.html
Copyright © 2011-2022 走看看