iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现视频自动打码
  • 563
分享到

Python怎么实现视频自动打码

2023-06-29 21:06:50 563人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下python怎么实现视频自动打码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。准备工作环境咱们还是使用

今天小编给大家分享一下python怎么实现视频自动打码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    准备工作

    环境咱们还是使用 python3.8 和 PyCharm2021 即可

    实现原理

    将视频分为音频和画面;

    画面中出现人脸和目标比对,相应人脸进行打码;

    处理后的视频添加声音;

    模块

    手动安装一下 cv2 模块 ,pip install OpenCV-Python 安装

    素材工具

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

    Python怎么实现视频自动打码

    代码解析

    导入需要使用的模块

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

    将视频转为音频

    def video2mp3(file_name):    """    :param file_name: 视频文件路径    :return:    """    outfile_name = file_name.split('.')[0] + '.mp3'    cmd = 'ffmpeg -i ' + file_name + ' -f mp3 ' + outfile_name    print(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  height    v_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] = mask            out.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)

    完整代码

    import cv2 import face_recognition  # 人脸识别库  99.7%    cmake  dlib  face_recognitionimport subprocessdef video2mp3(file_name):    outfile_name = file_name.split('.')[0] + '.mp3'    cmd = 'ffmpeg -i ' + file_name + ' -f mp3 ' + outfile_name    print(cmd)    subprocess.call(cmd, shell=False)def mask_video(input_video, output_video, mask_path='mask.jpg'):    # 读取图片    mask = cv2.imread(mask_path)    # 读取视频    cap = cv2.VideoCapture(input_video)    # 视频  fps  width  height    v_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] = mask            out.write(frame)        else:            breakdef video_add_mp3(file_name, mp3_file):    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)if __name__ == '__main__':    # 1.    video2mp3('cut.mp4')    # 2.    mask_video(input_video='cut.mp4',output_video='output.mp4')    # 3.    video_add_mp3(file_name='output.mp4',mp3_file='cut.mp3')

    以上就是“Python怎么实现视频自动打码”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

    --结束END--

    本文标题: Python怎么实现视频自动打码

    本文链接: https://www.lsjlt.com/news/326569.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python怎么实现视频自动打码
      今天小编给大家分享一下Python怎么实现视频自动打码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。准备工作环境咱们还是使用...
      99+
      2023-06-29
    • Python实现视频自动打码的示例代码
      目录序言准备工作实现原理模块素材工具代码解析完整代码序言 我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢? 本次我们就...
      99+
      2024-04-02
    • Python自动化实现抖音自动刷视频
      目录环境准备实现环境准备 Python3.5以上Appium Server服务器Android SDK,需要用到adb服务需要依赖Appium-Python-Client组件库真机或...
      99+
      2023-03-19
      Python 抖音自动刷视频 Python 抖音自动
    • 怎么使用Python自动化实现抖音自动刷视频
      这篇文章主要介绍了怎么使用Python自动化实现抖音自动刷视频的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python自动化实现抖音自动刷视频文章都会有所收获,下面我们一起来看看吧。环境准备Pytho...
      99+
      2023-07-05
    • Python+uiautomator2怎么实现自动刷抖音视频功能
      小编给大家分享一下Python+uiautomator2怎么实现自动刷抖音视频功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python可以做什么Python...
      99+
      2023-06-14
    • Python+uiautomator2实现自动刷抖音视频功能
      工具准备 Python3.7.7 adb(Android debug bridge) uiautomatorviewer 安装adb 官网地址:https...
      99+
      2024-04-02
    • Python构建自动在线刷视频的实现
      目录前言一、完成功能的条件1.必备条件 2.非必备条件二、解决Python软件的坑1.安装Python2.安装Selenium3.下载并安装Chrome驱动二、万事具备、准备开工了1...
      99+
      2024-04-02
    • 基于Python实现视频自动下载软件
      目录序言效果展示下载视频下载弹幕下载评论软件生成打包序言 哈喽兄弟们,今天来实现一个Python采集视频、弹幕、评论与一体的小软件。 平常咱们都是直接代码运行,不过今天我们做成软件,...
      99+
      2024-04-02
    • 如何用python实现自动刷抖音短视频
      这篇文章主要介绍“如何用python实现自动刷抖音短视频”,在日常操作中,相信很多人在如何用python实现自动刷抖音短视频问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何...
      99+
      2024-04-02
    • 利用Python实现普通视频变成动漫视频
      目录容我废话一下一、思路流程二、图像转动漫三、视频帧读取与视频帧写入容我废话一下 最近几个月,毒教材被曝光引发争议,那些编写度教材的人着实可恶。咱程序员也没有手绘插画能力,但咱可以借...
      99+
      2024-04-02
    • Python利用Selenium实现自动观看学习通视频
      目录一、登录二、进行一个页面的视频观看三、所有视频的观看四、总代码其他一、登录 以信号与系统课程为例,直接输入网址则出现登录界面: 由于学号登录需要验证码,因此选择电话登录: ...
      99+
      2024-04-02
    • Python自动化短视频生成脚本实现热门视频流水线生产
      目录一、核心功能设计二、实现步骤1.图片爬取2.图片统一格式大小3.视频合成4.截取背景音乐5.视频和背景音乐合并一、核心功能设计 首先我看了网上那些视频营销号的视频,大多数都是围绕...
      99+
      2024-04-02
    • Python 自动爬取B站视频
      文件名自定义(文件格式为.py),脚本内容: #!/usr/bin/env python #-*-coding:utf-8-*- import requests import random import time def get_js...
      99+
      2023-01-30
      视频 Python
    • Python+Selenium实现短视频自动上传与发布的实践
      目录前言第一章:效果展示第二章:实现过程前言 最近有人对自动上传与发布很感兴趣,都私下找我说了好几次了。今天,必须把他安排,必须实力宠粉。 “本篇依次介绍目前主流的短视频...
      99+
      2024-04-02
    • 怎么使用python代码实现钉钉自动打卡
      本篇内容介绍了“怎么使用python代码实现钉钉自动打卡”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备环境Android 手机一部(我用...
      99+
      2023-06-16
    • 在Bootstrap模式中怎么实现自动播放YouTube视频
      本篇内容介绍了“在Bootstrap模式中怎么实现自动播放YouTube视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
      99+
      2024-04-02
    • Python实现人脸识别并进行视频跟踪打码
      目录前言准备工作代码实战效果展示前言 事情是这样的,昨天去表弟家,用了下他的电脑,不小心点到了他硬盘里隐藏的秘密,本来我只需要用几分钟电脑的,害得我硬是在电脑旁坐了几个小时~ 还好他...
      99+
      2023-03-06
      Python人脸识别 Python视频打码 Python人脸识别 视频打码
    • Python+selenium 自动化快手短视频发布的实现过程
      第一章:效果展示 ① 效果展示 ② 素材展示 一个为视频,另一个为像素大小不小于视频的封面。 第二章:实现过程 ① 调用已启用的浏览器 通过调用已启用的浏览器,可以实现直接跳过每...
      99+
      2024-04-02
    • Python+selenium实现趣头条的视频自动上传与发布
      目录效果展示效果展示素材展示实现过程调用已启用的浏览器上传视频和封面完整源码展示 补充Python+selenium操作已启用的chrome浏览器Python+selenium实现自...
      99+
      2024-04-02
    • Python如何利用Selenium实现自动观看学习通视频
      这篇文章给大家分享的是有关Python如何利用Selenium实现自动观看学习通视频的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、登录以信号与系统课程为例,直接输入网址则出现登录界面:由于学号登录需要验证码,...
      99+
      2023-06-21
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作