ffmpeg-给视频添加水印常用命令

1.实现每隔10秒交替出现logo

ffmpeg -y -t 60 -i input.mp4 -i logo1.png -i logo2.png -filter_complex "overlay=x=if(lt(mod(t\,20)\,10)\,10\,NAN ):y=10,overlay=x=if(gt(mod(t\,20)\,10)\,W-w-10\,NAN ) :y=10" output.mp4

60 编辑视频时长,如果填写只会处理并输出前60秒的视频,不填写会处理整个视频
x 水印的左上角的x坐标
y 水印的左上角的y坐标
input.mp4 输入的视频文件(需要处理的)
output.mp4 输出的视频文件(已经处理完成的)
if(gt(mod(t,20),10),W-w-10,NAN )中第二个10说logo出现的时长,即是说水印会显示10秒


2.实现跑马灯

ffmpeg -i input1 -i input2 -vcodec libx264 -an -filter_complex "overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0" -s 320x240 output.mp4

input1 放在底部的视频
input2 放在上面的视频
320x240 输出视频的宽高


3.实现2秒后logo从左到右移动

ffmpeg -i input.mp4 -vf "movie=logo.png[logo];[in][logo]overlay=x='if(gte(t\,2)\,((t-2)*80)-w\,NAN)'" output.mp4

80 移动的距离,单位像素


4.实现gif格式的logo循环命令

ffmpeg -i video.mpg -ignore_loop 0 -i loop.gif -filter_complex  "[0:v][1:v]overlay=10:10:shortest=1" -vcodec mpeg2video out.mpg

5.实现视频添加字幕

ffmpeg  -i  input  -vf  drawtext=fontfile=arial.ttf:text=welcome output

6.实现周期显示输入的文字水印

ffmpeg -i input.mp4 -vf "drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf:text='testtest':x=w-100:y=100:enable=lt(mod(t\,3)\,1):fontsize=24:fontcolor=yellow@0.5:shadowy=2" output.mp4

7.编写代码遇到错误

Cannot create buffer sink ret = -12 
修改
AVFilter *buffersrc  = avfilter_get_by_name("buffer");
AVFilter *buffersink = avfilter_get_by_name("buffersink");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,941评论 25 709
  • 大清早起床打了个电话就收到话费余额不足的短信,赶紧儿的冲了电话费,银行卡短信过来余额只剩300多块钱了。突然...
    angeljsl阅读 2,118评论 2 0
  • #田生万物彤彤妈咪吃货日记#第12天 又到了吃柚子的季节了,说起柚子大家都不陌生,相信大家也都经常吃柚子,你们...
    淇彤妈咪阅读 3,593评论 0 0
  • 晚上出去跑步,看到小区里有一家帮人帮企业起名字的茶社,就突然想起来当初给我家女儿起名字。那个艰辛啊! 不能和长辈同...
    随风而逝711阅读 4,410评论 0 0
  • 最近我们娘仨有一件事赶到一起了,那就是出牙,哈哈哈大儿子换牙,小儿子正是出牙时期。而我也凑了个热闹,两边一...
    邓启旭邓君浩妈妈阅读 1,573评论 0 3