如何去掉视频上的水印文字,如何去掉图片上的水印文字?

营销圈公众号引导关注

如何去掉视频上的水印文字,如何去掉图片上的水印文字?

你是否有下载了一些视频想使用,却发现视频里被打了水印的问题呢?

这时该怎么办,找原始视频,还是放弃?

对于这种烦恼也困扰着我,然后网上一直搜索去水印的工具,但是想要白嫖,几乎是不可能的,充钱买会员才是真实的!

对于让我掏钱买会员的行径,坚决抵制,用不了别人的,那自己是否能实现呢?

答案是肯定的!

互联网时代,只要你能想到的,GitHub上基本都能找到答案, 然后在此基础上封装一番,变成适合自己使用习惯的工具。

今天找到的工具是ffmpeg, 这个工具支持各个平台,下载地址:http://ffmpeg.org/download.html#build;

我是贫民,只有windows的机器,那就以windows系统演示吧!

windows系统下载地址:https://www.gyan.dev/ffmpeg/builds/

然后解压添加bin目录到环境变量path中,打开cmd执行一把ffmpeg -h, 不报错则说明可以愉快的使用了。

如何去掉视频上的水印文字,如何去掉图片上的水印文字?

path添加环境变量

如何去掉视频上的水印文字,如何去掉图片上的水印文字?

ffmpeg测试

ffmpeg功能强大,视频、音频、图片、GIF都可以进行操作转换,不管你有什么需求。

首先看看ffmpeg的基本功能:

查看视频基本信息

ffmpeg -i ss.mp4

查看视频分辨率

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 ss.mp4

加速/减速播放视频

# 加速一倍 setpts的取值范围[0.25, 2] ffmpeg -i input.mov -filter:v "setpts=0.5*PTS" output.mov # 减速一倍 ffmpeg -i input.mov -filter:v "setpts=2.0*PTS" output.mov

视频转换保持原质量

ffmpeg -i input.webm -qscale 0 output.mp4

视频静音与音频变速

# -an表示静音 ffmpeg -i input.mov -an mute-output.mov # 通常音频变速是跟随着视频进行的 #atempo=2.0表示二倍变速,取值范围[0.5-2],如果想要表达四倍则为atempo=2.0,atempo=2.0 ffmpeg -i ss.mp4 -r 60 -filter_complex "[0:v]setpts=0.25*PTS[v];[0:a]atempo=2.0,atempo=2.0[a]" -map "[v]" -map "[a]" ss4.mp4

设置视频高宽比

# 设置视频高宽比 ffmpeg -i input.mp4 -aspect 16:9 output.mp4 # 设置视频尺寸 ffmpeg -i big.mov -vf scale=360:-1 small.mov

视频去除水印

# x和y是以左上角为原点的坐标,w和h是水印的矩形区域的宽度和高度 ffmpeg -i ss.mp4 -vf "delogo=x=80:y=70:w=220:h=220" -c:a copy a.mp4

视频中提取音频

ffmpeg -i ss.mp4 -b:a 128k ss.mp3 # 提取片段 ffmpeg -i aa.mp4 -ss 00:00:11.270 -to 00:00:14.550 -b:a 128k ss.mp3

视频中提取字幕

# 从视频中提取srt字幕 ffmpeg -i ss.mp4 -map 0:s:0 ss.srt

字幕转换

从srt转换出ass字幕文件ffmpeg -i subtitle.srt subtitle.ass

python的ffmpeg库:ffmpeg-python

安装方式:pip install ffmpeg-python

然后可以直接使用已经封装好的方法进行视频操作。

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Date: 2023/3/16 19:42 @Author: Wally @Descript: 通过ffmpeg去除视频水印import timeimport sysimport osimport subprocessfrom typing import Tupleimport ffmpegdef set_up(): # 输出目录检查,ffmpeg环境变量增加 global output_path # current_path=os.path.join(os.path.dirname(os.path.abspath(__file__))) # pyinstaller打包有坑 current_path=os.path.dirname(os.path.realpath(sys.executable)) # 获取真实路径,pyinstaller打包用, output_path=os.path.join(current_path, "output") bin_path=os.path.join(current_path, 'bin') print(f"output_path: {output_path}") if not os.path.exists(output_path): os.mkdir(output_path) print(f"添加path环境变量:{bin_path}") sys.path.insert(0, bin_path) print("初始化完成!") return output_pathdef clear_water_mark( in_file: str, positions: Tuple[int], fps: int=30, setpts: float=1, mute_flag: bool=False): """ 视频去除水印 :param positions: 坐标, x,y, w,h 分别为视频画面去除水印的开始位置坐标,去除的长度和高度 :param fps: 视频帧数 快速播放时,需要增加帧数 :param in_file: 视频文件地址 :param setpts: 播放倍数 :param mute_flag: 转换时是否静音,默认不静音 :return: """ set_up() try: # out_path, out_file=in_file.rsplit("\\", 1) out_file=in_file.rsplit("\\", 1)[-1].rsplit("/", 1)[-1] out_file=f"out_{time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))}_" + out_file cmd=f'ffmpeg -i {in_file} -vf "delogo=x={positions[0]}:y={positions[1]}:w={positions[2]}:h={positions[3]}" -c:a copy {os.path.join(output_path, out_file)}' res=subprocess.call(cmd, shell=True) if res !=0: print(f"文件:{out_file}去除水印失败.") return False print(f"文件:{out_file}去除水印已完成!") if setpts !=1 or mute_flag: print(f"视频文件需要进行变速或静音处理...") return change_speed_play(os.path.join(output_path, out_file), setpts=setpts, mute_flag=mute_flag, fps=fps) else: print("视频操作完毕!") return True except Exception as e: print(f"参数错误: {str(e)}") return Falsedef main(): print("请输入要转换的视频绝对路径:") f=input() print("请输入去除水印的起始点与长度和宽度[x y w h], 例如0 0 200 200") positions=input() print("视频变速倍数,默认不变[1,1.25,1.5,1.75,2,4,0.875,0.75,0.5]:") speed=input() print("视频是否静音, 默认不静音[0:静音, 1:不静音]:") an=input() if '' in [f, positions]: print("视频路径和需要去除的水印坐标不能为空") return False pos=[int(t) for t in positions.split()] if len(pos) < 4: print("去除水印的坐标点和位置必须为4位整数") return False if not speed: speed=1 else: try: speed=float(speed) except: speed=1 if an.isdigit(): if int(an): an=False else: an=True else: print("是否静音输入错误, 默认为不静音") an=False clear_water_mark(f, tuple(pos), setpts=speed, mute_flag=an)

执行程序

如何去掉视频上的水印文字,如何去掉图片上的水印文字?

如何去掉视频上的水印文字,如何去掉图片上的水印文字?

去除水印前

如何去掉视频上的水印文字,如何去掉图片上的水印文字?

去除水印后

如何去掉视频上的水印文字,如何去掉图片上的水印文字?

代码完成后通过pyinstaller进行打包生成exe可执行文件,之后执行就不再依赖python环境和ffmpeg文件,从此以后,带水印的视频想用就用,真是妈妈再也不用担心我的水印视频了。

#头条创作挑战赛#

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/231546.html