Python实现视频自动打码功能,避免看到羞羞的画面
前言
嗨呀嗨呀,最近重温了一档综艺节目 至于叫什么 这里就不细说了
老是看着看着就会看到一堆马赛克,由于太好奇了就找了一下原因,结果是因为某艺人塌房了…虽然但是 看综艺的时候满影响美观的
咳咳,这里我可不是来教你们如何解码的,我是来教你们如何打码的,嘿嘿
那今天就在这分享一下 视频打码功能如何用python来实现
准备工作
环境咱们还是使用 Python3.8 和 pycharm2021 即可
实现原理
- 将视频分为音频和画面
- 画面中出现人脸和目标比对,相应人脸进行打码
- 处理后的视频添加声音
模块
手动安装一下 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实现视频自动打码功能,避免看到羞羞的画面相关推荐
- 视频怎么批量打码?Python实现视频自动打码分享
当我们在观看视频的时候,尤其是国内的综艺出现的某个不该出现的人脸,就出现了一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢?有什么方法批量实现呢? 本次我们就来用Python ...
- Python实现视频自动打码,不用担心透露隐私了
准备工作 环境咱们还是使用 Python3.8 和 pycharm2021 即可 实现原理 将视频分为音频和画面 画面中出现人脸和目标比对,相应人脸进行打码 处理后的视频添加声音 模块 手动安装一下 ...
- Python实现让视频自动打码,再也不怕出现少儿不宜的画面了
人生苦短 我用Python 序言 准备工作 代码解析 完整代码 序言 我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢? 本次我们就来用Py ...
- Python实现对视频自动打码
我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢? 本次我们就来用Python实现对视频自动打码! 准备工作 环境咱们还是使用 Python ...
- Pytorch 深度学习实战:视频自动打码
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 人脸识别 人脸识别是一门比较成熟的技术. 它的身影随处可见,刷脸支 ...
- python 在软件自己自动输入-Python模拟百度自动输入搜索功能的实例
如下所示: # 访问百度,模拟自动输入搜索 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要 ...
- 减轻剪辑工作必备——Python实现让视频自动打码,再也不怕出现少儿不宜的画面了
嗨害大家好鸭,我是小熊猫
- python短视频自动制作_Python 带你一键生成朋友圈超火的九宫格短视频
1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! 从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快 ...
- Python 手机端自动推送功能(利用极光推送API)
Python+Jpush手机端信息推送 极光推送API是一种开发者服务,这里不再赘述 我们在官网申请账号,创建应用,这里官方有详细的文档描述,这里也不再赘述,下图是我创建好的应用. 我们打开自己 的应 ...
最新文章
- android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法
- TensorRT安装及使用教程
- webpack html转成js,WebPack的基础学习
- The Preliminary Contest for ICPC Asia Nanjing 2019 B. super_log (广义欧拉降幂)
- qt中combox怎么使其下拉菜单的长度变长
- 电子科大计算机学院毕业照,电子科大毕业照拍摄指南,请内部传阅!
- 自动化测试---Assert
- PAT乙级(1003 我要通过!)
- MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录...
- CLR_via_C#.3rd 翻译[25.9 线程调度和优先权]
- 社交之后又是资讯,支付宝要用内容吸引流量
- 关于a标签下载的相关坑
- 迪普Web应用防火墙产品线
- 格式化输出latex数字罗马字体
- python实现excel单元格合并_python进行excel单元格合并逆操作
- 前方高能预警!三星Galaxy A6s带你闹元旦
- JS和Android互调(调用相机拍照)
- 粘着控制基础入门(二)
- 视频相识度算法思路文献记录
- js正则效验不能全为数字、字母 不超过50字符