Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com> Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
		
			
				
	
	
		
			290 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			290 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@chapter Output Devices
 | 
						|
@c man begin OUTPUT DEVICES
 | 
						|
 | 
						|
Output devices are configured elements in FFmpeg that can write
 | 
						|
multimedia data to an output device attached to your system.
 | 
						|
 | 
						|
When you configure your FFmpeg build, all the supported output devices
 | 
						|
are enabled by default. You can list all available ones using the
 | 
						|
configure option "--list-outdevs".
 | 
						|
 | 
						|
You can disable all the output devices using the configure option
 | 
						|
"--disable-outdevs", and selectively enable an output device using the
 | 
						|
option "--enable-outdev=@var{OUTDEV}", or you can disable a particular
 | 
						|
input device using the option "--disable-outdev=@var{OUTDEV}".
 | 
						|
 | 
						|
The option "-formats" of the ff* tools will display the list of
 | 
						|
enabled output devices (amongst the muxers).
 | 
						|
 | 
						|
A description of the currently available output devices follows.
 | 
						|
 | 
						|
@section alsa
 | 
						|
 | 
						|
ALSA (Advanced Linux Sound Architecture) output device.
 | 
						|
 | 
						|
@section caca
 | 
						|
 | 
						|
CACA output device.
 | 
						|
 | 
						|
This output device allows to show a video stream in CACA window.
 | 
						|
Only one CACA window is allowed per application, so you can
 | 
						|
have only one instance of this output device in an application.
 | 
						|
 | 
						|
To enable this output device you need to configure FFmpeg with
 | 
						|
@code{--enable-libcaca}.
 | 
						|
libcaca is a graphics library that outputs text instead of pixels.
 | 
						|
 | 
						|
For more information about libcaca, check:
 | 
						|
