翻译ffmpeg-all文档(27),输出设备

1580阅读 0评论2015-07-20 xdsnet
分类:其他平台

输出设备

输出设备是可配置用于ffmpeg写入多媒体数据的元素,其附加到系统的输出设备。

在编译配置ffmepg时,所有支持的输出设备都被默认允许。你可以使用配置选项–list-outdevs了解有哪些设备。

你可以通过–disable-outdevs禁止编译所有输出设备,然后再通过–enable-outdev=OUTDEV以支持个别的设备,也可以通过默认配置,再添加–disable-outdev=OUTDEV来禁用个别设备。

在ff*工具集中,-devices可以显示当前允许的输出设备。

当前有效的输出设备介绍见下。

alsa

ALSA(Advanced Linux Sound Architecture) 音频输出设备

alsa例子

这个输出设备允许在CACA窗口显示视频流。每个程序仅有一个CACA窗口。所以在一个实例中你只能有一个CACA输出。

要允许这个输出设备,需要编译时配置--enable-libcacalibcaca是一个输出文本而不是像素的图形库。

关于libcaca的更多信息参考http://linux-fbdev.sourceforge.net/fbset(1)

opengl

OpenGL输出设备

编译允许配置选项--enable-opengl

这个输出设备允许渲染输出OpenGL内容。内容可以是由程序提供或者默认创建的的SDL窗口。

当设备呈现到外部环境时,程序必须实现处理如下的消息:

opengl选项

opengl例子

使用OpenGL渲染播放到SDL窗口

ffmpeg  -i INPUT -f opengl "window title" 

oss

OSS(open Sound System)输出设备

pulse

PulseAudio输出设备

编译选项开关--enable-libpulse

更多关于PulseAudio信息参考

sdl

SDL(Simple DirectMedia Layer)输出设备

其可以允许在SDL窗口上显示视频流。每个进程仅能创建一个SDL窗口所以你的程序实例只有一个SDL设备输出。

编译需要libsdl库。

关于SDL的更多信息参考

sdl选项

  • window_title

    设置SDL窗口标题,如果没有指定,则用输出文件名

  • icon_title

    置图标化SDL窗口的名称,如果没有指定则采用和window_title

  • window_size

    设置SDL窗口尺寸,可以是widthxheight格式,也可以是视频尺寸短语。如果没有指定则以输入文件的等比例填充放大最大可能值(某边和屏幕窗口边重合)

  • window_fullscreen

    非0则设置全屏模式,默认为0

sdl交换命令

  • 窗口创建的设备可以通过下面的交互式控制命令;

    Quit the device immediately.

sdl例子

下面强制以qcif尺寸标准中SDL窗口上显示图像

andio

sndio 音频输出设备

xv ###

XV(XVideo)输出设备

这个X环境设备允许在Xwindow系统的一个窗口上显示视频流

xv选项

  • display_name

    指定用在显示的硬件名,它决定了显示和通信

    显示名或者DISPLAY环境变量值是一个格式字符串hostname[:number[.screen_number]]

    hostname是指定了主机的物理连接,number指明了在主机上显示服务索引号,screen_number指定了服务上的那个屏幕

    如果不指定,则采用DISPLAY环境变量值

    例如:dual-headed:0.1指定了是dual-headed主机上的0号显示服务的1号屏幕

    通过X11介绍了解更多关于显示名的格式信息

  • window_id

    为非0值表示不创建新窗口而是使用已有的window_id窗口(如果该window_id窗口已经存在)。默认为0表示创建自己的窗口。

  • window_size

    设置窗口尺寸,参数可以是widthxheight或者视频尺寸短语。如果不指定,则默认以输入视频尺寸,当window_id被设置时忽略

  • window_x
  • window_y

    设置创建窗口的坐标偏移。默认都为0.它可能被窗口管理器忽略。当window_id被设置后被忽略。

  • window_title

    设置窗口标题,如果不设置默认以输出文件名作为值,当window_id被设置后被忽略

xv例子

  • 同时解码、显示和编码输入

    ffmpeg -i INPUT OUTPUT -f xv display

  • 解码显示输入视频到多个X11窗口:

    ffmpeg -i INPUT -f xv normal -vf negate -f xv negated

上一篇:翻译ffmpeg-all文档(26),输入设备
下一篇:翻译ffmpeg-all文档(28),重采样选项