前言

嗨嗨,我是小圆

不知道你们有没有看过一些视频,有时候会出现一些奇奇怪怪的马赛克,或者之前有艺人塌房了,一些综艺节目需要给他码住,嘿嘿

我之前就追了个唱歌的综艺,里面某位艺人就被码的严严实实的

既然这样的话,今天就来教教你们这些马赛克是如何被精准加上去的

今天我们就来用Python实现对视频自动打码!

准备工作

环境咱们还是使用 Python3.8 和 pycharm2021 即可

实现原理

  1. 将视频分为音频和画面
  2. 画面中出现人脸和目标比对,相应人脸进行打码
  3. 处理后的视频添加声音

模块

手动安装一下 cv2 模块 ,pip install opencv-python 安装
安装遇到报错,可以私信我

素材工具

我们需要安装一下 ffmpeg 音视频转码工具

代码解析

导入模块

源码.点击领取即可

import cv2
import face_recognition  # 人脸识别库  99.7%    cmake  dlib  face_recognition
import subprocess

视频转为音频

def video2mp3(file_name):""":param file_name: 视频文件路径:return:"""outfile_name = file_name.split('.')[0] + '.mp3'cmd = 'ffmpeg -i ' + file_name + ' -f mp3 ' + outfile_nameprint(cmd)subprocess.call(cmd, shell=False)

打码

def mask_video(input_video, output_video, mask_path='mask.jpg'):""":param input_video: 需打码的视频:param output_video: 打码后的视频:param mask_path: 打码图片:return:"""# 读取图片mask = cv2.imread(mask_path)# 读取视频cap = cv2.VideoCapture(input_video)# 视频  fps  width  heightv_fps = cap.get(5)v_width = cap.get(3)v_height = cap.get(4)
python学习交流Q群:770699889 ### 源码领取# 设置写入视频参数  格式MP4# 画面大小size = (int(v_width), int(v_height))fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')# 输出视频out = cv2.VideoWriter(output_video, fourcc, v_fps, size)# 已知人脸known_image = face_recognition.load_image_file('tmr.jpg')biden_encoding = face_recognition.face_encodings(known_image)[0]cap = cv2.VideoCapture(input_video)while (cap.isOpened()):ret, frame = cap.read()if ret:# 检测人脸# 人脸区域face_locations = face_recognition.face_locations(frame)for (top_right_y, top_right_x, left_bottom_y, left_bottom_x) in face_locations:print((top_right_y, top_right_x, left_bottom_y, left_bottom_x))unknown_image = frame[top_right_y - 50:left_bottom_y + 50, left_bottom_x - 50:top_right_x + 50]if face_recognition.face_encodings(unknown_image) != []:unknown_encoding = face_recognition.face_encodings(unknown_image)[0]# 对比人脸results = face_recognition.compare_faces([biden_encoding], unknown_encoding)# [True]# 贴图if results == [True]:mask = cv2.resize(mask, (top_right_x - left_bottom_x, left_bottom_y - top_right_y))frame[top_right_y:left_bottom_y, left_bottom_x:top_right_x] = maskout.write(frame)else:break

音频添加到画面

def video_add_mp3(file_name, mp3_file):""":param file_name: 视频画面文件:param mp3_file:  视频音频文件:return:"""outfile_name = file_name.split('.')[0] + '-f.mp4'subprocess.call('ffmpeg -i ' + file_name + ' -i ' + mp3_file + ' -strict -2 -f mp4 ' + outfile_name, shell=False)

完整代码

源码.点击领取即可

最后

今天的分享到这里就结束了

给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

Python实现自动给视频打码,减少不宜画面出现...相关推荐

  1. python实现自动剪辑视频

    随机获取视频和音乐,利用python实现自动剪辑视频(粗糙版) import os import timeimport redis from moviepy.editor import * impor ...

  2. python ai自动剪辑视频_你知道吗?Python也可以剪辑视频!

    就当前看来,Python无疑是最火的编程语言之一,由于其简单易学,无数人为其写第三方库和框架,Python也得以渗透进各种行业. 很多人都听说过Python的妙用,比如: 可以用来编写网站,这方面的框 ...

  3. Python算法自动剪辑视频,视频丝滑换装无须视频编辑器

    看到人家用PR什么编辑软件做这种丝滑一键换装的视频,自己也想尝试一下.不过PR这破玩意太难用了,还不如敲代码来的省事. 最开始想用 moviepy 的 moviepy.video.fx.all.mas ...

  4. 自动播放视频并录屏保存的python实现

    需求: 在路飞学城买了一个python全栈的在线课程,由于前期没有抓紧时间学习,导致课程到期前2个月感觉视频看不完了,所以想到用python+selenium自动播放视频,自动录屏保存,这样就可以每天 ...

  5. python图片裁剪对比_Python自动抢视频红包,仅供学习!

    本文来源于公众号: AirPython 1 目 标 场 景 如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后盾,疯狂地对平台用户进行红包轰炸. 与传统的红包不一样,视频红包包含位置的不确 ...

  6. python抢红包脚本_Python自动抢视频红包,仅供学习!

    本文来源于公众号: AirPyt hon 1 目 标 场 景 如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后盾,疯狂地对平台用户进行红包轰炸. 与传统的红包不一样,视频红包包含位置的不 ...

  7. 通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成

    通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成. 主要实现技术: 1.大文件视频分 ...

  8. python如何自动缩进_python word 自动排版写码时应该缩进使用 tab 还是空格?

    对于程序员来说,其实Tab和空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格 ...

  9. 翻遍全网!这4个Python项目最良心!(含视频源码)

    No BB,Show Code.无论看书也好,看视频也罢.不去动手实践,基本过几天就会忘了. 今天给大家推荐几个项目实战视屏,从最开始的项目原型设计.前后端架构.具体功能实现.用到的技术详解都一清二楚 ...

最新文章

  1. R语言-安装使用指南
  2. LeetCode(13.罗马数字转整数) JAVA Hashmap
  3. 2018-2019-1 20189204《Linux内核原理与分析》第三周作业
  4. logrotate机制和原理
  5. Android开发总结
  6. 【MVC】Controller的使用
  7. document操作例题1-延迟注册与二级菜单
  8. 文本编辑器实现跳转到指定行的功能
  9. PhpCms V9调用指定栏目子栏目文章的两种方法
  10. 存储http请求返回参数_前端学习需要知道的 HTTP 知识(1/7)
  11. Pxe+Kickstart批量网络安装操作系统
  12. python练习之析构函数
  13. 12-sed命令详解
  14. LINUX安装依赖库的解决办法
  15. 从NCBI中查看已发现的基因可变剪接
  16. ICP域名备案查询 分享一个可以快速批量查询域名备案信息的平台
  17. 云脉档案管理系统助力档案信息化建设
  18. 在苹果 M1 上运行 Linux 虚拟机变得容易了
  19. 帆船运行员训练方法研究
  20. 云服务器适用场景_适用于企业和普通用户的云计算

热门文章

  1. android 生成bks_生成android的bks证书
  2. 3.19 使用钢笔工具绘制一枚诱人的梨子 [Illustrator CC教程]
  3. oauth2生成jwt令牌
  4. 微信小程登录功能和获取手机号
  5. PaaS服务从heroku迁移到Fly.io小计
  6. 前端页面加载缓慢的原因和性能优化问题
  7. xml 硕正报表_主要指标及功能清单
  8. indesign选中不了图片删除_word图文设计:如何用图片水印功能制作日历画册
  9. 小白如何快速从0基础入门平面设计
  10. 4ARM-PEG-OH 四臂PEG羟基