python 视频硬字幕去除 内嵌字幕去除工具 vsr

项目简介

开源地址:https://github.com/YaoFANGUK/video-subtitle-remover

Video-subtitle-remover (VSR) 是一款基于AI技术,将视频中的硬字幕去除的软件。
主要实现了以下功能:

  • 无损分辨率将视频中的硬字幕去除,生成去除字幕后的文件
  • 通过超强AI算法模型,对去除字幕文本的区域进行填充(非相邻像素填充与马赛克去除)
  • 支持自定义字幕位置,仅去除定义位置中的字幕(传入位置)
  • 支持全视频自动去除所有文本(不传入位置)

vsr

直接下载压缩包解压运行,如果不能运行再按照下面的教程,尝试源码安装conda环境运行

下载地址:

Windows GPU版本v1.0.0(GPU):

  • 百度网盘: vsr_windows_gpu_v1.0.0.7z 提取码:vsr1

  • Google Drive: vsr_windows_gpu_v1.0.0.7z

仅供具有Nvidia显卡的用户使用(AMD的显卡不行)

演示

  • GUI版:点击查看演示视频

源码使用说明

无Nvidia显卡请勿使用本项目,最低配置:

GPU:GTX 1060或以上显卡

CPU: 支持AVX指令集

1. 下载安装Miniconda
  • Windows: Miniconda3-py38_4.11.0-Windows-x86_64.exe

  • Linux: Miniconda3-py38_4.11.0-Linux-x86_64.sh

2. 创建并激活虚机环境

(1)切换到源码所在目录:

cd <源码所在目录>

例如:如果你的源代码放在D盘的tools文件下,并且源代码的文件夹名为video-subtitle-remover,就输入 cd D:/tools/video-subtitle-remover-main

(2)创建激活conda环境

conda create -n videoEnv python=3.8
conda activate videoEnv
3. 安装依赖文件

