FFmpeg加水印
ffmpeg中文水印乱码两种原因
1.字符编码格式原因,中文必须是utf8编码格式的(我遇到的问题,在vs2013上写的中文,已做编码格式转码,放到centos7.2上编译运行也会出现中文乱码的问题,在Linux上把中文水印重新输入一遍就OK了)
2.字体文件fontfile原因,最好去C:\Windows\Fonts目录下去找,比如说宋体,黑体这些是不会乱码的
1.ffmpeg命令添加视频水印
ffmpeg –i input.flv -acodec copy-vcodec copy -vf "movie=test.png[watermark];[in][watermark]overlay=10:10:1[out]" output.flv
-i input.flv 表示要进行水印添加处理的视频
-acodec copy-vcodec copy表示保持音视频编码不变
-b 300k 表示处理视频的比特率
-vf “…” 中间便是水印处理参数,movie是指图片水印路径,搭配overlay一起使用,重要的是overlay=后面的部分,第一个参数表示水印距离视频左边的距离,第二个参数表示水印距离视频上边的距离,第三个参数 为1,表示支持透明水印。使用透明的png图片进行视频编码后,成功获得带透明水印的视频,并且画质也比较好。详情请见:https://ffmpeg.org/ffmpeg-filters.html#overlay-1
output.flv 处理后的视频
ffmpeg命令添加文字水印
ffmpeg -i input.flv -vf "drawtext=fontfile=simhei.ttf: text='雷':x=100:y=10:fontsize=24:fontcolor=yellow:shadowy=2" drawtext.mp4
文字水印filter是drawtext,首先要有simhei.ttf这个文件,可以去网上下载,也可以去C:\Windows\Fonts\目录下去找,text是文字内容,
x:y是显示位置,fontsize文字大小,fontcolor文字颜色
详情请看https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
2.ffmpeg代码实现文字和图片水印
代码就不重复粘贴上来了,因为网上好多这种demo,推荐使用雷霄华博士的:http://blog.csdn.net/leixiaohua1020/article/details/29368911
{
// 图片水印
sprintf(filter_spec, "movie=test.png[wm];[in][wm]overlay=10:10,scale=1920:1080[out]");
}
{
// MB转换为utf-8,文字水印的话,文字水印必须是utf8编码的
//string strCharacterInfoUTF8 = CMarkup::AToUTF8(stGetTaskRespInfo.watermark.characterInfo);
// 文字水印
sprintf(filter_spec, "[in]drawtext=fontfile=simhei.ttf:fontcolor=red:x=10:y=10:fontsize = 30 : text='123',scale=640:360[out]");
}
雷霄华博士的添加水印demo中init_filters()函数内将上述相关代码添加进去就OK了!
相关说明:
1.drawtext必须依赖libfreetype画字库,libfontconfig字体库两个库
scale分辨率filter,overlay图片水印filter
2.文字水印的话,文字水印必须是utf8编码的,不然会是乱码
3.字体文件fontfile,最好去C:\Windows\Fonts目录下去找,找一些中文的字体,不然可能也会导致乱码
ffmpeg支持添加多个水印:例如同时
1.同时添加图片水印与文字水印:
sprintf(filter_spec,"[in]drawtext=x=0:y=300:text="HelloWorld"[text];movie=/Test.png[wm];[text][wm]overlay=0:0,scale=1920:1080[out]");
具体参数详情请看https://ffmpeg.org/ffmpeg-filters.html
FFmpeg加水印的更多相关文章
- 史林枫:C#.NET利用ffmpeg操作视频实战(格式转换,加水印 一步到位)
ffmpeg.exe是大名鼎鼎的视频处理软件,以命令行参数形式运行.网上也有很多关于ffmpeg的资料介绍.但是在用C#做实际开发时,却遇到了几个问题及注意事项,比如如何无损处理视频?如何在转换格式的 ...
- ffmpeg加文字水印并控制水印显示时间或显示周期
#以下脚本保存成.sh文件运行,不会出现中文乱码问题 网上查到用enable关键字控制,实际是draw #加水印 水印位置由x,y,w,h来控制 #ffmpeg编译时需--enable-libfree ...
- 20190728-Python爬取视频&切割视频&视频加水印
1.视频爬取 1.下载视频的源码如下: import os import requests from bs4 import BeautifulSoup import threading from bj ...
- 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化
<?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...
- thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印
今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...
- 【转】WPF TextBox和PasswordBox加水印
Textbox加水印 Textbox加水印,需要一个VisualBrush和触发器验证Text是否为空,在空的时候设置背景的Brush就可以实现水印效果. <TextBox Name=" ...
- Web 上传图片加水印
上传图片加水印 需要使用控件FileUpload 上传按钮Image控件展示上传的图片,页面中拖入三个控件 <form id="form1" runat="serv ...
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
[强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...
- 使用iText对pdf做权限的操作(不允许修改,不允许复制,不允许另存为),并且加水印等
添加水印,并且增加权限 @Test public void addWaterMark() throws Exception{ String srcFile="D:\\work\\pdf\\w ...
随机推荐
- jrebel永久免费使用教程,这个标题怎么样?不能带“激活”俩字?
文章转载自:https://www.jiweichengzhu.com/article/33c0330308f5429faf7a1e74127c9708 如果还有问题,加群交流:686430774(就 ...
- SPOJ GSS3 线段树系列1
SPOJ GSS系列真是有毒啊! 立志刷完,把线段树搞完! 来自lydrainbowcat线段树上的一道例题.(所以解法参考了lyd老师) 题意翻译 n 个数, q 次操作 操作0 x y把 Ax 修 ...
- 矩阵快速幂/矩阵加速线性数列 By cellur925
讲快速幂的时候就提到矩阵快速幂了啊,知道是个好东西,但是因为当时太蒟(现在依然)没听懂.现在把它补上. 一.矩阵快速幂 首先我们来说说矩阵.在计算机中,矩阵通常都是用二维数组来存的.矩阵加减法比较简单 ...
- luogu P1309 瑞士轮【排序】
题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分 ...
- DP(递归打印路径) UVA 662 Fast Food
题目传送门 题意:n个饭店在一条直线上,给了它们的坐标,现在要建造m个停车场,饭店没有停车场的要到最近的停车场,问所有饭店到停车场的最短距离 分析:易得区间(i, j)的最短距离和一定是建在(i + ...
- html下的图片链接有边框的解决方法
使用dreamweaver创建网页后,上传到网站发现网页的图片链接有非常难看的蓝色边框,而在dw下是没有的 后来查看了一下网上的资料,发现加一个border="0"即可,默认是有边 ...
- log4js日志配置问题
http://blog.csdn.net/cdnight/article/details/50857268 在做项目中,我们的node日志采用的是log4js框架,使用文件方式存储,但在后面的需求中增 ...
- 数据库执行计划慢导致I/O 慢
Memory Statistics~~~~~~~~~~~~~~~~~ Begin End ------------ ------------ Host Mem (MB): 16,338.5 16,33 ...
- APP增量更新
增量更新的概念: 当我们手机上安装的app版本与服务器的最新版本不一致的时候,传统做法是重新下载安装一个最新版的apk文件,不过这种方式比较耗流量,不利于用户体验.增量更新就是只下载当前app版本与最 ...
- Aspose.Word 的常见使用(2018-12-26 更新版)
Aspose.Word 的常见使用 起因 因项目需要,而且使用html转Word的时候,样式不兼容问题,于是只能使用Aspose.Word通过代码生成.下面是通过DocumentBuilder来设计W ...