分类: 其他平台
2015-07-20 08:50:43
输出设备是可配置用于ffmpeg写入多媒体数据的元素,其附加到系统的输出设备。
在编译配置ffmepg时,所有支持的输出设备都被默认允许。你可以使用配置选项–list-outdevs
了解有哪些设备。
你可以通过–disable-outdevs
禁止编译所有输出设备,然后再通过–enable-outdev=OUTDEV
以支持个别的设备,也可以通过默认配置,再添加–disable-outdev=OUTDEV
来禁用个别设备。
在ff*工具集中,-devices
可以显示当前允许的输出设备。
当前有效的输出设备介绍见下。
ALSA(Advanced Linux Sound Architecture) 音频输出设备
在默认ALSA设备播放:
ffmpeg -i INPUT -f alsa default
在声卡1的7音频设备播放:
ffmpeg -i INPUT -f alsa hw:1,7
CACA输出设备
这个输出设备允许在CACA窗口显示视频流。每个程序仅有一个CACA窗口。所以在一个实例中你只能有一个CACA输出。
要允许这个输出设备,需要编译时配置--enable-libcaca
,libcaca
是一个输出文本而不是像素的图形库。
关于libcaca的更多信息参考http://linux-fbdev.sourceforge.net/的fbset(1)
OpenGL输出设备
编译允许配置选项--enable-opengl
这个输出设备允许渲染输出OpenGL内容。内容可以是由程序提供或者默认创建的的SDL窗口。
当设备呈现到外部环境时,程序必须实现处理如下的消息:
background
设置背景颜色,默认为Black
(黑色)
no_window
非0表示禁止默认的SDL窗口。程序必须提供OpenGL环境(上下文)同时设置 window_size_cb
与window_swap_buffers_cb
两个回调
window_title
设置SDL窗口标题,如果没有指定将以指代输出设备的文件名作为默认。当no_window
设置时会被忽略。
window_size
设置首选窗口尺寸,可以是形如widthxheight
的字符串参数或者视频尺寸短语。如果不指定则默认以输入视频尺寸进行等比例缩放(让高或者宽恰好等于窗口最大可能且完全展示的尺寸)。如果no_window
没有设置可用
使用OpenGL渲染播放到SDL窗口
ffmpeg -i INPUT -f opengl "window title"
OSS(open Sound System)输出设备
PulseAudio输出设备
编译选项开关--enable-libpulse