FFmpeg Filtergraphs -examples
来源:互联网 发布:淘宝美工好找工作吗 编辑:程序博客网 时间:2024/06/10 17:59
最近在做和FFmpeg Filters 相关的工作,看了很多参考文档,完成工作,现在把工作做一个简单的记录,备忘。
complex filters 处理的是 多路输入和多路输出的的问题。这里只是涉及到了多路输入,一路输出。
写几个简单的应用的例子:
1 图片和视频的叠加(加水印或者加台标)
ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]scale=50:50[a];[0:v][a]overlay=0:0" output.mp4
其中第一路输入的视频流名称是[0:v],第二个输入视频或者图片的名称为[1:v],以此类推。
同时每做一次处理,要给处理后的视频流起一个新的名字,方便叠加,比如[a],就是[1:v]这个视频流做scale处理后的名字。
overlay filter的叠加位置说明:
overlay=W-w //右上角
overlay=0:H-h //左下角
overlay=W-w:H-h //右下角
overlay=H-h //顶部中央
overlay=0:0 //左上角
效果图:
2 视频和视频的叠加(画中画)
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[1:v]scale=50:50[a];[0:v][a]overlay=0:0" -f flv output.flv
其实只是把第二路输入由图片换成视频而已,别的地方并未做任何改变。
3 再复杂一点尝试3路输入(视频叠加水印,在嵌入大视频中)
ffmpeg -i input1.mp4 -i input2.mp4 -i logo.png -filter_complex "[1:v][2:v]overlay=W-w:H-h[a];[0:v]drawbox=0:0:240:162:black@0.5[b];[b][a]overlay=0:0" -f flv output.flv
在这里又给小视频加了一个框,用[0:v]drawbox=0:0:240:162:black@0.5[b]实现的在大视频上加了白色的边界框。
效果图:
3 流的叠加后台推送
ffmpeg -i stream1 -i stream2 -i zbxh1.png -filter_complex "[1:v][2:v]overlay=W-w:H-h[a];[0:v]drawbox=0:0:240:162:black@0.5[b];[b][a]overlay=0:0" -acodec aac -ac 1 -vcodec libx264 -deblock 0 -f flv rtmp://localhost:1935/myapp/test
把输入的视频文件换成流地址(亲测过http,rtmp,rtsp等的同种叠加和混搭),把保存的文件换成推送的地址,最后指明编码器等参数。
其中-deblock 0 选项是“去块效应”的,以免视频编码完成后产生块效应。
主要参考:https://ffmpeg.org/ffmpeg.html#Filtering
- FFmpeg Filtergraphs -examples
- FFmpeg Filtergraphs -原理
- FFmpeg-examples-transcode_aac
- ffmpeg audio filter command line examples
- ffmpeg video filter command line examples
- examples
- examples
- 从编译ffmpeg/examples,进而了解pkg-config
- Structs examples
- JFreeChart Examples
- Good examples!!
- NSAffineTransform Examples
- Libevent examples
- rsync examples
- printf examples
- pythonic examples
- HttpClient Examples
- dd examples
- 史上最完美最简单实用的解决文本溢出方法(tooltip/popover)
- redis集群事务管理工具类
- linux系统下opencv-3.3.1安装配置
- java线程池
- 谈谈nodejs爬虫程序利器——cheerio模块
- FFmpeg Filtergraphs -examples
- Adobe Animate CC 2018 for Mac (an cc2018中文破解版)附破解补丁 v18.0.1中文破解版
- 2017年度最流行的十大中国开源软件
- Gson解析JSON数据中动态未知字段key的方法
- 教你如何通过MCU将S2E配置为UDP的工作模式
- linux查看端口占用情况
- 设计模式学习-桥接模式
- 第一个blog
- svn使用笔记