17.设备选项
libavdevice
库提供与libavformat
相同的接口。 即,输入设备被视为分路器,输出设备如复用器,接口和通用设备选项与libavformat
相同(参见ffmpeg-formats
手册)。
此外,每个输入或输出设备可以支持所谓的私有选项,其特定于该组件。
可以通过在FFmpeg
工具中指定-option
值,或通过在设备AVFormatContext
选项中显式设置值或使用libavutil / opt.h``API
进行编程来设置选项。
18.输入设备
输入设备是FFmpeg
中配置的元素,可以访问来自连接到系统的多媒体设备的数据。
配置FFmpeg
构建时,默认情况下会启用所有支持的输入设备。 您可以使用配置选项-list-indevs
列出所有可用的列表。
您可以使用configure
选项-disable-indevs
禁用所有输入设备,并使用选项-enable-indev = INDEV
选择性地启用输入设备,或者可以使用选项-disable
禁用特定输入设备-indev= INDEV
。
ff *
工具的选项-devices
将显示支持的输入设备列表。
下面是对当前可用输入设备的描述。
18.1 alsa
ALSA
(高级Linux
声音架构)输入设备。
要在配置期间启用此输入设备,您需要在系统上安装libasound
。
该设备允许从ALSA
设备捕获。 要捕获的设备的名称必须是ALSA
卡标识符。
ALSA
标识符具有以下语法:
hw:CARD[,DEV[,SUBDEV]]
DEV
和SUBDEV
组件是可选的。
三个参数(按顺序:CARD,DEV,SUBDEV
)指定卡号或标识符,设备号和子设备号(-1
表示任意)。
要查看系统当前识别的卡列表,请检查文件/ proc / asound / cards
和/ proc / asound / devices
。
例如,要使用卡ID
为0
的ALSA
设备从ffmpeg
捕获,可以运行以下命令:
ffmpeg -f alsa -i hw:0 alsaout.wav
学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
18.1.1 选项
sample_rate
以Hz
为单位设置采样率。 默认值为48000
。
channels
设置通道数。 默认值为2
。
18.2 android_camera
Android
相机输入设备。
此输入设备使用Android Camera2 NDK API
,该API
可在API
级别为24+
的设备上使用。 在配置期间自动检测android_camera
的可用性。
该设备允许从Android
设备上的所有摄像头进行捕获,这些摄像头集成在Camera2 NDK API
中。
可用的摄像机在内部枚举,可以使用camera_index
参数进行选择。 输入文件字符串将被丢弃。
通常,后置摄像头的索引为0
,而前置摄像头的索引为1
。
18.2.1 选项
video_size
将视频大小设置为字符串,例如640x480
或hd720
。 如果请求的视频大小不可用或默认情况下,则回退到Android
报告的第一个可用配置。
framerate
设置视频帧率。 如果请求的帧速率不可用或默认情况下(-1
),则回退到Android
报告的第一个可用配置。
camera_index
设置要使用的摄像机的索引。 默认值为0
。
input_queue_size
设置要缓冲的最大帧数。 默认值为5
。
18.3 avfoundation
AVFoundation
输入设备。
AVFoundation
是Apple
目前推荐的用于在OSX> = 10.7
以及iOS
上进行流式处理的框架。
输入文件名必须使用以下语法给出:
-i "[[VIDEO]:[AUDIO]]"
第一个条目选择视频输入,而后者选择音频输入。 流必须由设备名称或设备索引指定,如设备列表所示。 或者,可以使用-video_device_index <INDEX>'
和/
或-audio_device_index <INDEX>
通过索引选择视频和/或音频输入设备,覆盖输入文件名中给出的任何设备名称或索引。
可以使用-list_devices true
枚举所有可用设备,列出所有设备名称和相应的索引。
有两个设备名称别名:
default
选择相应类型的AVFoundation
默认设备。
none
不记录相应的媒体类型。 这相当于指定空设备名称或索引。
18.3.1 选项
AVFoundation
支持以下选项:
-list_devices <TRUE | FALSE>
如果设置为true
,则会显示所有可用输入设备的列