前言

嗨呀嗨呀,最近重温了一档综艺节目 至于叫什么 这里就不细说了

老是看着看着就会看到一堆马赛克,由于太好奇了就找了一下原因,结果是因为某艺人塌房了…虽然但是 看综艺的时候满影响美观的

咳咳,这里我可不是来教你们如何解码的,我是来教你们如何打码的,嘿嘿

那今天就在这分享一下 视频打码功能如何用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)

进行打码

# 源码领取:309488165 ###
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)

设置写入视频参数 格式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实现视频自动打码功能,避免看到羞羞的画面相关推荐

  1. 视频怎么批量打码?Python实现视频自动打码分享

    当我们在观看视频的时候,尤其是国内的综艺出现的某个不该出现的人脸,就出现了一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢?有什么方法批量实现呢? 本次我们就来用Python ...

  2. Python实现视频自动打码,不用担心透露隐私了

    准备工作 环境咱们还是使用 Python3.8 和 pycharm2021 即可 实现原理 将视频分为音频和画面 画面中出现人脸和目标比对,相应人脸进行打码 处理后的视频添加声音 模块 手动安装一下 ...

  3. Python实现让视频自动打码,再也不怕出现少儿不宜的画面了

    人生苦短 我用Python 序言 准备工作 代码解析 完整代码 序言 我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢? 本次我们就来用Py ...

  4. Python实现对视频自动打码

    我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢? 本次我们就来用Python实现对视频自动打码! 准备工作 环境咱们还是使用 Python ...

  5. Pytorch 深度学习实战:视频自动打码

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 人脸识别 人脸识别是一门比较成熟的技术. 它的身影随处可见,刷脸支 ...

  6. python 在软件自己自动输入-Python模拟百度自动输入搜索功能的实例

    如下所示: # 访问百度,模拟自动输入搜索 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要 ...

  7. 减轻剪辑工作必备——Python实现让视频自动打码,再也不怕出现少儿不宜的画面了

    嗨害大家好鸭,我是小熊猫

  8. python短视频自动制作_Python 带你一键生成朋友圈超火的九宫格短视频

    1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! ​从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快 ...

  9. Python 手机端自动推送功能(利用极光推送API)

    Python+Jpush手机端信息推送 极光推送API是一种开发者服务,这里不再赘述 我们在官网申请账号,创建应用,这里官方有详细的文档描述,这里也不再赘述,下图是我创建好的应用. 我们打开自己 的应 ...

最新文章

  1. android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法
  2. TensorRT安装及使用教程
  3. webpack html转成js,WebPack的基础学习
  4. The Preliminary Contest for ICPC Asia Nanjing 2019 B. super_log (广义欧拉降幂)
  5. qt中combox怎么使其下拉菜单的长度变长
  6. 电子科大计算机学院毕业照,电子科大毕业照拍摄指南,请内部传阅!
  7. 自动化测试---Assert
  8. PAT乙级(1003 我要通过!)
  9. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录...
  10. CLR_via_C#.3rd 翻译[25.9 线程调度和优先权]
  11. 社交之后又是资讯,支付宝要用内容吸引流量
  12. 关于a标签下载的相关坑
  13. 迪普Web应用防火墙产品线
  14. 格式化输出latex数字罗马字体
  15. python实现excel单元格合并_python进行excel单元格合并逆操作
  16. 前方高能预警!三星Galaxy A6s带你闹元旦
  17. JS和Android互调(调用相机拍照)
  18. 粘着控制基础入门(二)
  19. 视频相识度算法思路文献记录
  20. js正则效验不能全为数字、字母 不超过50字符

热门文章

  1. 获取系统时间以及时间戳的理解与使用
  2. React 函数组件中无法清除定时器问题
  3. Java Calendar 设置当天0点0时0分 或当天最后一秒
  4. 电子科技大学中山学院计算机类分流,2019年电子科技大学中山学院大类招生及专业分流办法解读...
  5. 最小割+强连通分量 COGS 426 血帆海盗
  6. 服务器部署配置以及端口映射(针对win2008)
  7. TinkPad T450 想开启虚拟化,怎样进入BOIS
  8. edge浏览器360导航删不掉?解铃还须系铃人,亲测有用。
  9. 预埋单交易系统-系统功能需求说明书
  10. Java中API常用类讲解