视频批量加水印:Python 脚本实现方案

目录

找了好几个批量视频加水印的软件,要么收费,要么需要administrator权限,公司电脑环境无法安装,试着查找了下python代码,果然找到,加个for循环调用videos目录下的所有视频文件,从而达到视频批量加水印的效果 不多说上代码:

# -*- coding: utf-8 -*-

import moviepy.editor as mp
import os

def markvideo(filename, outname):
        video = mp.VideoFileClip(filename)
        logo = (mp.ImageClip("D:/video_logo.png")	#准备log图片
                .set_duration(video.duration) # 水印持续时间
                .resize(height=100) # 水印的高度,会等比缩放
                .margin(left=8, bottom=8, opacity=0) # 水印边距和透明度
                .set_pos(("left","bottom"))) # 水印的位置

        final = mp.CompositeVideoClip([video, logo])
        # mp4文件默认用libx264编码, 比特率单位bps
        final.write_videofile(outname+'.mp4', codec="libx264", bitrate="10000000")

if __name__ == '__main__':
        dirnum = 0
        filenum = 0
        path = 'D:/videos/'	#本地视频位置
        for lists in os.listdir(path):
                sub_path = os.path.join(path, lists)
                print(sub_path)
                if os.path.isfile(sub_path):
                        markvideo(str(sub_path), str(filenum))
                        filenum = filenum + 1
                elif os.path.isdir(sub_path):
                        dirnum = dirnum + 1

        print('该目录下有%s个文件夹' % dirnum )
        print('共 %s 个文件' % filenum)