30. 视频源
以下是当前可用视频源的说明。
30.1 buffer
缓冲视频帧,并使其可用于过滤器链。
该源主要用于编程用途,特别是通过'libavfilter/vsrc_buffer.h'
中定义的接口。
它接受以下参数:
video_size
指定缓冲视频帧的大小(宽度和高度)。有关此选项的语法,请参考(ffmpeg-utils)视频大小语法
。
width
输入视频宽度。
height
输入视频高度。
pix_fmt
表示缓冲视频帧的像素格式的字符串。它可以是对应于像素格式的数字或像素格式名称。
time_base
指定缓冲帧的时间戳假定的时基。
frame_rate
指定视频流的预期帧速率。
pixel_aspect,sar
输入视频的样本(像素)宽高比。
sws_param
指定用于缩放过滤器的可选参数,当在输入大小或格式中检测到输入更改时,该过滤器将自动插入。
hw_frames_ctx
使用硬件像素格式时,这应该是对描述输入帧的AVHWFramesContext
的引用。
例如:
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
将指示源接受大小为320x240
且格式为yuv410p
的视频帧,假设时间戳为时基和方形像素(1:1
样本宽高比)的1/24
。由于名称为yuv410p
的像素格式对应于数字6
(检查'libavutil / 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]
学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
30.2 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*PHI
。
如果设置了'size'
,则它必须包含指定模式字符串的宽度,并且指定的模式将在较大的行中居中。
如果未指定文件名或模式字符串,则大小值默认为“320x518”
(用于随机生成的初始状态&#