利用ffmpeg实现添加图片水印和文字水印,添加多个水印。代码和命令实现及中文水印乱码
利⽤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
WORD最后一页空白页怎么删除>lol香炉ffmpeg命令添加⽂字⽔印
ffmpeg -i input.flv -vf "drawtext=f: text='雷':x=100:y=10:fontsize=24:fontcolor=yellow:shadowy=2" drawtext.mp4
教师节祝福语 简短8字
⽂字⽔印filter是drawtext,⾸先要有f这个⽂件,可以去⽹上下载,也可以去C:\Windows\Fonts\⽬录下去,text是⽂字内容,
x:y是显⽰位置,fontsize⽂字⼤⼩,fontcolor⽂字颜⾊
2.ffmpeg代码实现⽂字和图⽚⽔印
婚假几天国家法定2020{
我国四大名著// 图⽚⽔印
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=f: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=f:x=0:y=0:fontsize=30:text='123',scale=1920:1080[a];[a]drawtext=f:x=0:y=100:fontsize = 30但是添加多个⽔印有⼀个问题:两个⽔印⾼宽似乎不⼀样,不知道什么原因,知道的朋友还请指点⼀下,谢谢

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。