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]");

2.同时添加两个图片水印:
sprintf(filter_spec,"movie=../test.png[wm1];movie=../test.png[wm2];[in][wm1]overlay=0:0,scale=1920:1080[a];
[a][wm2]overlay=0:300,scale=1920:1080[out]");
3.同时添加两个文字水印:
sprintf(filter_spec,"[in]drawtext=fontfile=simhei.ttf:x=0:y=0:fontsize=30:text='123',scale=1920:1080[a];[a]drawtext=fontfile=simhei.ttf:x=0:y=100:fontsize = 30 : text = '123',scale=1920:1080[out]");
但是添加多个水印有一个问题:两个水印高宽似乎不一样,不知道什么原因,知道的朋友还请指点一下,谢谢

具体参数详情请看https://ffmpeg.org/ffmpeg-filters.html

FFmpeg加水印的更多相关文章

  1. 史林枫:C#.NET利用ffmpeg操作视频实战(格式转换,加水印 一步到位)

    ffmpeg.exe是大名鼎鼎的视频处理软件,以命令行参数形式运行.网上也有很多关于ffmpeg的资料介绍.但是在用C#做实际开发时,却遇到了几个问题及注意事项,比如如何无损处理视频?如何在转换格式的 ...

  2. ffmpeg加文字水印并控制水印显示时间或显示周期

    #以下脚本保存成.sh文件运行,不会出现中文乱码问题 网上查到用enable关键字控制,实际是draw #加水印 水印位置由x,y,w,h来控制 #ffmpeg编译时需--enable-libfree ...

  3. 20190728-Python爬取视频&切割视频&视频加水印

    1.视频爬取 1.下载视频的源码如下: import os import requests from bs4 import BeautifulSoup import threading from bj ...

  4. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化

    <?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...

  5. thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印

    今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...

  6. 【转】WPF TextBox和PasswordBox加水印

    Textbox加水印 Textbox加水印,需要一个VisualBrush和触发器验证Text是否为空,在空的时候设置背景的Brush就可以实现水印效果. <TextBox Name=" ...

  7. Web 上传图片加水印

    上传图片加水印 需要使用控件FileUpload 上传按钮Image控件展示上传的图片,页面中拖入三个控件 <form id="form1" runat="serv ...

  8. PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转

    [强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...

  9. 使用iText对pdf做权限的操作(不允许修改,不允许复制,不允许另存为),并且加水印等

    添加水印,并且增加权限 @Test public void addWaterMark() throws Exception{ String srcFile="D:\\work\\pdf\\w ...

随机推荐

  1. P4357 [CQOI2016]K远点对(KDTree)

    传送门 又一次产生了KDTree本质就是爆搜的感觉-- 大概就类似于p4169,只不过是从最近点对变成了第\(k\)远点对 我们开一个小根堆,里面放\(k\)个元素,起初全为\(0\),然后每一次都把 ...

  2. win7下硬盘安装Windows

    win7下硬盘安装Windows: 1.下载 Windows 7 ISO镜像,用虚拟光驱拷贝至非C盘(如d:\win7)2.开机按F8 - 修复系统 - 选择最后一项命令修复 - 在命令框输入 d:\ ...

  3. 2017 JUST Programming Contest 3.0 E. The Architect Omar

    E. The Architect Omar time limit per test 1.0 s memory limit per test 256 MB input standard input ou ...

  4. 【先定一个小目标】Ubuntu 16.04 搭建 zookeeper

    ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 Zo ...

  5. 454 4Sum II 四数相加 II

    给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0.为了使问题简单化,所有的 A, ...

  6. JS filters-table简单过滤-Version 1

    初级版本: 输入框可检索,空格检索忽略 radio点击后会过滤 最后的两个输入框可根据age范围检索过滤 三个单独的功能,不能协同工作 <!DOCTYPE html> <html&g ...

  7. serialize可以获取form表单里面的数值

    serialize属性 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  8. 2019PAT春季考试第4题 7-4 Structure of a Binary Tree (30 分)

    题外话:考试的时候花了一个小时做了27分,由于Siblings这个单词不知道意思,所以剩下的3分就没去纠结了,后来发现单词是兄弟的意思,气哭~~ 这道题的麻烦之处在于如何从一个字符串中去找数字.先首先 ...

  9. CFAN:Coarse-to-Fine Auto-Encoder Networks (CFAN) for Real-Time Face Alignment

    作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/6801045.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...

  10. zabbix监控之grafana

    zabbix监控之grafana