ffmpeg/ffplay 复杂过滤器编写

ffmpeg/ffplay过滤器,如下:

 

1. 输入流800*600的视频流

ffplay -i input.mp4 -vf  

hflip,vflip,drawtext=fontsize=20:fontcolor=white:fontfile=arial.ttf:text='%{localtime}',drawbox=10:50:200:60:red:t=fill,drawbox=120:200:200:60:green:t=fill,split[s1][s2];[s2]crop=100:100:400:100,boxblur=luma_radius=25:luma_power=2[cropout];[s1][cropout]overlay=400:100,split=3[m1][m2][m3];[m2]scale=200:150[small];[m3]scale=400:300[small2];[m1]pad=1210:600:0:0[padout];[padout][small2]overlay=805:0[overlay1];[overlay1][small]overlay=805:305

   实现功能:

    1. 主流:  水平/垂直翻转、加时间水印、画框(红、绿)、区域模糊化

    2. 拆分成3个流:

         1) 流2: 缩放到200*150

         2) 流3: 缩放到400*300

         3) 流1:在主流上填充区域,后在填充区域上叠加流2、流3

    3. 显示输出

hflip,vflip,drawbox=10:50:200:60:red:t=fill,drawbox=120:200:200:60:green:t=fill,split[s1][s2];[s2]crop=100:100:400:100,boxblur=luma_radius=25:luma_power=2[cropout];[s1][cropout]overlay=400:100,split=3[m1][m2][m3];[m2]scale=200:150,drawtext=fontsize=12:fontcolor=white:fontfile=arial.ttf:text='%{localtime}'[small];[m3]scale=400:300,drawtext=fontsize=12:fontcolor=white:fontfile=arial.ttf:text='%{localtime}'[small2];[m1]drawtext=fontsize=20:fontcolor=white:fontfile=arial.ttf:text='%{localtime}',pad=1210:600:0:0[padout];[padout][small2]overlay=805:0[overlay1];[overlay1][small]overlay=805:305

   实现功能:

    1. 主流:  水平/垂直翻转、画框(红、绿)、区域模糊化

    2. 拆分成3个流:

         1) 流2: 缩放到200*150,添加时间水印

         2) 流3: 缩放到400*300,添加时间水印

         3) 流1:在主流上添加时间水印,填充区域,后在填充区域上叠加流2、流3

    3. 显示输出

 

posted @ 2021-12-11 21:35  alone153  阅读(215)  评论(0)    收藏  举报