惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
爱范儿
爱范儿
美团技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
有赞技术团队
有赞技术团队
博客园_首页
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
V
Visual Studio Blog
Jina AI
Jina AI
博客园 - Franky
量子位
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
aimingoo的专栏
aimingoo的专栏
M
MIT News - Artificial intelligence

Mox的笔记库

2026PPoPP MLIR Tutorial学习 | Mox的笔记库 MacOS配置《明日方舟:终末地》 | Mox的笔记库 2025:向内生长 | Mox的笔记库 由mlir::ExecutionEngine引发的跨系统问题 | Mox的笔记库 WSL2配置Cuda-Tile环境记录(未完待续) | Mox的笔记库 Vibe Coding手搓项目记录 | Mox的笔记库 给Debian上包——以DuckDB为例 | Mox的笔记库 UCPD.sys事件存档 | Mox的笔记库 换新电脑之Mac mini M4从购买到配置 | Mox的笔记库 Mac配置MLX-C开发环境 | Mox的笔记库 RISC-V meets RDBMS——RISC-V架构上可运行数据库一览 | Mox的笔记库 DuckDB Sort实现调查 | Mox的笔记库 修复Redis在树莓派5上无法运行的问题 | Mox的笔记库 如何在MLIR中自定义类型并且输出运行 | Mox的笔记库 网站网络结构变更记录 | Mox的笔记库 EDBT25论文阅读:PhoebeDB——A Disk-Based RDBMS Kernel for High-Performance and Cost-Effective OLTP SIGMOD25论文阅读:BPF-DB:——A Kernel-Embedded Transactional Database Management System For eBPF Applications Apache Arrow Gandiva项目解析 | Mox的笔记库 VLDB24论文阅读:Cloud-Native Database Systems and Unikernels——Reimagining OS Abstractions for Modern Hardware NoisePage源码分析(未完待续) | Mox的笔记库 VLDB20论文阅读:Mainlining Databases——Supporting Fast Transactional Workloads on Universal Columnar Data File Formats VLDB17论文阅读:Relaxed Operator Fusion for In-Memory Databases:Making Compilation, Vectorization, and Prefetching Work Together At Last 论文阅读:How not to structure your database-backed web applications——a study of performance bugs in the wild SIGMOD24阅读:ROME——Robust Query Optimization via Parallel Multi-Plan Execution 文章阅读:First Past the Post-Evaluating Query Optimization in MongoDB SIGMOD文章阅读:Apache Calcite——A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources VLDB23论文阅读:Analyzing the Impact of Cardinality Estimation on Execution Plans in Microsoft SQL Server SIGMOD22论文阅读:Efficient Massively Parallel Join Optimization for Large Queries VLDB论文阅读:Weaving Relations for Cache Performance VLDB22论文阅读:ConnectorX——Accelerating Data Loading From Databases to Dataframes
论批量快速添加图片与视频水印的事 | Mox的笔记库
MocusEZ · 2024-05-16 · via Mox的笔记库

接着昨天继续往下写,既然能批量添加元数据,那自然也少不了批量添加图片与视频显式水印这档子事情

但如果你使用搜索引擎,你就会发现基本都是广告,可能会有少数好心人会告诉你用Python解决

对于这种现状,那自然忍不了啦😛下面说说我的解决方案

FFmpeg给图片和视频添加水印

这不难,问大模型就能得到答案,这里贴上我试过可行的代码

先提前准备好一种中文字体,命名为Q.ttf

给JPG图片右下角添加水印

ffmpeg -i 1.jpg -vf "drawtext=text='此图片为AI生成':fontfile=Q.ttf:fontsize=24:x=W-tw:y=H-th-10:fontcolor=white:shadowcolor=black@0.5:shadowx=2:shadowy=2" -codec:a copy output.jpg

给MP4图片右下角添加水印

ffmpeg -i 1.mp4 -vf "drawtext=text='此视频为AI生成':fontfile=Q.ttf:fontsize=24:x=W-tw:y=H-th-10:fontcolor=white:shadowcolor=black@0.5:shadowx=2:shadowy=2" -codec:a copy output.mp4

这里肯定有人会问了:我用Windows去哪里下FFmpeg?

首选自然是官网,官网给了两个可供下载的编译成品(但这两个版本都不支持CUDA)

想要支持CUDA的FFpmeg,自行编译,丰衣足食(doge🧐

其实还有另外的法子,自行搜索格式工厂,找到格式编译的FFmpeg,用格式工厂编译的FFmpeg,实测他们编译的FFmeg支持CUDA操作

通过Nvidia显卡加水印的方案如下:

Note:需要提前准备好想要打的水印图片

ffmpeg -i 1.mp4 -i watermark.png -filter_complex "[1:v][0:v]scale2ref=iw*0.1:ih*0.1[wm][main];[main][wm]overlay=W-w-10:H-h-10"-c:v h264_nvenc -c:a copy output1.mp4

使用NVENC加速编码,实测确实能快许多

使用CUDA API给图片添加水印

为什么会有这条?问就是有时候就是得到些奇怪的需求,要求使用显卡给图片加水印(不是视频)

搜资料的时候发现老黄的CUDA API样例里就有加水印的样例,其中的nvJPEG就可以实现加水印的操作

Note:这里默认大家已经配置好了CUDA编译环境,如果没有请自行忽略本章节😄

nvJPEG/Image-Resize-WaterMark

如果你不想Resize图片,那你修改下CPP文件中有关长高的变量即可。关于用法,Readme写的很清楚,这里不再赘述

实测效果还是挺不错的,RTX4090平均8ms一张(分辨率686×1024,354KB大小),5000张直接把24GB显存干满

结语

关于水印的事情可以暂时告一段落了🥱

实习的日子也进入倒计时了,该准备回学校毕设答辩了


avatar

探索未曾设想的道路