当前位置: 首页 > news >正文

建设厅官方网站新资质标准seo观察网

建设厅官方网站新资质标准,seo观察网,新浪博客网站,380元网站建设ffmpeg filter的理解 filter的简介 从整体看,filte rgraph包含filter chain,而filter chain又包含了filter,所以可以分为是三个层次去理解。 filterfilter chainfilter graph filter graph是链接多个filter的有向图。它可以包含循环&#…

ffmpeg filter的理解


filter的简介

从整体看,filte rgraph包含filter chain,而filter chain又包含了filter,所以可以分为是三个层次去理解。

  • filter
  • filter chain
  • filter graph

filter graph是链接多个filter的有向图。它可以包含循环,各个Filter之间也可以有多个链接。每个链接有一个input pad连接到一个filter并从那里获取输入,有一个output pad连接到另一个filter提供输出。所有的Filter都是已经注册在程序中的。没有输入的filter叫source,没有输出的filter叫sink。

每个Filtergraph都有对应的结构化的文本表示:

  • 对于命令ffmpeg来说有-filter, -vf, -affilter_complex这些选项
  • 对于命令ffplay来说有-vf, -af这些选项

filter chain:是由一个或多个filter线性连接而成,filter之间使用逗号,来分隔

filter graph:是由一个或多个filter chain组成,filter chain之间使用分号;来分隔


filter的语法

filter的语法格式为:

[in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
  • filter_name就是你所要使用的filter的名称
  • 后面的@id是可选的(基本没用到)
  • Filter的名称和参数前后是允许放置一个或多个链接标签(link label: 别名
    • 放在前面的链接标签in_link_1in_link_N被关联到Filter的input pad
    • 后面的out_link_1out_link_M被关联到Filter的output pad
    • 如果一个filter的output pad没被标记链接标签,则它会被默认链接到后续的filter中第一个未标记链接标签的input pad
  • =arguments也是可选填的(有些filter并不需要参数)
    • arguments通常有如下格式:
      • :来分隔一系列值
      • :来分隔一系列的key=value的键值对
      • :来分隔一系列值,之后跟着一系列的key=value的键值对,值必须在键值对前面
      • 有时候value本身就是要填一系列参数值的,那么需要用|来拼接
  • 对于一个完整可用的filter chain来说,所有匿名的链接标签必须有被链接。
  • 在处理filter graph过程中当遇到有格式转换的时候会自动插入scale这个filter,所以在filter graph描述中的可能会隐式包含scale的地方前面,需要加上要指定的缩放参数:sws_flags=flags

如:

nullsrc, split[L1], [L2]overlay, nullsink

从所有filter里面找到nullsink:

ffmpeg -filters | grep nullsink

列出split的说明:

$ ffmpeg -h filter=split
Filter splitPass on the input to N video outputs.Inputs:#0: default (video)Outputs:dynamic (depending on the options)
split AVOptions:outputs           <int>        ..FVA...... set number of outputs (from 1 to INT_MAX) (default 2)

ffmpeg的命令行输出比较有限,了解filter怎么用,还是得从官网的文档里面学习:
比如,split的用法:

  • Create two separate outputs from the same input:
[in] split [out0][out1]
  • To create 3 or more outputs, you need to specify the number of outputs, like in:
[in] asplit=3 [out0][out1][out2]

视频合并淡入淡出效果


ffmpeg -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 \
-filter_complex "\
[0:v]setpts=PTS-STARTPTS[v1]; \
[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2];
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3];
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4];
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5];
[v1][v2]overlay[v12];
[v12][v3]overlay[v123];
[v123][v4]overlay[v1234];
[v1234][v5]overlay,format=yuv420p[v]" \
-map [v] result.mp4

加上audio,并且使用acrossfade:

ffmpeg -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 \
-filter_complex "\
[0:v]setpts=PTS-STARTPTS[v1]; \
[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2];
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3];
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4];
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5];
[v1][v2]overlay[v12];
[v12][v3]overlay[v123];
[v123][v4]overlay[v1234];
[v1234][v5]overlay,format=yuv420p[v]; \
[1][2]acrossfade=d=1[a12];
[a12][3]acrossfade=d=1[a123];
[a123][4]acrossfade=d=1[a]" \
-map [v] -map [a] result.mp4

这里的audio直接用[1],[2],[3],[4]表示,为了更直观点,应该写成:

ffmpeg -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 \
-filter_complex "\
[0:v]setpts=PTS-STARTPTS[v1]; \
[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2];
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3];
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4];
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5];
[v1][v2]overlay[v12];
[v12][v3]overlay[v123];
[v123][v4]overlay[v1234];
[v1234][v5]overlay,format=yuv420p[v]; \
[1:a][2:a]acrossfade=d=1[a12];
[a12][3:a]acrossfade=d=1[a123];
[a123][4:a]acrossfade=d=1[a]" \
-map [v] -map [a] result.mp4

前面的命令[0][1]直接写意思是input 0, input 1

[0:v] input 0 video stream
[0:a] input 0 audio stream

注意,在前面的filter_complex的最后一个标签后不能跟分号,跟了分号就报错,因为分号以为这后面还有filter chain,但是后面却是空的:

[AVFilterGraph @ 0x55a826aa5a60] No such filter: ''
Error initializing complex filters.
Invalid argument

FFmpeg Filters翻译文档
FFmpeg filter简介

http://www.hkea.cn/news/626639/

相关文章:

  • 南山做网站公司怎么选择企业seo优化服务
  • 什么 电子商务网站建设与管百度招商加盟
  • 南召微网站开发手机优化大师官方版
  • 营销型网站技术特点网站推广网
  • 龙游县住房和城乡建设局网站百度seo优化方法
  • 深圳方维网站建设设计个人网站
  • wordpress 流量站百度应用
  • ps素材网seo在线工具
  • 岳阳网站开发公司html网站模板免费
  • 怎样用模板做网站优化网站技术
  • 全国新型疫情最新情况长沙网站搭建优化
  • 郑州网站建设规划seo建站教程
  • 购物网站 购物车界面如何做百度搜索网
  • 推广网站的图片怎么做外贸平台
  • 新手如何给自己的网站做优化bt种子磁力搜索
  • 成都学校网站制作遵义网站seo
  • d?t网站模版宁波seo在线优化哪家好
  • c做的网站淄博做网站的公司
  • 网站开发制作公司郑州网站建设外包
  • 注册域名用个人还是公司好长沙seo优化排名
  • 电子商务网站建设与维护展望今日新闻联播
  • 网站建设主流技术站长之家ping检测
  • 温州建设集团有限公司网站首页百度手机版网页
  • 广西网络干部学院官网seo推广人员
  • 可以做红娘的相亲网站江北seo综合优化外包
  • 公司建设网站需要注意什么软文广告示范
  • 高端网站建设 引擎技企业网页
  • 模仿别人网站百度外链查询工具
  • 教程建设网站广告免费发布信息平台
  • wordpress php5.4支持宁波seo排名优化