ffmpeg文档38-视频源

38 视频源

下面是当前有效的视频源

buffer

缓冲视频帧,其可以作为滤镜链图的环节

它通常用于编程,特别是通过libavfilter/vsrc_buffer.h的接口。

接受如下参数:

  • video_size

    指定视频尺寸,(同时指定width 和 height)。语法同于ffmpeg-utils手册中的视频尺寸章节。

  • width

    输入视频宽

  • height

    输入视频高

  • pix_fmt

    像素格式描述,可以是一个表征像素格式的号码或者名称

  • time_base

    指定时间戳时基

  • frame_rate

    指定帧率 stream.

  • pixel_aspect, sar

    输入视频的像素长宽比。

  • sws_param

    指定一个可选参数用于在自动检测到输入视频大小或者格式变化时插入放缩滤镜。

例如:

buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1

其指定源为320x240分辨率,采样yuv410p的像素格式,时基为1/24秒,采样1:1的像素比。因为yuv410p对应的像素格式序号为6libavutil/pixfmt.h中的AVPixelFormat枚举中定义),所以上面又等效于

buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1

另外,选项可以字符串(以‘:’分隔)直接指定(没有选项名,按顺序给选项赋值(下面介绍选项的顺序)),但不建议使用这个语法:

width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den[:sws_param]

cellauto

创建一个模式生成的细胞自动发生器(就是细胞变化样的图)

细胞自动发送器的初始状态可以通过filename选项和pattern选项的模式来定义,如果不知道则是随机初始状态。

每个新帧中的一个新行视频充满了下一代细胞自动发生器的结果。当scroll选项被指定时,整个帧会被滚动填充。

接受如下选项:

  • filename, f

    用于读取细胞自动发生器初始状态的文件。在文件中第一行从行首开始每个非空字符被认为是活的细胞直到换行,更多行则被忽略

  • pattern, p

    用于定义细胞自动发生器初始状态,从指定字符串开始作为起始行

    每个非空字符作为一个细胞直到换行(或者字符串结束),更多的行被忽略

  • rate, r

    设置视频帧率,默认25

  • random_fill_ratio, ratio

    设置初始随机填充率,是浮点数,范围0-1,默认1/PHI

    此选项在指定了初始文件或模式时被忽略

  • random_seed, seed

    设置随机填充初始种子,必须是整数,范围0-UINT32_MAX。不指定或显式指定为-1,将尝试使用一个更好的随机种子

  • rule

    设置细胞自动发生规则,是0-255间数,默认110

  • size, s

    设置输出视频尺寸,语法同于ffmpeg-utils手册中的视频尺寸章节。

    如果filename或者pattern指定了,则尺寸默认为初始化行的宽度width,高为width * PHI

    如果尺寸被设置,其宽必须匹配pattern字符串中最大行。

    如果filenamepattern都没有指定,则默认为320x518(用作随机生成初始化)

  • scroll

    如果为1,向上滚出已经填满的行。如果为0 ,到最后一行后,新行将覆盖第一行,默认为1

  • start_full, full

    如果设置为1,则需要完全填满后才输出第一帧,这时默认行为,设置为0则禁用

  • stitch

    如果设置为1,左和右连接在一起,这是默认行为,为0则禁用

cellauto例子

  • pattern读取初始化,输出为 200x400.

    cellauto=f=pattern:s=200x400

  • 随机化输出初始化,宽200个细胞,填充率为2/3:

    cellauto=ratio=2/3:s=200x200

  • 以规则18创建一个由单细胞开始,初始化宽度为100的源:

    [email protected]:s=100x400:full=0:rule=18

  • 指定一个详细的初始模式:

    cellauto=p=‘@@ @ @@‘:s=100x400:full=0:rule=18

mandelbrot

生成一个曼德尔勃特(Mandelbrot)集合分形,它逐渐从点(start_x,start_y)放大