@url{http://caca.zoy.org/wiki/libcaca}
 | 
						|
 | 
						|
@subsection Options
 | 
						|
 | 
						|
@table @option
 | 
						|
 | 
						|
@item window_title
 | 
						|
Set the CACA window title, if not specified default to the filename
 | 
						|
specified for the output device.
 | 
						|
 | 
						|
@item window_size
 | 
						|
Set the CACA window size, can be a string of the form
 | 
						|
@var{width}x@var{height} or a video size abbreviation.
 | 
						|
If not specified it defaults to the size of the input video.
 | 
						|
 | 
						|
@item driver
 | 
						|
Set display driver.
 | 
						|
 | 
						|
@item algorithm
 | 
						|
Set dithering algorithm. Dithering is necessary
 | 
						|
because the picture being rendered has usually far more colours than
 | 
						|
the available palette.
 | 
						|
The accepted values are listed with @code{-list_dither algorithms}.
 | 
						|
 | 
						|
@item antialias
 | 
						|
Set antialias method. Antialiasing smoothens the rendered
 | 
						|
image and avoids the commonly seen staircase effect.
 | 
						|
The accepted values are listed with @code{-list_dither antialiases}.
 | 
						|
 | 
						|
@item charset
 | 
						|
Set which characters are going to be used when rendering text.
 | 
						|
The accepted values are listed with @code{-list_dither charsets}.
 | 
						|
 | 
						|
@item color
 | 
						|
Set color to be used when rendering text.
 | 
						|
The accepted values are listed with @code{-list_dither colors}.
 | 
						|
 | 
						|
@item list_drivers
 | 
						|
If set to @option{true}, print a list of available drivers and exit.
 | 
						|
 | 
						|
@item list_dither
 | 
						|
List available dither options related to the argument.
 | 
						|
The argument must be one of @code{algorithms}, @code{antialiases},
 | 
						|
@code{charsets}, @code{colors}.
 | 
						|
@end table
 | 
						|
 | 
						|
@subsection Examples
 | 
						|
 | 
						|
@itemize
 | 
						|
@item
 | 
						|
The following command shows the @command{ffmpeg} output is an
 | 
						|
CACA window, forcing its size to 80x25:
 | 
						|
@example
 | 
						|
ffmpeg -i INPUT -vcodec rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
 | 
						|
@end example
 | 
						|
 | 
						|
@item
 | 
						|
Show the list of available drivers and exit:
 | 
						|
@example
 | 
						|
ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
 | 
						|
@end example
 | 
						|
 | 
						|
@item
 | 
						|
Show the list of available dither colors and exit:
 | 
						|
@example
 | 
						|
ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
 | 
						|
@end example
 | 
						|
@end itemize
 | 
						|
 | 
						|
@section fbdev
 | 
						|
 | 
						|
Linux framebuffer output device.
 | 
						|
 | 
						|
The Linux framebuffer is a graphic hardware-independent abstraction
 | 
						|
layer to show graphics on a computer monitor, typically on the
 | 
						|
console. It is accessed through a file device node, usually
 | 
						|
@file{/dev/fb0}.
 | 
						|
 | 
						|
For more detailed information read the file
 | 
						|
@file{Documentation/fb/framebuffer.txt} included in the Linux source tree.
 | 
						|
 | 
						|
@subsection Options
 | 
						|
@table @option
 | 
						|
 | 
						|
@item xoffset
 | 
						|
@item yoffset
 | 
						|
Set x/y coordinate of top left corner. Default is 0.
 | 
						|
@end table
 | 
						|
 | 
						|
@subsection Examples
 | 
						|
Play a file on framebuffer device @file{/dev/fb0}.
 | 
						|
Required pixel format depends on current framebuffer settings.
 | 
						|
@example
 | 
						|
ffmpeg -re -i INPUT -vcodec rawvideo -pix_fmt bgra -f fbdev /dev/fb0
 | 
						|
@end example
 | 
						|
 | 
						|
See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
 | 
						|
 | 
						|
@section oss
 | 
						|
 | 
						|
OSS (Open Sound System) output device.
 | 
						|
 | 
						|
@section pulse
 | 
						|
 | 
						|
PulseAudio output device.
 | 
						|
 | 
						|
To enable this output device you need to configure FFmpeg with @code{--enable-libpulse}.
 | 
						|
 | 
						|
More information about PulseAudio can be found on @url{http://www.pulseaudio.org}
 | 
						|
 | 
						|
@subsection Options
 | 
						|
@table @option
 | 
						|
 | 
						|
@item server
 | 
						|
Connect to a specific PulseAudio server, specified by an IP address.
 | 
						|
Default server is used when not provided.
 | 
						|
 | 
						|
@item name
 | 
						|
Specify the application name PulseAudio will use when showing active clients,
 | 
						|
by default it is the @code{LIBAVFORMAT_IDENT} string.
 | 
						|
 | 
						|
@item stream_name
 | 
						|
Specify the stream name PulseAudio will use when showing active streams,
 | 
						|
by default it is set to the specified output name.
 | 
						|
 | 
						|
@item device
 | 
						|
Specify the device to use. Default device is used when not provided.
 | 
						|
List of output devices can be obtained with command @command{pactl list sinks}.
 | 
						|
 | 
						|
@end table
 | 
						|
 | 
						|
@subsection Examples
 | 
						|
Play a file on default device on default server:
 | 
						|
@example
 | 
						|
ffmpeg  -i INPUT -f pulse "stream name"
 | 
						|
@end example
 | 
						|
 | 
						|
@section sdl
 | 
						|
 | 
						|
SDL (Simple DirectMedia Layer) output device.
 | 
						|
 | 
						|
This output device allows to show a video stream in an SDL
 | 
						|
window. Only one SDL window is allowed per application, so you can
 | 
						|
have only one instance of this output device in an application.
 | 
						|
 | 
						|
To enable this output device you need libsdl installed on your system
 | 
						|
when configuring your build.
 | 
						|
 | 
						|
For more information about SDL, check:
 | 
						|
@url{http://www.libsdl.org/}
 | 
						|
 | 
						|
@subsection Options
 | 
						|
 | 
						|
@table @option
 | 
						|
 | 
						|
@item window_title
 | 
						|
Set the SDL window title, if not specified default to the filename
 | 
						|
specified for the output device.
 | 
						|
 | 
						|
@item icon_title
 | 
						|
Set the name of the iconified SDL window, if not specified it is set
 | 
						|
to the same value of @var{window_title}.
 | 
						|
 | 
						|
@item window_size
 | 
						|
Set the SDL window size, can be a string of the form
 | 
						|
@var{width}x@var{height} or a video size abbreviation.
 | 
						|
If not specified it defaults to the size of the input video,
 | 
						|
downscaled according to the aspect ratio.
 | 
						|
 | 
						|
@item window_fullscreen
 | 
						|
Set fullscreen mode when non-zero value is provided.
 | 
						|
Zero is a default.
 | 
						|
@end table
 | 
						|
 | 
						|
@subsection Examples
 | 
						|
 | 
						|
The following command shows the @command{ffmpeg} output is an
 | 
						|
SDL window, forcing its size to the qcif format:
 | 
						|
@example
 | 
						|
ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
 | 
						|
@end example
 | 
						|
 | 
						|
@section sndio
 | 
						|
 | 
						|
sndio audio output device.
 | 
						|
 | 
						|
@section xv
 | 
						|
 | 
						|
XV (XVideo) output device.
 | 
						|
 | 
						|
This output device allows to show a video stream in a X Window System
 | 
						|
window.
 | 
						|
 | 
						|
@subsection Options
 | 
						|
 | 
						|
@table @option
 | 
						|
@item display_name
 | 
						|
Specify the hardware display name, which determines the display and
 | 
						|
communications domain to be used.
 | 
						|
 | 
						|
The display name or DISPLAY environment variable can be a string in
 | 
						|
the format @var{hostname}[:@var{number}[.@var{screen_number}]].
 | 
						|
 | 
						|
@var{hostname} specifies the name of the host machine on which the
 | 
						|
display is physically attached. @var{number} specifies the number of
 | 
						|
the display server on that host machine. @var{screen_number} specifies
 | 
						|
the screen to be used on that server.
 | 
						|
 | 
						|
If unspecified, it defaults to the value of the DISPLAY environment
 | 
						|
variable.
 | 
						|
 | 
						|
For example, @code{dual-headed:0.1} would specify screen 1 of display
 | 
						|
0 on the machine named ``dual-headed''.
 | 
						|
 | 
						|
Check the X11 specification for more detailed information about the
 | 
						|
display name format.
 | 
						|
 | 
						|
@item window_size
 | 
						|
Set the created window size, can be a string of the form
 | 
						|
@var{width}x@var{height} or a video size abbreviation. If not
 | 
						|
specified it defaults to the size of the input video.
 | 
						|
 | 
						|
@item window_x
 | 
						|
@item window_y
 | 
						|
Set the X and Y window offsets for the created window. They are both
 | 
						|
set to 0 by default. The values may be ignored by the window manager.
 | 
						|
 | 
						|
@item window_title
 | 
						|
Set the window title, if not specified default to the filename
 | 
						|
specified for the output device.
 | 
						|
@end table
 | 
						|
 | 
						|
For more information about XVideo see @url{http://www.x.org/}.
 | 
						|
 | 
						|
@subsection Examples
 | 
						|
 | 
						|
@itemize
 | 
						|
@item
 | 
						|
Decode, display and encode video input with @command{ffmpeg} at the
 | 
						|
same time:
 | 
						|
@example
 | 
						|
ffmpeg -i INPUT OUTPUT -f xv display
 | 
						|
@end example
 | 
						|
 | 
						|
@item
 | 
						|
Decode and display the input video to multiple X11 windows:
 | 
						|
@example
 | 
						|
ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
 | 
						|
@end example
 | 
						|
@end itemize
 | 
						|
 | 
						|
@c man end OUTPUT DEVICES
 |