有趣的python- 为视频加水印

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# DevVersion: Python3.6.8
# Date: 2020-09-13 21:59
# Author: SunXiuWen
# PyCharm|moviepy_test
import os
import threading
import moviepy.editor as mp


# 本地视频位置
def get_video_list(file_path):
    dirs = os.listdir(file_path)
    video_list = []
    for i in dirs:
        if i.endswith('mp4'):
            # path = os.path.join(file_path, os.sep, i)
            path = file_path + r'/' + i
            print(path)
            video_list.append(path)
    return video_list, dirs


def dis_video(args, kw):
    # 创建对象
    video = mp.VideoFileClip(args)
    # 准备log图片
    logo = (
        mp.ImageClip(r"E:\head.jpg")  # 图片必须是rgb解析成3个值才行,不然报错
            .set_duration(video.duration)  # 水印持续时间
            .resize(height=100)  # 水印的高度,会等比缩放
            # .margin(left=0, right=0, top=0, opacity=1.0)  # 水印的边距与透明度
            .set_pos(('left', 'center')))  # 水印的位置
    final = mp.CompositeVideoClip([video, logo])
    # 文件存放的路劲及文件名 mp4文件默认用libx264编码,比特率单位bps
    final.write_videofile(f"E:/save_video/{kw}")


def main():
    path_ = r'E:/video_dir'
    v_list, d_list = get_video_list(path_)
    video_list_dir_list = zip(v_list, d_list)
    for j in video_list_dir_list:
        print(j)
        dis_video(*j)
        # t = threading.Thread(target=dis_video, args=j)
        # t.start()


if __name__ == '__main__':
    main()

posted @   Alive_2020  阅读(996)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示