支持下列选项:

  • end_pts

    设置终端pts值,默认400.

  • end_scale

    设置终端缩放值,必须是浮点数,默认0.3.

  • inner

    设置内部着色模式,该算法用于绘制曼德布洛特分形内部区域.

    允许下面的值:

    black

      设置black模式.
    

    convergence

      设置时间收缩模式
    

    mincol

      设置基于点的颜色最接近的起源迭代
    

    period

      设置时间模式
    

    默认为mincol.

  • bailout

    设置bailout值,默认为10

  • maxiter

    设置最大迭代执行的渲染算法,默认7189.

  • outer

    设置外部着色模式,允许下面的值:

    iteration_count

      设置为迭代计算模式
    

    normalized_iteration_count

      设置为规范化的迭代计算模式
    

    默认为normalized_iteration_count.

  • rate, r

    设置帧率,可以是表达式和每秒帧数,默认为25

  • size, s

    设置帧尺寸,语法同于ffmpeg-utils手册中的视频尺寸章节. 默认"640x480".

  • start_scale

    设置初始化放大值,默认为3.0.

  • start_x

    设置初始化点的x坐标,必须是-100 到100间的浮点数,默认为 -0.743643887037158704752191506114774.

  • start_y

    设置初始化点的y坐标,必须是-100 到100间的浮点数,默认为-0.131825904205311970493132056385139.

mptestsrc

生成各种测试模式,以作为MPlayer测试滤镜。

生成视频是固定的256x256分辨率。这个源用于在特定编码功能测试

支持下面选项:

  • rate, r

    指定帧率,是默认每秒帧数数字。也可以以frame_rate_num/frame_rate_den格式设定整数和浮点数以及帧频短语都是有效值,默认25

  • duration, d

    设置持续时间秒数,语法同于持续时间章节,

    如果不指定或者指定为负数,表示持续不断

  • test, t

    设置测试项的数字或者名称,允许下面的值:

    dc_luma
    dc_chroma
    freq_luma
    freq_chroma
    amp_luma
    amp_chroma
    cbp
    mv
    ring1
    ring2
    all

    默认为"all",表示都要测试

例如:

mptestsrc=t=dc_luma

将进行dc_luma测试

frei0r源

提供一个frei0r源

编译需要frei0r头以及配置项--enable-frei0r,接受如下参数:

  • size

    生成视频大小。语法同于ffmpeg-utils手册中的视频尺寸章节.

  • framerate

    设置帧率,值为数字字符串,或者num/den形式字符串或者帧率短语

  • filter_name

    这个名字frei0r源到负载。获得有关frei0r的更多信息以及如何设置参数,读取文档中的frei0r视频滤镜部分。

  • filter_params

    由’|’分隔的参数列表传递给frei0r

例如:要产生一个200x200分辨率,帧率为10,产生一个frei0r源用作partik0l

frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay

life

产生life模式

这个源基于John Conway’s life游戏

源输入一个网格、每个像素(代表细胞)可以有2个状态,活或者死。每个细胞有8个邻国水平、垂直或对角相邻。

根据采用的规则发展网格,它指定邻居活细胞的数量会使细胞生存或出生,这里rule选项在下面介绍。

这个源支持下面的选项:

  • filename, f

    设置读取初始化网格的文件。在文件中每个非空字符代表存活的细胞,换行结束一行。

    如果没有指定则随机生成

  • rate, r

    设置视频帧率,默认25.

  • random_fill_ratio, ratio

    设置随机初始化随机网格填充率,值为0-1的浮点数,默认为1/PHI,在设置了filename时忽略

  • random_seed, seed

    设置随机种子,值为0 - UINT32_MAX如果设置为-1或者不设置,表示尽量用优化的种子

  • rule

    设置规则

    规则可以是指定代码的形式"SNS/BNB",这里NSNB是0-8的数字序数,NS在一个存活细胞周围还存活的细胞数,NB指定周围要新生的细胞数,sb分别是SB的替代

    另外一个规则可以被描述为18位的整数。其中高段9位表示存活细胞周围存活细胞状态数,低段9位则为要新生的细胞状态数。例如数字6153=(12<<9)+9,表示细胞周围有12个存活细胞,新生为9的规则,其等效于"S23/B03".

    默认为"S23/B3",它是原始的Conway’s 游戏规则。如果它周围有2或者3个细胞将新生细胞,否则将死亡细胞

  • size, s

    设置输出视频分辨率,语法同于ffmpeg-utils手册中的视频尺寸章节

    filename被设定,则默认会采用输入文件的最大行宽。如果设置了这个值则需与输入文件相匹配。

    如果没有设置filename则默认为 "320x240" (用于随机初始化模式).

  • stitch

    如果设置为1,则左右网格边和上下网格边缝合在一起(连续面),默认为1

  • mold

    设置细胞分解速度。如果设置,则为死细胞将从 death_colormold步骤内转变为 mold_color 的速度。范围0-255。

  • life_color

    设置存活的细胞颜色 (或新生)

  • death_color

    设置死亡细胞颜色。如果mold被设置,则为死亡后第一个颜色

  • mold_color

    设置分解后颜色,作为绝对死亡或已被分解的细胞颜色

    前面3个颜色选项其语法可同于ffmpeg-utils手册中的视频尺寸章节

