1. import os
    2. import ffmpeg
    3. from moviepy.editor import VideoFileClip
    4. from moviepy.editor import concatenate_videoclips
    5. from shutil import copy
    6. # 设置环境变量
    7. os.environ['path'] = os.environ.get('path') + ';C:\\tools'
    8. # 获取视频的时长
    9. def video_EX(fullPath):
    10. isSP = str(ffmpeg.probe(fullPath)).find("rotate")
    11. video = VideoFileClip(fullPath)
    12. # 获取视频的时长
    13. times = int(video.duration)
    14. # 文件名称
    15. fileName = os.path.basename(video.filename)
    16. # 最终处理完成的视频地址
    17. final = "final/" + fileName
    18. # 判断该视频是否是横批时长超过一分钟
    19. # if (isSP == -1 and times > 60):
    20. # 先对时长进行处理 剪辑然后写出文件
    21. cut1 = video.subclip(5, times)
    22. finalClip = concatenate_videoclips([cut1])
    23. finalClip.write_videofile("bak/" + fileName)
    24. cut1 = video.subclip(5, times)
    25. finalClip = concatenate_videoclips([cut1])
    26. bakUrl = "bak/" + fileName
    27. finalClip.write_videofile("bak/" + fileName)
    28. # 对视频采用FFMPEG加水印
    29. ffmpegCmd = "ffmpeg -t 10 -i " + bakUrl + " -filter_complex \"[0:v]crop=w=200:h=100:x=500:y=0,boxblur=luma_radius=25:luma_power=2[boxblur];[0:v][boxblur]overlay=500:0[vout]\" -map \"[vout]\" -map 0:a -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart " + final + " -y"
    30. # 执行水印命令处理操作
    31. os.system(ffmpegCmd)
    32. # else:
    33. # # 直接移动到该目录当中去
    34. # copy(fullPath, final)
    35. if __name__ == '__main__':
    36. video_EX("video/video.mp4")