Python可以解码吗,解码打码是如何实现的

前言

咳咳,进来的铁汁都是抱着学习的心态进来看的吧,咱今天不讲解解码,咱来说说python如何来实现打码功能~

这一个个进来的 都是标题党吧哈哈哈 有兴趣的可以继续看看哦

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

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

那今天就在这分享一下 视频打码功能如何用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的宝子可以点击文末名片领取学习资料以及基础教程哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254834.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

打码软件是真的吗

日前在各大社交网站上热传的“打码软件赚钱”帖子引发不少打码兼职人员的关注。“打码赚钱”到底出自何处?是否有充足的实例? 打码软件是什么? 打码软件是一些验证码识别平台推出来的一种通过任务的发放,让兼职者能够进行…

黑产揭秘:“打码平台”那点事儿

简介 互联网业务的飞速发展,日渐渗透人类的生活,对经济、文化、社会产生巨大的影响,同时互联网业务安全也日趋重要。如同网络通信的基础安全设施防火墙,互联网业务安全也有其基础安全设施--图片验证码和短…

有没有自动打码的软件

验证码是一把双刃剑,对于有的人是好,但是对于有的人却是让人真心“香菇蓝瘦”。 场景一: A:两个小时就赚了几十块钱,买副眼镜都买不起,赚的钱都去了药店买眼药水了; B:是的啊,要是能…

chatgpt赋能python:Python中的逆序操作

Python 中的逆序操作 在 Python 中,逆序(reverse)操作指的是将一个序列的元素顺序反转,也即将序列中最后一个元素变成第一个,倒数第二个元素变成第二个,以此类推。逆序有很多实际用途,比如根据…

chatgpt赋能python:Python中的SEO

Python 中的 SEO 搜索引擎优化(SEO)是指通过改进网站的结构和内容,使其在搜索引擎中的排名更高,从而吸引更多的访问者。Python是一种流行的编程语言,其在SEO中也占有重要的地位。 Python 中的关键词密度 搜索引擎通常会关注网页中的关键词…

nginx修改监听端口号8080_解决Nginx启动失败

一、Nginx下载 http://nginx.org/en/download.html 二、Nginx启动失败原因 1、本人下载的是nginx-1.12.1(稳定版),下载完解压后,进入路径中,start nginx,发现窗口闪过。但是查找不到nginx进程。 2、进入 nginx-1.12.1\logs 路径下…

nginx 启动前端包

项目是前后端分离:前端用vue开发,后端用的是springboot开发,用nginx启动代理,启动前端包 1、安装nginx(此步骤就不细说了,如图) 2、将前端包放入nginx文件夹下 注:我放在project文…

linux下nginx启动不了,Nginx启动失败的几种错误处理

nginx启动失败 启动nginx失败,报错信息如下: Starting nginx: nginx: [emerg] bind() to 0.0.0.0:**** failed (13: Permission denied) 这通常是因为开启了SELinux的原因,使用命令 getenforce 可以查看SELinux状态,如果输出为 enforcing …

NGINX启动报错,端口被占用

NGINX启动报错,端口被占用解决方案(修改端口号)   Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru 站点(俄文&#x…

Nginx启动问题解决

妈的。nginx访问不了。。。就是浏览器打开看不到nginx的标准界面。 我的是centos 7.6 解决: 1.前提:root权限 2. 检查防火墙 并centos 7对外开启80端口: 查看状态:systemctl status firewalld 开启防火墙:systemctl…

nginx启动web项目

1、服务器任何路径新建存放项目文件夹 例如:/home/www/xtzl_platform_web 将web项目的压缩包存放到xtzl_platform_web目录下并解压 3、修改nginx配置文件nginx.conf cd /usr/local/nginx/conf ,修改nginx.conf文件 添加新路径 (1)al…

nginx 启动、停止、关闭

1,nginx 指定配置文件 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -c 参数 指定了要加载的nginx配置文件路径 1,从容停止Nginx: kill -QUIT 主进程号 2,快速停止Nginx: kill -TERM 主进程号 3,强制停止Nginx&am…

nginx 启动报错

systemctl start nginx 启动报错 报错内容如下: Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details. nginx -t 检查没有问题 systemctl status n…

解决nginx启动闪退

1.首先我们先了解一下nginx,(以下来自百度文献) Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13] ,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文…

MySQL数据库 1.概述

数据库相关概念: 数据库(Database):数据库是指一组有组织的数据的集合,通过计算机程序进行管理和访问。数据库管理系统:操纵和管理数据库的大型软件SQL:操作关系型数据库的编程语言,定义了一套操作关系型数…

CV学习笔记 | CV综述 [2020.10.01]

文章目录 0. 概述(整理完后随时修改)1. 人工神经网络1.1. 人工神经网络发展历程1.2. 一些神经元节点的工作原理1.2.1. 基本神经元1.2.2. 卷积神经元(Convolutional cells)1.2.3. 解卷积神经元1.2.4. 池化神经元和插值神经元(Pooling and Interpolating c…

家·谱——人脸识别家谱系统

家谱——人脸识别家谱系统 家谱——智能家谱录入查询是一款基于人脸识别与图像标签的在线家谱查询录入系统,提供从人脸录入、识别到家谱构建展示的一站式服务。使用djangopythonpaddlehubBaiduAPI。 支持使用paddlehub或者face_recognition两种本地库路线。 目前…

OSChina 周日乱弹 ——我18岁了都没睡过男人

2019独角兽企业重金招聘Python工程师标准>>> Dragonite : 昨天打羽毛球,现在的手脚还有点酸,果然太久没运动了啊。 运动之前,先热身不容易受伤。 运动之后,去放松肌肉不酸痛。 来首周日适合运动的歌曲。 yoyoso : 很多…

长焦拍照对比:小米10至尊纪念版和一加8 Pro、vivo X50 Pro+~~~~

(百度云盘资源:https://www.rrdyw.cc/) 现在的旗舰,仿佛不上潜望式超长焦都配不上“旗舰”二字。除了常见的2倍长焦,大部分顶级旗舰都已经具备5倍左右的超长焦镜头。 而超广角那边,虽然更加实用&#xff0…

年轻手机市场的破局者?HUAWEI nova 2系列的野心

6月初刚刚发布的2017互联网女皇报告显示,全球手机市场销量增速进一步放缓。但看似异常平静的中国手机市场,其实正在进行着一场波涛汹涌的暗战。从先前对“友商”的调侃,转换到寻找消费者痛点,各大手机厂商似乎开始转移视线&#x…