life源例子

  • 从模板读取一个网格,分辨率为300x300:

    life=f=pattern:s=300x300

  • 填充率2/3的随机初始化,尺寸200x200, :

    life=ratio=2/3:s=200x200

  • 指定一个规则的随机初始化和生成:

    life=rule=S14/B34

  • 前面所有例子,且还伴有mold(分解)效果,在ffplay中播放:

    ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16

color, haldclutsrc, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc

  • color源提供一致的颜色输入
  • haldclutsrc源提供 哈尔德(Hald)CLUT输入,参考haldclut滤镜
  • nullsrc源返回未处理的视频帧,它主要用于分析/调试调试,或者作为滤镜中可以忽略的输入数据
  • rgbtestsrc源产生RGB测试模板,用于检测对比RGBBGR问题,应该可以看到一个红色、绿色和蓝色的从上到下条纹。
  • smptebars源产生颜色条模板,基于SMPTE Engineering Guideline EG 1-1990标准
  • smptehdbars源产生颜色条模板,基于SMPTE RP 219-2002标准
  • testsrc源产生测试视频模板,显示颜色模板和滚动的梯形以及时间戳。主要用于测试目的。

这些源支持下面一些参数:

  • color, c

    指定源颜色,仅作color源中有效,语法同于颜色

  • level

    指定Hald CLUT的层次。仅在haldclutsrc有效S。level中的N用于生成一个N*N*N像素为单位矩阵用于三维查找表。每个组件都是编码在1 /(N * N)范围内。

  • size, s

    指定源视频尺寸。语法同于ffmpeg-utils手册中的视频尺寸章节,默认值为320x240.

    这个选项在haldclutsrc中无效

  • rate, r

    设置帧率,语法同于ffmpeg-utils手册中的视频帧率章节,默认为25

  • sar

    设置样品长宽比(像素点长宽比)

  • duration, d

    设置源视频持续时间,语法同于持续时间章节.

    如果不设置或者设置为负数,表示持续存在。

  • decimals, n

    设置屏幕时间戳的小数数字显示,仅在testsrc源有效

    显示的时间戳值将对应于原来的时间戳值乘以10的X次方数的指定值。默认为0

例如:

testsrc=duration=5.3:size=qcif:rate=10

产生5.3秒的视频,视频尺寸是176x144,帧率为10

下面则产生红色源,有0.2透明度,尺寸为qcif(176x144),帧率为10

[email protected]:s=qcif:r=10

如果输入内容会被忽略,nullsrc可以被使用,下面的命令通过geq滤镜产生飞机飞过水稻的噪音

nullsrc=s=256x256, geq=random(1)*255:128:128

额外命令

color源还支持下面的命令:

  • c, color

    设置颜色来创建一个图像。其支持的语法同于颜色中的介绍。

时间: 2024-10-29 10:46:59

ffmpeg文档38-视频源的相关文章

ffmpeg文档41-多媒体源