请确保你已经安装 python 3.8+,使用conda创建项目虚拟环境并激活环境 (建议创建虚拟环境运行,以免后续出现问题)

  • 安装CUDA和cuDNN

    Linux用户
    (1) 下载CUDA 11.7
    wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
    (2) 安装CUDA 11.7
    sudo sh cuda_11.7.0_515.43.04_linux.run

    1. 输入accept

    2. 选中CUDA Toolkit 11.7(如果你没有安装nvidia驱动则选中Driver,如果你已经安装了nvidia驱动请不要选中driver),之后选中install,回车

    3. 添加环境变量

    在 ~/.bashrc 加入以下内容

    # CUDA
    export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    使其生效

    source ~/.bashrc
    (3) 下载cuDNN 8.4.1

    国内:cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz 提取码:57mg

    国外:cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz

    (4) 安装cuDNN 8.4.1
     tar -xf cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz
     mv cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive cuda
     sudo cp ./cuda/include/* /usr/local/cuda-11.7/include/
     sudo cp ./cuda/lib/* /usr/local/cuda-11.7/lib64/
     sudo chmod a+r /usr/local/cuda-11.7/lib64/*
     sudo chmod a+r /usr/local/cuda-11.7/include/*
    Windows用户
    (1) 下载CUDA 11.7
    cuda_11.7.0_516.01_windows.exe
    (2) 安装CUDA 11.7
    (3) 下载cuDNN 8.2.4

    cudnn-windows-x64-v8.2.4.15.zip

    (4) 安装cuDNN 8.2.4

    将cuDNN解压后的cuda文件夹中的bin, include, lib目录下的文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\对应目录下

  • 安装GPU版本Paddlepaddle:

    • windows:

      python -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
      
    • Linux:

      python -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
      
  • 安装GPU版本Pytorch:

    conda install pytorch==2.0.1 torchvision==0.15.2 pytorch-cuda=11.7 -c pytorch -c nvidia
    

    或者使用

    pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu117
    
  • 安装其他依赖:

    pip install -r requirements.txt
    
4. 运行程序
  • 运行图形化界面
python gui.py
  • 运行命令行版本(CLI)
python ./backend/main.py

常见问题

  1. CondaHTTPError

将项目中的.condarc放在用户目录下(C:/Users/<你的用户名>),如果用户目录已经存在该文件则覆盖

解决方案:https://zhuanlan.zhihu.com/p/260034241

  1. 7z文件解压错误

解决方案:升级7-zip解压程序到最新版本

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

本地部署企业邮箱,让企业办公更安全高效

随着信息化时代的到来&#xff0c;企业邮箱几乎成了企业办公的标配&#xff0c;承载着企业业务往来和办公协同的重要职能。基于安全性、个性化需求、系统集成等方面的需要&#xff0c;许多企业选择本地部署企业邮箱&#xff0c;本地化部署不仅能有效保障企业信息安全的同时&…

Spring6学习笔记01

一、课程简介 Spring框架是一款极其优秀的轻量级开源框架&#xff0c;为了解决企业应用开发的复杂性而出现。Spring框架的用途不仅仅限于服务器端的开发&#xff0c;从简单性、可测试性和松耦合性角度而言&#xff0c;绝大部分Java应用都可以从Spring中受益。Spring框架凭借其…

机器人制作开源方案 | 晾衣收纳一体机器人

一、作品简介 作者&#xff1a;仓天赐 黄云超 吴正乐 高骏 代思旭 单位&#xff1a;泰州学院 指导老师&#xff1a;宋向前 李杨作者&#xff1a;仓天赐 黄云超 吴正乐 高骏 代思旭 单位&#xff1a;泰州学院 指导老师&#xff1a;宋向前 李杨 与智能家居系统含义近似的…

【Axure高保真原型】树切换动态面板案例

今天和大家分享树切换动态面板的原型模板&#xff0c;点击树的箭头可以打开或者收起子节点&#xff0c;点击最后一级人物节点&#xff0c;可以切换右侧面板的状态到对应的页面&#xff0c;左侧的树是通过中继器制作的&#xff0c;使用简单&#xff0c;只需要按要求填写中继器表…

【广州华锐互动】智能楼宇3D数字化展示,实现对建筑物的实时监控和管理

随着科技的不断发展&#xff0c;人们对于生活品质的要求也在不断提高。在这个信息爆炸的时代&#xff0c;如何将复杂的数据以直观、生动的方式呈现给用户&#xff0c;已经成为了一个重要的课题。智能楼宇3D数字化展示作为一种新型的建筑科技&#xff0c;正逐渐成为行业的新宠&a…

【QML】Qt和QML获取操作系统类型

1. Qt获取系统类型 //方法 QSysInfo::productType()//举例&#xff1a; if(QSysInfo::productType() "windows") {qDebug() << "windows system"; }官方说明&#xff1a; [static] QString QSysInfo::productType() Returns the product name of …

IntelliJ Idea 撤回git已经push的操作

最初的样子 现在的样子 解决方案 第一步&#xff0c;commit到本地撤回&#xff1a; 打开提交历史记录&#xff0c;选中回退的版本右键&#xff0c;点击“Reset Current Branch to Here…”,然后选中“Mixed”&#xff0c;点击Reset后&#xff0c;之前commit的代码会在本地显…

黑豹程序员-架构师学习路线图-百科:Knife4j API接口文档管理

文章目录 由来&#xff1a;接口文档第一代&#xff1a;Swagger第二代&#xff1a;Knife4j界面 由来&#xff1a;接口文档 古老编程是一个语言前后端通吃&#xff0c;ASP、JSP、PHP都是如此。 但随着项目规模变大&#xff0c;项目团队也开始壮大&#xff0c;岗位职责开始细分&a…

【STM32】定时器

systick定时器&#xff1a; 【STM32】Systick定时器-CSDN博客 0.通用定时器框图 1.时钟源 2.控制器 3.输入捕获 计数器实际上是与比较寄存器的影子寄存器进行比较的。 4.输出比较 1.STM32的定时器学习要点 参考手册 STM32F1xx中文参考手册.pdf 林何/STM32F103C8 - 码云 -…

Leetcode-394 字符串解码(不会,复习)

此题不会&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 题解思路&#xff1a;元组思想&#xff1a;数字[字符串]&#xff0c;每次遇到中括号意味着要重复数字次字符串…

Web APIs——综合案例

1、学生就业统计表 2、渲染业务 根据持久化数据渲染页面 步骤&#xff1a; ①&#xff1a;读取localstorage本地数据 如果有数据则转换为对象放到变量里面一会使用它渲染页面如果没有则用默认空数组[]为了测试效果&#xff0c;可以先把initData存入本地存储看效果 ②&…

Oracle11g for centos7

准备工作 x86 centos7 oracle11G 环境搭建 配置好虚拟机&#xff0c;网络通畅&#xff0c;建议最少3G内存。 安装依赖 yum install binutils compat-libstdc-33 glibc* ksh gcc gcc-c libgcc libstdc* libaio libaio-devel libXext libX11 libXau libxcb libXi make sy…

2023第六届泰迪杯数据分析,第五届泰迪杯数据分析技能赛B题源码图片分享

需要B题源码以及第六届带队”指导“请私信本人&#xff0c;团队包含技能赛双一等&#xff0c;数学建模省一&#xff0c;泰迪杯挖掘国一&#xff0c;研究生队友。 去年一等作品可视化图如下&#xff0c;私信获取源码

static关键字的三种用法

在C语言中&#xff0c;关键字"static"可以用于不同的上下文&#xff0c;具有不同的作用。以下是"static"在C语言中的主要作用&#xff1a; 1. 静态变量&#xff08;Static Variables&#xff09;&#xff1a; 在C语言中&#xff0c;使用static关键字来声明…

Java算法(五):手写数组逆置API方法,实现数组逆置。 while实现 for循环实现

Java算法&#xff08;五&#xff09; while 循环实现 需求&#xff1a; 已知一个数组&#xff0c;arr {11, 22, 33, 44, 55};使用程序实现把数组中的元素交换位置。 交换后的数组为 arr {55, 44, 33, 22, 11}; 并在控制台输出交换后的数组元素。 代码示例 package com.…

JS 处理文档选择和范围创建【createRange | getSelection】

介绍 1、const selection window.getSelection(); 说明&#xff1a; 1、用于获取用户当前文档选择的对象&#xff1b; 2、它返回一个 Selection 对象&#xff0c;该对象代表了用户选择的文本范围&#xff08;可以包含一个或多个范围&#xff0c;因为用户可以同时选择多个不相…

YOLO目标检测——红绿灯检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;红绿灯检测数据集在自动驾驶、交通安全监控、智能交通系统、交通流量监测和驾驶员辅助系统等领域都有广泛应用的潜力数据集说明&#xff1a;红绿灯检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含有国内红绿灯…

Android:OkHttp同步请求和异步请求

一、前言 网络请求之前工作中用到的是post请求&#xff0c;然后了解之后发现请求的种类还有很多种。下面着重讲到是get和post的同步请求和异步请求。 二、具体内容 1.Okhttp的特点&#xff1a; 支持Http/2并允许对同一主机的所有请求共享一套接字&#xff1b;如果非HTTP/2&…

运维相关(一) - Vue项目配置WebSocket连接{ws、wss 连接方式}

Vue项目配置WebSocket连接 ws、wss 两种方式 1. 写作背景2. 晒出代码2.1 前端 vue.config.js 的代码2.2 Vue项目路由配置代码3.3 服务器Nginx配置 3. 使用方式3.1 前端代码3.2 后端代码 4. 测试使用 1. 写作背景 项目使用的是ruoyi的前后端分离框架项目需要使用到 websocket , …

数据结构与算法—双链表

前言 前面有很详细的讲过线性表(顺序表和链表)&#xff0c;当时讲的链表以单链表为主&#xff0c;但在实际应用中双链表有很多应用场景&#xff0c;例如大家熟知的LinkedList。 双链表与单链表区别 单链表和双链表都是线性表的链式实现&#xff0c;它们的主要区别在于节点结构…