p2p网站建设教程,中英文网站怎么做的,软件开发需要多少钱?,网页设计公司背景图1、对图片进行裁剪 ffmpeg -i input.jpg -vf cropiw/3:ih:20:0 caijian.jpg PS#xff1a;
crop100:100:12:34
相同效果:
cropw100:h100:x12:y34
2、视频增加文字水印
使用drawtext滤镜进行增加水印 参数 类型 说明 text 字符串 文字 textfile 字符串 文字文件 …1、对图片进行裁剪 ffmpeg -i input.jpg -vf cropiw/3:ih:20:0 caijian.jpg PS
crop100:100:12:34
相同效果:
cropw100:h100:x12:y34
2、视频增加文字水印
使用drawtext滤镜进行增加水印 参数 类型 说明 text 字符串 文字 textfile 字符串 文字文件 box 布尔 文字区域背景框(缺省false) boxcolor 色彩 展示字体区域块的颜色 font 字符串 字体名称默认为Sans字体 fontsize 整数 显示字体的大小 x 字符串 缺省为0 y 字符串 缺省为0 alpha 浮点数 透明度(默认为1)值从0~1
为视频增加一个水印 ffplay -i input.mp4 -vf drawtextfontsize100:fontfileFreeSerif.ttf:texthello world:fontcolorgreen:box1:boxcoloryellow 增加一个时间做为水印在使用ffmpeg转码存储到文件时需要加上-re否则时间不对 ffplay -i input.mp4 -vf drawtextfontsize60:fontfileFreeSerif.ttf:text%{localtime\:%Y\-%m\-%d %H-%M-%S}:fontcolorgreen:box1:boxcoloryellow 转成视频 ffmpeg -re -i input.mp4 -vf drawtextfontsize60:fontfileFreeSerif.ttf:text%{localtime\:%Y\-%m\-%d %H-%M-%S}:fontcolorgreen:box1:boxcoloryellow out.mp4 增加一个闪烁的水印使用drawtext与enable配合即可例如每3秒钟显示一次文字水印 ffplay -i input.mp4 -vf drawtextfontsize60:fontfileFreeSerif.ttf:texttest:fontcolorgreen:box1:boxcoloryellow:enablelt(mod(t\,3)\,1) 跑马灯效果 ffplay -i input.mp4 -vf drawtextfontsize100:fontfileFreeSerif.ttf:texthelloworld:xmod(100*t\,w):yabs(sin(t))*h*0.7 3、视频增加图片水印
为视频添加图片水印可以使用movie滤镜 参数 类型 说明 filename 字符串 输入的文件名可以是文件协议设备 format_name, f 字符串 输入的封装格式 stream_index, si 整数 输入的流索引编号 seek_point, sp 浮点数 Seek输入流的时间位置 streams, s 字符串 输入的多个流的流信息 loop 整数 循环次数 discontinuity 时间差值 支持跳动的时间戳差值
为视频增加图片水印 ffplay -i input.mp4 -vf movielogo.png[watermark];[in][watermark]overlayx10:y10[out] -x 500 其中一些参数说明 参数 说明 main_w 视频单帧图像宽度 main_h 视频单帧图像高度 overlay_w 水印图片的宽度 overlay_h 水印图片的高度
对应地可以将overlay参数设置成如下值来改变水印图片的位置 水印图片位置 overlay值 左上角 10:10 右上角 main_w-overlay_w-10:10 左下角 10:main_h-overlay_h-10 右下角 main_w-overlay_w-10:main_h-overlay_h-10 跑马灯效果 ffplay -i input.mp4 -vf movielogo.png[watermark];[in][watermark]overlayxmod(50*t\,main_w):yabs(sin(t))*h*0.7[out] 4、生成画中画
在FFmpeg中可以通过overlay将多个视频流、多个多媒体采集设备、多个视频文件合并到一个界面中生成画中画的效果 参数 类型 说明 x 字符串 X坐标 y 字符串 Y坐标 eof_action 整数 遇到eof表示时的处理方式默认为重复 repeat(值为0)重复前一帧endcall(值为1)停止所有的流pass(值为2)保留主图层 shortest 布尔 终止最短的视频时全部终止默认false format 整数 设置output的像素格式默认为yuv420 yuv420 (值为0)yuv422 (值为1)yuv444 (值为2)rgb (值为3)
从参数列表中可以看到主要参数并不多但实际上在overlay滤镜使用中还有很多组合的参数可以使用可以使用一些内部变量例如overlay图层的宽、高、坐标等。 显示画中画 ffplay -i input.mp4 -vf moviesub_320x240.mp4[sub];[in][sub]overlayx20:y20[out] ffplay -i input.mp4 -vf moviesub_320x240.mp4[sub];[in][sub]overlayx20:y20:eof_action1[out] ffplay -i input.mp4 -vf moviesub_320x240.mp4[sub];[in][sub]overlayx20:y20:shortest 1[out] 缩放画面尺寸 ffplay -i input.mp4 -vf moviesub_320x240.mp4,scale640x480[sub];[in][sub]overlayx20:y20[out] 跑马灯 ffplay -i input.mp4 -vf moviesub_320x240.mp4[test];[in][test]overlay xmod(50*t\,main_w):yabs(sin(t))*main_h*0.7[out] 5、视频多宫格
从前文中可以看出进行视频图像处理时overlay滤镜为关键画布可以通过FFmpeg建立一个画布也可以使用默认的画布。如果想以多宫格的方式展现则可以自己建立一个足够大的画布下面就来看一下多宫格展示的例子 ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex nullsrcsize640x480[base];[0:v] setptsPTS-STARTPTS,scale320x240[upperleft];[1:v]setptsPTS-STARTPTS,scale320x240[upperright];[2:v]setptsPTS-STARTPTS, scale320x240[lowerleft];[3:v]setptsPTS-STARTPTS,scale320x240[lowerright];[base][upperleft]overlayshortest1[tmp1];[tmp1][upperright]overlayshortest1:x320[tmp2];[tmp2][lowerleft]overlayshortest1:y240[tmp3];[tmp3][lowerright]overlayshortest1:x320:y240 out.mp4 1.2.3.4.mp4为文件路径out.MP4为输出文件路径通过nullsrc创建overlay画布画布大小640:480,
使用[0:v][1:v][2:v][3:v]将输入的4个视频流去除分别进行缩放处理然后基于nullsrc生成的画布进行视频平铺命令中自定义upperleft,upperright,lowerleft,lowerright进行不同位置平铺。 只叠加左上右上的命令 ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex nullsrcsize640x480[base];[0:v]setptsPTS-STARTPTS,scale320x240[upperleft];[1:v]setptsPTS-STARTPTS,scale320x240[upperright];[base][upperleft]overlayshortest1[tmp1];[tmp1][upperright]overlayshortest1:x320 out2.mp4