41 多媒体源 下面是目前可用的多媒体源的描述 amovie 它同于movie源,除了它选择一个默认音频流. movie 从影片内容中读取音频和/或视频流 接受下面的参数: filename 要被读取的资源名(不限于文件,可以是设备或者一些协议下的流). format_name, f 对要读取的影片指定格式,可以是容器或者输入设备,如果没有指定,将从影片名中猜测. seek_point, sp 指定定位点,单位秒.表示输出的开始点.这个参数与av_strtod评估,所以数字可能后缀一个IS后缀.

ffmpeg文档35-音频源

35 音频源 下面介绍当前可用的音频源 abuffer 缓冲音频帧,作为滤镜链图中有效的组成(起点) 它主要编程使用,特别是通过libavfilter/asrc_abuffer.h中的接口进行调用. 接受如下参数: time_base 用于提交帧的时间戳时基.是浮点数或者分数形式. sample_rate 进入音频缓冲的采样率. sample_fmt 进入音频缓冲的采样格式.libavutil/samplefmt.h下AVSampleFormat枚举值中的一个格式名称或者对应的整数 channe

ffmpeg文档12视频解码器

12 视频解码器 介绍当前可用的一些视频解码器 rawvideo 用于RAW视频解码.即解码rawvideo流. rawvideo解码选项 top top_field_first 指定输入视频的呈现字段类型 -1 步进视频 (默认) 0 下场优先(底部优先) 1 上场优先(顶部优先)

【转】近200篇机器学习&amp;深度学习资料分享(含各种文档,视频,源码等)

编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定期的更新,望看到文章的朋友能够学到更多. <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost 到随机森林.Deep Learning. <Deep Learning in Neural Networks: An Overview> 介绍:这是瑞士人工智能实验室 Ju

近200篇机器学习&amp;深度学习资料分享(含各种文档,视频,源码等)(1)

原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定期的更新,望看到文章的朋友能够学到更多. <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost 到随机森林.Deep Learning. <Deep Learning i

ffmpeg文档43-开发者

43 开发者 是FFmpeg的开发者 关于作者的详细信息,可以观看项目(git://source.ffmpeg.org/ffmpeg)的Git历史,或者项目中目录中使用命令git log了解,或者浏览在线的源码(http://source.ffmpeg.org) 源代码树中维护者文件(MAINTAINERS)列出了特定组件的维护人员 另本文档英文版本由makeinfo于2015年6月16日生成 汉化翻译补充说明 由xdsnet(xdsnet at gmail dot com)在2015年6月16

ffmpeg文档27-输出设备

27 输出设备 输出设备是可配置用于ffmpeg写入多媒体数据的元素,其附加到系统的输出设备. 在编译配置ffmepg时,所有支持的输出设备都被默认允许.你可以使用配置选项–list-outdevs了解有哪些设备. 你可以通过–disable-outdevs禁止编译所有输出设备,然后再通过–enable-outdev=OUTDEV以支持个别的设备,也可以通过默认配置,再添加–disable-outdev=OUTDEV来禁用个别设备. 在ff*工具集中,-devices可以显示当前允许的输出设备.

ffmpeg文档26-输入设备

26 输入设备 FFmpeg中的输入设备配置元素用来启用对附加到您的系统一个多媒体设备访问数据. 当编译时,默认会支持所有的输入设备.你可以通过在配置脚本执行时附加–list-indevs了解到支持的设备. 可以通过–disable-indevs在编译时禁用所有输入设备,也可以在此基础上通过–enable-indev=INDEV允许个别设备,或者在默认支持基础上通过–disable-indev=INDEV禁用个别设备支持达到类似的目的. 在ff*工具集中,使用-devices可以获取当前支持的设

ffmpeg文档05-选项

5 选项 所有的数值选项,如果没有特殊定义,则需要一个接受一个字符串代表一个数作为输入,这可能跟着一个单位量词首字母,例如"k","m"或"G" 如果i是附加到SI单位的首字母,完整的字母将被解释为一个2的幂数单位,这是基于1024而不是1000的,添加B的SI单位则是再将此值乘以8.例如KB,MiB,G和B 对于选项中不带参数的布尔选项,即把相应的值设置为true,它们可以添加no设置为false,例如nofoo就相当于foo false .