<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thehtoad</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thehtoad"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Thehtoad/"/>
	<updated>2026-11-04T16:54:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Streaming_HowTo/VLM&amp;diff=15220</id>
		<title>Documentation:Streaming HowTo/VLM</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Streaming_HowTo/VLM&amp;diff=15220"/>
		<updated>2010-01-04T23:41:44Z</updated>

		<summary type="html">&lt;p&gt;Thehtoad: /* Configuration Files */  spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightMenu|documentation streaming howto toc}}&lt;br /&gt;
&lt;br /&gt;
==VLM==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;VideoLAN Manager&#039;&#039; is a small media manager designed to control multiple streams with &#039;&#039;only one instance of VLC&#039;&#039;. It allows multiple streaming and video on demand (VoD). This manager being a new feature, it can only be controlled by the telnet interface or the http interface.&lt;br /&gt;
&lt;br /&gt;
===Interfaces===&lt;br /&gt;
&lt;br /&gt;
====Telnet interface====&lt;br /&gt;
&lt;br /&gt;
You can launch the telnet interface as a common interface using the command line:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --intf telnet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc --extraintf telnet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The telnet interface can also be launched in the wxWindows interface:&lt;br /&gt;
&lt;br /&gt;
http://www.videolan.org/doc/streaming-howto/en/images/streaming-howto/intf-wx-extraintf-telnet.jpg Launching the Telnet interface - wxWindows interface&lt;br /&gt;
&lt;br /&gt;
The default port is 4212. The default password is &amp;quot;admin&amp;quot;. These can be changed using &#039;&#039;&#039;--telnet-port &amp;lt;integer&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;--telnet-password &amp;lt;string&amp;gt;&#039;&#039;&#039; command line options. They can also be changed in the preferences panel when using the wxWindows interface in the &#039;&#039;Modules&#039;&#039;-&amp;gt;&#039;&#039;interface&#039;&#039;-&amp;gt;&#039;&#039;telnet&#039;&#039; section (check the &#039;&#039;Advanced options&#039;&#039; checkbox).&lt;br /&gt;
&lt;br /&gt;
====HTTP interface====&lt;br /&gt;
&lt;br /&gt;
Launching the HTTP interface is described in [[Control_VLC_via_a_browser]] &lt;br /&gt;
&lt;br /&gt;
To access the vlm section of the http interface, use the following URL: &#039;&#039;http://host:port/vlm.html&#039;&#039; (&#039;&#039;http://host:port/vlm/&#039;&#039; for VLC 0.8.4 and older).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; People who aren&#039;t used to command line streaming with VLC but want to use VLM&#039;s features are advised to use the HTTP interface.&lt;br /&gt;
&lt;br /&gt;
===VLM Elements===&lt;br /&gt;
&lt;br /&gt;
====Medias====&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;Media&#039;&#039; is composed with a list of inputs (the video and audio streams you want to stream), an output (how and where you want to stream them) and some options.&lt;br /&gt;
&lt;br /&gt;
There are two types of medias:&lt;br /&gt;
*&#039;&#039;&#039;vod&#039;&#039;&#039;: A vod media is commonly used for Video on Demand. It will be launched only if a vod client asks for it.&lt;br /&gt;
*&#039;&#039;&#039;broadcast&#039;&#039;&#039;: A broadcast media is very close to a TV program or channel. It is launched, stopped or paused by the administrator and may be repeated several times. The client has no control over this media.&lt;br /&gt;
&lt;br /&gt;
====Schedules====&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;Schedule&#039;&#039; is a script with a date. When the schedule date is reached, the script is launched. There are several options available like a period or a number of repetitions.&lt;br /&gt;
&lt;br /&gt;
===Command line syntax===&lt;br /&gt;
&lt;br /&gt;
====Command lines====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;help&#039;&#039;&#039;: Displays an exhaustive command lines list&lt;br /&gt;
*&#039;&#039;&#039;new (name) vod|broadcast|schedule [properties]&#039;&#039;&#039;: Create a new vod, broadcast or schedule element. Element names must be unique and cannot be &amp;quot;media&amp;quot; or &amp;quot;schedule&amp;quot;. You can specify properties in this command line or later on by using the &#039;&#039;&#039;setup&#039;&#039;&#039; command.&lt;br /&gt;
*&#039;&#039;&#039;setup (name) (properties)&#039;&#039;&#039;: Set an elements property. See &amp;lt;xref linkend=&amp;quot;vlmprop&amp;quot; endterm=&amp;quot;tvlmprop&amp;quot; /&amp;gt;.&lt;br /&gt;
*&#039;&#039;&#039;show [(name)|media|schedule]&#039;&#039;&#039;: Display current element states and configurations.&lt;br /&gt;
**&#039;&#039;&#039;show (name)&#039;&#039;&#039;: Specify an element&#039;s name to show all information concerning this element.&lt;br /&gt;
**&#039;&#039;&#039;show media&#039;&#039;&#039; displays a summary of media states.&lt;br /&gt;
**&#039;&#039;&#039;show schedule&#039;&#039;&#039; displays a summary of schedule states.&lt;br /&gt;
*&#039;&#039;&#039;del (name)|all|media|schedule&#039;&#039;&#039;: Delete an element or a group of elements. If the element wasn&#039;t stopped, it is first stopped before being deleted.&lt;br /&gt;
**&#039;&#039;&#039;del (name)&#039;&#039;&#039;: Delete the (name) element.&lt;br /&gt;
**&#039;&#039;&#039;del all&#039;&#039;&#039;: Delete all elements&lt;br /&gt;
**&#039;&#039;&#039;del media&#039;&#039;&#039;: Delete all media elements.&lt;br /&gt;
**&#039;&#039;&#039;del schedule&#039;&#039;&#039;: Delete all schedule elements.&lt;br /&gt;
*&#039;&#039;&#039;control (name) [instance_name] (command)&#039;&#039;&#039;: Change the state of the (instance_name) instance of the (name) media. If (instance_name) isn&#039;t specified, the control command affects the default instance. See &amp;lt;xref linkend=&amp;quot;vlmctrl&amp;quot; endterm=&amp;quot;tvlmctrl&amp;quot; /&amp;gt; for available control commands.&lt;br /&gt;
*&#039;&#039;&#039;save (config_file)&#039;&#039;&#039;: Save all media and schedule configurations in the specified config file. The config file path is relative to the directory in which vlc was launched. If the file exists it will be overwritten. Note that states, such as playing, paused or stop, are not saved. See &amp;lt;xref linkend=&amp;quot;vlmconf&amp;quot; endterm=&amp;quot;tvlmconf&amp;quot; /&amp;gt; for more info.&lt;br /&gt;
*&#039;&#039;&#039;load (config_file)&#039;&#039;&#039;: Load a configuration file. The config file path is relative to the directory in which vlc was launched. See &amp;lt;xref linkend=&amp;quot;vlmconf&amp;quot; endterm=&amp;quot;tvlmconf&amp;quot;/&amp;gt; for more info.&lt;br /&gt;
&lt;br /&gt;
====Media Properties====&lt;br /&gt;
&lt;br /&gt;
Note: Except the &amp;quot;append&amp;quot; property, all properties can be followed by another one.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;input (input_name)&#039;&#039;&#039;: Add an input to the end of the media&#039;s input list.&lt;br /&gt;
*&#039;&#039;&#039;output (output_name)&#039;&#039;&#039;: Define the media&#039;s output. The syntax is the same as the vlc &amp;quot;:sout=...&amp;quot; vlc option but you do not have to put the &amp;quot;:sout=...&amp;quot; string. See &amp;lt;xref linkend=&amp;quot;cmdline&amp;quot; endterm=&amp;quot;tcmdline&amp;quot; /&amp;gt; for more information concerning stream outputs (sout). Note: You do not have to specify an output for vod elements.&lt;br /&gt;
*&#039;&#039;&#039;option (option_name)[=value]&#039;&#039;&#039; : Adds the (option_name) to the media option list. The syntax is equivalent to the &amp;quot;:(option)=...&amp;quot; option , but you do not have to put the &amp;quot;:&amp;quot; string. Options are global: they are applied to all inputs of the media.&lt;br /&gt;
*&#039;&#039;&#039;enabled|disabled&#039;&#039;&#039;: Enable or Disable the media. If a media is disabled, it cannot be streamed, paused, launched by a schedule, or played as VoD.&lt;br /&gt;
*&#039;&#039;&#039;loop|unloop (broadcast only)&#039;&#039;&#039;: If a media with the &amp;quot;loop&amp;quot; option receives the &amp;quot;play&amp;quot; command, it will  automatically restart to play the input list once the end of the input list is reached. Note: &#039;&#039;&#039;loop|unloop&#039;&#039;&#039; is only used for broadcast media types.&lt;br /&gt;
*&#039;&#039;&#039;mux (mux_name)&#039;&#039;&#039;: This option should only be specified if you want the elementary streams to be sent encapsulated instead of raw. The (mux_name) should be specified as a four characters length identifier such as mp2t for MPEG TS or mp2p for MPEG PS. See &amp;lt;xref linkend=&amp;quot;smc&amp;quot; endterm=&amp;quot;tsmc&amp;quot; /&amp;gt;. Note: The &#039;&#039;&#039;mux&#039;&#039;&#039; property is only used for vod media types.&lt;br /&gt;
&lt;br /&gt;
====Schedule Properties====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;enabled|disabled&#039;&#039;&#039;: A disabled schedule will never be launched.&lt;br /&gt;
*&#039;&#039;&#039;append (command_until_rest_of_the_line)&#039;&#039;&#039;: Add a command to the command line lit. The command line can be every command VLM can understand. Note: The rest of the line will be considered as part of the command line. You cannot put another option after the &#039;&#039;&#039;append&#039;&#039;&#039; one.&lt;br /&gt;
*&#039;&#039;&#039;date (year)/(month)/(day)-(hour):(minutes):(seconds)|now&#039;&#039;&#039;: Specify the first date the schedule should be launched. You can specify a date using the &#039;&#039;&#039;(year)/(month)/(day)-(hour):(minutes):(seconds)&#039;&#039;&#039; format (example: 2004/11/16-00:43:12) or using the &#039;&#039;&#039;now&#039;&#039;&#039; keyword. If &#039;&#039;&#039;now&#039;&#039;&#039; is used, the schedule will be launched as soon as possible (i.e. as soon as it is enabled) and the current date will be used as the first date of the schedule.&lt;br /&gt;
*&#039;&#039;&#039;period (years_aka_12_months)/(months_aka_30_days)/(days)-(hours):(minutes):(seconds)&#039;&#039;&#039;: Specify the period of time a schedule must wait for launching itself another time. (Months are considered as 30 days, Years as 12 months) If a period is specified without a &#039;&#039;&#039;repeat&#039;&#039;&#039; property, the schedule will be launched endlessly.&lt;br /&gt;
*&#039;&#039;&#039;repeat (number_of_repetitions)&#039;&#039;&#039;: Specify the number of times the schedule will be launched again. For example, if a schedule has &#039;&#039;&#039;repeat 11&#039;&#039;&#039; it will be launched 12  times.&lt;br /&gt;
&lt;br /&gt;
====Control Commands====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;play&#039;&#039;&#039;: Stat a broadcast media. The media begins to launch the first item of the input list, then launches the next one and so on. (like a play list)&lt;br /&gt;
*&#039;&#039;&#039;pause&#039;&#039;&#039;: Put the broadcast media in paused status.&lt;br /&gt;
*&#039;&#039;&#039;stop&#039;&#039;&#039;: Stop the broadcast media.&lt;br /&gt;
*&#039;&#039;&#039;seek (percentage)&#039;&#039;&#039;: Seek in the current playing item of the input list.&lt;br /&gt;
&lt;br /&gt;
===Configuration Files===&lt;br /&gt;
&lt;br /&gt;
A VLM configuration file is a list of command lines : one line corresponds to one command line.&lt;br /&gt;
&lt;br /&gt;
To create a configuration file, just edit a text file and type a list of VLM commands. Beware of recursive calls: you can put a &#039;&#039;&#039;load (file)&#039;&#039;&#039; in a configuration file which can lead to recursive inclusion of the same file and result in VLC&#039;s crash.&lt;br /&gt;
&lt;br /&gt;
You can automatically load a VLM configuration when launching VLC with the --vlm-conf &amp;lt;vlm conf filename&amp;gt; command line option. The minimal command to make that work is:&lt;br /&gt;
 % &#039;&#039;&#039;vlc -I telnet --vlm-conf vlm.conf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As of versions &amp;gt; 0.8.1, any line where the first non white space character is a # is considered as a comment.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
This section provides several small vlm configuration files.&lt;br /&gt;
&lt;br /&gt;
===Multiple streams===&lt;br /&gt;
&lt;br /&gt;
====Simple broadcasting====&lt;br /&gt;
&lt;br /&gt;
 new channel1 broadcast enabled&lt;br /&gt;
 setup channel1 input http://host.mydomain/movie.mpeg&lt;br /&gt;
 setup channel1 output #rtp{mux=ts,dst=239.255.1.1,port=5004,sdp=sap://,name=&amp;quot;Channel 1&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
 new channel2 broadcast enabled&lt;br /&gt;
 setup channel2 input udp://@239.255.12.42&lt;br /&gt;
 setup channel2 output #rtp{mux=ts,dst=239.255.1.2,port=5004,sdp=sap://,name=&amp;quot;Channel 2&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
 control channel1 play&lt;br /&gt;
 control channel2 play&lt;br /&gt;
&lt;br /&gt;
*if you are using direct show and are getting &amp;quot;control : unknown error&amp;quot; try &amp;quot;setup &#039;&#039;channel&#039;&#039; enabled&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Scheduled broadcasting====&lt;br /&gt;
&lt;br /&gt;
 new my_media broadcast enabled&lt;br /&gt;
 setup my_media input my_video.mpeg input my_other_movie.mpeg&lt;br /&gt;
 setup my_media output #rtp{mux=ts,dst=239.255.1.1,sdp=sap://,name=&amp;quot;My Media&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
 new my_sched schedule enabled&lt;br /&gt;
 setup my_sched date 2012/12/12-12:12:12&lt;br /&gt;
 setup my_sched append control my_media play&lt;br /&gt;
&lt;br /&gt;
===Video On Demand===&lt;br /&gt;
&lt;br /&gt;
====Basic example====&lt;br /&gt;
&lt;br /&gt;
First launch the vlc&lt;br /&gt;
 % &#039;&#039;&#039;vlc --ttl 12 -vvv --color -I telnet --telnet-password videolan --rtsp-host 0.0.0.0:5554&#039;&#039;&#039;&lt;br /&gt;
where:&lt;br /&gt;
*&#039;&#039;&#039;12&#039;&#039;&#039; is the value of the TTL (Time To Live) of your IP packets (which means that the stream will be able to cross 11 routers).&lt;br /&gt;
*&#039;&#039;&#039;telnet&#039;&#039;&#039; launches the telnet interface of the vlc.&lt;br /&gt;
*&#039;&#039;&#039;videolan&#039;&#039;&#039; is the password to connect to the telnet interface.&lt;br /&gt;
*&#039;&#039;&#039;0.0.0.0&#039;&#039;&#039; is the host address. &lt;br /&gt;
*&#039;&#039;&#039;5554&#039;&#039;&#039; is the port on which you stream.&lt;br /&gt;
&lt;br /&gt;
Then you connect to the vlc telnet interface and create the vod object&lt;br /&gt;
 new Test vod enabled&lt;br /&gt;
 setup Test input my_video.mpg&lt;br /&gt;
You can access to the stream with:&lt;br /&gt;
 % &#039;&#039;&#039;vlc rtsp://server:5554/Test&#039;&#039;&#039;&lt;br /&gt;
where:&lt;br /&gt;
* &#039;&#039;&#039;server&#039;&#039;&#039; is the address of the streaming server (IP or DNS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Thehtoad</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Advanced_Use_of_VLC&amp;diff=15207</id>
		<title>Documentation:Advanced Use of VLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Advanced_Use_of_VLC&amp;diff=15207"/>
		<updated>2010-01-04T16:36:44Z</updated>

		<summary type="html">&lt;p&gt;Thehtoad: /* Modules selection */ grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightMenu|documentation play howto toc}}&lt;br /&gt;
&lt;br /&gt;
==Use the command line==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO: completely outdated&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All standard operations of VLC should be available from the GUI. However, some complex operations can only be done from the command line and there are situations in which you don&#039;t need or want a GUI. Here is the complete description of VLC&#039;s command line and how to use it.&lt;br /&gt;
&lt;br /&gt;
You need to be quite comfortable with command line usage to use this.&lt;br /&gt;
&lt;br /&gt;
 Note: Windows users have to use the &#039;&#039;--option-name=&amp;quot;value&amp;quot;&#039;&#039; syntax instead of the &#039;&#039;--option-name value&#039;&#039; syntax.&lt;br /&gt;
&lt;br /&gt;
===Getting help===&lt;br /&gt;
&lt;br /&gt;
VLC uses a modular structure. The core mainly manages communication between modules. All the multimedia processing is done by modules. There are input modules, demultiplexers, decoders, video output modules, ...&lt;br /&gt;
&lt;br /&gt;
This chapter will only describe the &amp;quot;general&amp;quot; options, i.e. the core options. Each module adds new options. For example, the HTTP input module will add options for caching, proxy, authentication, ...&lt;br /&gt;
&lt;br /&gt;
By using &#039;&#039;&#039;vlc --help&#039;&#039;&#039;, you will get the basic core options. &#039;&#039;&#039;vlc --longhelp&#039;&#039;&#039; will give all the basic options (core + modules). Adding &#039;&#039;&#039;--advanced&#039;&#039;&#039; will give the &amp;quot;advanced options&amp;quot; (for advanced users). So &#039;&#039;&#039;vlc --longhelp --advanced&#039;&#039;&#039; will give you all options. You can also append &#039;&#039;&#039;--help-verbose&#039;&#039;&#039; if you want more detailed help.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to get debug informations. To do this, use &#039;&#039;&#039;-v&#039;&#039;&#039; or &#039;&#039;&#039;-vv&#039;&#039;&#039; (this will show lower severity messages). If your console supports it, you can add &#039;&#039;&#039;--color to get messages in color.&lt;br /&gt;
&lt;br /&gt;
===Opening streams===&lt;br /&gt;
&lt;br /&gt;
The following commands start VLC and start reading the given element(s)&lt;br /&gt;
&lt;br /&gt;
====Opening a file====&lt;br /&gt;
&lt;br /&gt;
Start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc my_file&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VLC should be able to recognize the file type. If it does not, you can force demultiplexer and decoder (see below).&lt;br /&gt;
&lt;br /&gt;
A list of all video and audio codecs supported by VLC is available on the [http://www.videolan.org/vlc/features.html VLC features list].&lt;br /&gt;
&lt;br /&gt;
====Opening a DVD or VCD, or an audio CD====&lt;br /&gt;
&lt;br /&gt;
Start VLC with:&lt;br /&gt;
&lt;br /&gt;
For a DVD with menus:&lt;br /&gt;
 % &#039;&#039;&#039;vlc dvd://[device][@raw_device][@[title][:[chapter][:angle]]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In most cases, &#039;&#039;&#039;vlc dvd://&#039;&#039;&#039; or &#039;&#039;&#039;vlc dvd://[device]&#039;&#039;&#039; will do. [device] is for example &#039;&#039;&#039;/dev/dvd&#039;&#039;&#039; on GNU/Linux or &#039;&#039;&#039;D:&#039;&#039;&#039; on Windows (complete path to your DVD drive).&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(DVD without menus):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc dvdsimple://[device][@raw_device][@[title][:[chapter][:angle]]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(VCD):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc vcd://[device][@{E|P|E|T|S}[number]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(Audio CD):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc cdda://[device][@[track]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Receiving a network stream====&lt;br /&gt;
&lt;br /&gt;
To receive an unicast RTP/UDP stream (sent by VLC&#039;s stream output), start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc  rtp://@:5004&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 5004 is the port to which packets are sent. 1234 is another commonly used port number. you use the default port (1234), &#039;&#039;&#039;vlc rtp://&#039;&#039;&#039; will do.&lt;br /&gt;
For more information, look at the Streaming Howto.&lt;br /&gt;
&lt;br /&gt;
To receive an multicast UDP/RTP stream (sent by VLC&#039;s stream output), start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc rtp://@multicast_address:port&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To receive a SSM (source specific multicast) stream, you can use:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc rtp://server_address@multicast_address:port&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works on OSs that support SSM (Windows XP and Linux).&lt;br /&gt;
&lt;br /&gt;
To receive a HTTP stream, start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc http://www.example.org/your_file.mpg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To receive a RTSP stream, start VLC with:&amp;lt;/para&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc rtsp://www.example.org/your_stream&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Modules selection===&lt;br /&gt;
&lt;br /&gt;
VLC always tries to select the most appropriate interface, input and output modules, among the ones available on the system, according to the stream it is given to read. However, you may wish to force the use of a specific module with the following options.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--intf  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the interface module.&lt;br /&gt;
*&#039;&#039;&#039;--extraintf  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select extra interface modules that will be launched in addition to the main one. This is mainly useful for special &#039;&#039;control&#039;&#039; interfaces, like HTTP, RC (Remote Control), ... (see below)&lt;br /&gt;
*&#039;&#039;&#039;--aout  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the audio output module.&lt;br /&gt;
*&#039;&#039;&#039;--vout  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the video output module.&lt;br /&gt;
*&#039;&#039;&#039;--memcpy  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to choose a memory copy module. You should probably never touch that.&lt;br /&gt;
&lt;br /&gt;
You can get a listing of the available modules by using &#039;&#039;&#039;vlc -l&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Stream Output===&lt;br /&gt;
&lt;br /&gt;
The Stream output system allows vlc to become a streaming server.&lt;br /&gt;
&lt;br /&gt;
For more details on the stream output system, please have a look at the [[Documentation:Streaming HowTo|Streaming HowTo]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Options===&lt;br /&gt;
&lt;br /&gt;
====Audio options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--noaudio&#039;&#039;&#039; disables audio output.&lt;br /&gt;
*&#039;&#039;&#039;--mono&#039;&#039;&#039; forces VLC to treat the stream in mono audio.&lt;br /&gt;
*&#039;&#039;&#039;--volume &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the level of audio output (between 0 and 1024).&lt;br /&gt;
*&#039;&#039;&#039;--aout-rate &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the audio output frequency (Hz). By default, VLC will try to autodetect this.&lt;br /&gt;
*&#039;&#039;&#039;--desync &amp;lt;integer&amp;gt;&#039;&#039;&#039; compensates desynchronization of audio (ms). (If audio and video streams are not synchronized, use this setting to delay the audio stream)&lt;br /&gt;
*&#039;&#039;&#039;--audio-filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds audio filters to the processing chain. Available filters are visual (visualizer with spectrum analyzer and oscilloscope), headphone (virtual headphone  patialization) and normalizer (volume normalizer)&lt;br /&gt;
&lt;br /&gt;
====Video options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--novideo&#039;&#039;&#039; disables video output.&lt;br /&gt;
*&#039;&#039;&#039;--grayscale&#039;&#039;&#039; turns video output into grayscale mode.&lt;br /&gt;
*&#039;&#039;&#039;--fullscreen&#039;&#039;&#039; ( or &#039;&#039;&#039;-f&#039;&#039;&#039;) sets fullscreen video.&lt;br /&gt;
*&#039;&#039;&#039;--nooverlay&#039;&#039;&#039; disables hardware acceleration for the video output.&lt;br /&gt;
*&#039;&#039;&#039;--width, --height &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the video window dimensions. By default, the video window size will be adjusted to match the video dimensions.&lt;br /&gt;
*&#039;&#039;&#039;--zoom &amp;lt;float&amp;gt;&#039;&#039;&#039; adds a zoom factor.&lt;br /&gt;
*&#039;&#039;&#039;--aspect-ratio &amp;lt;mode&amp;gt;&#039;&#039;&#039; forces source aspect ratio. Modes are 4x3, 16x9, ...&lt;br /&gt;
*&#039;&#039;&#039;--spumargin  &amp;lt;integer&amp;gt;&#039;&#039;&#039; forces SPU subtitles postion.&lt;br /&gt;
*&#039;&#039;&#039;--video-filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds video filters to the processing chain. You can add several filters, separated by commas&lt;br /&gt;
*&#039;&#039;&#039;--sub-filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds video subpictures filter to the processing chain.&lt;br /&gt;
&lt;br /&gt;
====Playlist options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--random&#039;&#039;&#039; plays files randomly forever.&lt;br /&gt;
*&#039;&#039;&#039;--loop&#039;&#039;&#039; loops playlist on end.&lt;br /&gt;
*&#039;&#039;&#039;--repeat&#039;&#039;&#039; repeats current item until another item is forced&lt;br /&gt;
*&#039;&#039;&#039;--play-and-stop&#039;&#039;&#039; stops the playlist after each played item.&lt;br /&gt;
&lt;br /&gt;
====Network options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--server-port &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets server port.&lt;br /&gt;
*&#039;&#039;&#039;--iface  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the network interface to use.&lt;br /&gt;
*&#039;&#039;&#039;--iface-addr  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies your network interface IP address.&lt;br /&gt;
*&#039;&#039;&#039;--mtu  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the MTU of the network interface.&lt;br /&gt;
*&#039;&#039;&#039;--ipv6&#039;&#039;&#039; forces IPv6.&lt;br /&gt;
*&#039;&#039;&#039;--ipv4&#039;&#039;&#039; forces IPv4.&lt;br /&gt;
&lt;br /&gt;
====CPU options====&lt;br /&gt;
&lt;br /&gt;
You should probably not touch these options unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--nommx&#039;&#039;&#039; disables the use of MMX CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--no3dn&#039;&#039;&#039; disables the use of 3D Now! CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--nommxext&#039;&#039;&#039; disables the use of MMX Ext CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--nosse&#039;&#039;&#039; disables the use of SSE CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--noaltivec&#039;&#039;&#039; disables the use of Altivec CPU extensions.&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--quiet&#039;&#039;&#039;  deactivates all console messages.&lt;br /&gt;
*&#039;&#039;&#039;--color&#039;&#039;&#039; displays color messages.&lt;br /&gt;
*&#039;&#039;&#039;--search-path  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies interface default search path.&lt;br /&gt;
*&#039;&#039;&#039;--plugin-path  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies plugin search path.&lt;br /&gt;
*&#039;&#039;&#039;--no-plugins-cache&#039;&#039;&#039; disables the plugin cache (plugins cache speeds up startup)&lt;br /&gt;
*&#039;&#039;&#039;--dvd  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the default DVD device.&lt;br /&gt;
*&#039;&#039;&#039;--vcd  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the default VCD device.&lt;br /&gt;
*&#039;&#039;&#039;--program  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies program (SID) (for streams with several programs, like satellite ones).&lt;br /&gt;
*&#039;&#039;&#039;--audio-type  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default audio type to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--audio-channel  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default audio channel to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--spu-channel  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default subtitle channel to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--version&#039;&#039;&#039; gives you information about the current VLC version.&lt;br /&gt;
*&#039;&#039;&#039;--module  &amp;lt;module&amp;gt; &#039;&#039;&#039; displays help about specified module. (Shortcut: &#039;&#039;&#039;-p&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Item-specific options===&lt;br /&gt;
&lt;br /&gt;
There are many options that are related to items (like &#039;&#039;&#039;--novideo&#039;&#039;&#039;, &#039;&#039;&#039;--codec&#039;&#039;&#039;, &#039;&#039;&#039;--fullscreen&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
For all of these, you have the possibility to make them item-specific, using &amp;quot;:&amp;quot; instead of &amp;quot;--&amp;quot; and putting the option just after the concerned item.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc file1.mpg :fullscreen file2.mpg&#039;&#039;&#039;&lt;br /&gt;
will play file1.mpg in fullscreen mode and file2.mpg in the default mode (which is generally no fullscreen), whereas&lt;br /&gt;
 % &#039;&#039;&#039;vlc --fullscreen file1.mpg file2.mpg&#039;&#039;&#039;&lt;br /&gt;
will play both files in fullscreen mode&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc --fullscreen file1.mpg :sub-file=file1.srt :no-fullscreen file2.mpg :filter=distort&#039;&#039;&#039;&lt;br /&gt;
will play file1.mpg in windowed (no-fullscreen) mode with the subtitles file file1.srt and will play file2.mpg with video filter distort enabled in fullscreen mode (item-specific options override global options)&lt;br /&gt;
&lt;br /&gt;
==Advanced use of filters==&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
These are the old style VLC filters. They only apply to on screen display and thus cannot be streamed.&lt;br /&gt;
&lt;br /&gt;
====Deinterlacing video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;deinterlace&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--deinterlace-mode {discard,blend,mean,bob,linear}&#039;&#039;&#039; choose a deinterlacing mode.&lt;br /&gt;
&lt;br /&gt;
====Invert video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;invert&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Image properties filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;adjust&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--contrast &amp;lt;float&amp;gt;&#039;&#039;&#039; Image contrast in the 0-2 range.&lt;br /&gt;
*&#039;&#039;&#039;--brightness &amp;lt;float&amp;gt;&#039;&#039;&#039; Image brightness in the 0-2 range.&lt;br /&gt;
*&#039;&#039;&#039;--hue &amp;lt;integer&amp;gt;&#039;&#039;&#039; Image hue in the 0-360 range.&lt;br /&gt;
*&#039;&#039;&#039;--saturation &amp;lt;float&amp;gt;&#039;&#039;&#039; Image saturation in the 0-3 range.&lt;br /&gt;
*&#039;&#039;&#039;-gamma &amp;lt;float&amp;gt;&#039;&#039;&#039; Image gamma in the 0-10 range.&lt;br /&gt;
&lt;br /&gt;
====Wall video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;wall&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This filter splits the output in several windows.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--wall-cols &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of columns.&lt;br /&gt;
*&#039;&#039;&#039;--wall-rows &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of rows.&lt;br /&gt;
*&#039;&#039;&#039;--wall-active &amp;lt;string&amp;gt;&#039;&#039;&#039; Select the windows you want to display. To select windows 2 and 4 you would write &#039;&#039;&#039;--wall-active 2,4&#039;&#039;&#039;. When this option isn&#039;t specified, all windows are displayed.&lt;br /&gt;
&lt;br /&gt;
====Video transformation filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;transform&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--transform-type {90,180,270,hflip,vflip}&#039;&#039;&#039; Select rotation angle or symmetry.&lt;br /&gt;
&lt;br /&gt;
====Distort video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;distort&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Clone video filter====&lt;br /&gt;
&lt;br /&gt;
This filter clones the output window.&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;clone&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--clone-count &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of clones.&lt;br /&gt;
*&#039;&#039;&#039;--clone-vout-list &amp;lt;string&amp;gt;&#039;&#039;&#039; Comma separated string of video output modules.&lt;br /&gt;
&lt;br /&gt;
====Crop video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;crop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--crop-geometry &amp;lt;string&amp;gt;&#039;&#039;&#039; Set the geometry of the zone to crop. This is set as &amp;lt;width&amp;gt; x &amp;lt;height&amp;gt; + &amp;lt;left offset&amp;gt; + &amp;lt;top offset&amp;gt;.&lt;br /&gt;
*&#039;&#039;&#039;--autocrop&#039;&#039;&#039; Enable automatic black border cropping.&lt;br /&gt;
&lt;br /&gt;
====Motion blur filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;motionblur&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;blur-factor &amp;lt;integer&amp;gt;&#039;&#039;&#039; Blur factor in the 1-127 range.&lt;br /&gt;
&lt;br /&gt;
====Video pictures blending====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;blend&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Video scaling filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;scale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Subpictures Filters===&lt;br /&gt;
&lt;br /&gt;
These are the new VLC filters. They can be streamed.&lt;br /&gt;
&lt;br /&gt;
====Time display sub filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--time-format &amp;lt;string&amp;gt;&#039;&#039;&#039; Time format string. You can use the following special characters %Y = year, %m = month, %d = day, %H = hour, %M = minute, %S = second.&lt;br /&gt;
*&#039;&#039;&#039;--time-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--time-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
&lt;br /&gt;
====Marquee display sub filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;marq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--marq-marquee &amp;lt;string&amp;gt;&#039;&#039;&#039; Marquee text to display.&lt;br /&gt;
*&#039;&#039;&#039;--marq-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--marq-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--marq-timeout &amp;lt;timeout&amp;gt;&#039;&#039;&#039; Defines the time the marquee must remain displayed in milliseconds. Default value is 0 (remain forever).&lt;br /&gt;
&lt;br /&gt;
====Logo video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;logo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This filter can be used both as an old style filter or a subpictures filter.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--logo-file &amp;lt;string&amp;gt;&#039;&#039;&#039; Full path of the PNG file to use.&lt;br /&gt;
*&#039;&#039;&#039;--logo-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--logo-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--logo-transparency &amp;lt;integer&amp;gt;&#039;&#039;&#039; You can set the logo transparency value here (from 0 for full transparency to 255 for full opacity).&lt;br /&gt;
&lt;br /&gt;
Note: You can move the logo by left-clicking on it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The HTTP interface==&lt;br /&gt;
&lt;br /&gt;
VLC ships with a little HTTP server integrated. It is used both to stream using HTTP, and for the HTTP remote control interface.&lt;br /&gt;
&lt;br /&gt;
To start VLC with the HTTP interface, use:&lt;br /&gt;
 % &#039;&#039;&#039;vlc -I http [--http-src /directory/] [--http-host host:port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want to have both the &amp;quot;normal&amp;quot; interface and the HTTP interface, use &#039;&#039;&#039;vlc --extraintf http&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The HTTP interface will start listening at host:port (&amp;lt;all interfaces&amp;gt;:8080 if omitted), and will reproduce the structure of /directory at http://host:port/ ( vlc_source_path/share/http if omitted ).&lt;br /&gt;
&lt;br /&gt;
Use a browser to go to http://your_host_machine:port. You should be taken to the main page.&lt;br /&gt;
&lt;br /&gt;
VLC is shipped with a set of files that should be enough for generic needs. It is also possible to customize pages. See [[Documentation:Play_HowTo/Building_Pages_for_the_HTTP_Interface]].&lt;br /&gt;
&lt;br /&gt;
Available pages are:&lt;br /&gt;
* &#039;&#039;&#039;list was obsolete&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other control interfaces==&lt;br /&gt;
&lt;br /&gt;
VLC includes a number of so-called interfaces that are not really interfaces, but means of controlling VLC. Nevertheless, they are enabled by setting them as interface or extra interface, either in the Preferences, in General/Interface, or using &#039;&#039;&#039;-I&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf&#039;&#039;&#039; on the command line.&lt;br /&gt;
&lt;br /&gt;
===Hotkeys===&lt;br /&gt;
&lt;br /&gt;
This module allows you to control VLC and playback via hotkeys. It is always enabled by default. You can use hotkeys in the video output window.&lt;br /&gt;
&lt;br /&gt;
Hotkeys can be hacked by:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --key-&amp;lt;function&amp;gt; &amp;amp;lt;code&amp;amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Code is composed by modifiers keys (Alt, Shift, Ctrl, Meta,Command) separated by a dash (-) and terminated by a key (a...z, +, =, -, &#039;,&#039;, +, &amp;amp;lt;, &amp;amp;gt;, `, /, ;, &#039;, \, [, ], *, Left, Right, Up, Down, Space, Enter, F1...F12, Home, End, Menu, Esc, Page Up, Page Down, Tab, Backspace, Mouse Wheel Up and Mouse Wheel Down). Main controls are available from hotkeys, such as : fullscreen, play-pause, faster, slower, next, prev, stop, quit, vol-up, etc. (use the &#039;&#039;&#039;--longhelp&#039;&#039;&#039; option for full list of functions).&lt;br /&gt;
For example, for binding fullscreen to Ctrl-f, run:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --key-fullscreen &#039;Ctrl-f&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===RC and RTCI===&lt;br /&gt;
&lt;br /&gt;
These two interfaces allow you to control VLC from a command shell (possibly using a remote connexion or a Unix socket).&lt;br /&gt;
&lt;br /&gt;
Start VLC with &#039;&#039;&#039;-I rc&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf rc&#039;&#039;&#039;. When you get the &#039;&#039;&#039;Remote control interface initialized, `h&#039; for help&#039;&#039;&#039; message, press h and Enter to get help about available commands.&lt;br /&gt;
&lt;br /&gt;
To be able to remote connect to your VLC using a TCP socket (telnet-like connexion), use &#039;&#039;&#039;--rc-host your_host:port&#039;&#039;&#039;. Then, by connecting (using telnet or netcat) to the host on the given port, you will get the command shell.&lt;br /&gt;
&lt;br /&gt;
To use a UNIX socket (local socket, this does not work for Windows), use &#039;&#039;&#039;--rc-unix /path/to/socket&#039;&#039;&#039;. Commands can then be passed using this UNIX socket.&lt;br /&gt;
&lt;br /&gt;
The RTCI interface gives you more advanced options, such as marquee control for the marquee subpicture filter (See filter section).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ncurses===&lt;br /&gt;
&lt;br /&gt;
This is a text interface, using ncurses library.&lt;br /&gt;
&lt;br /&gt;
Start VLC with &#039;&#039;&#039;-I ncurses&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf ncurses&#039;&#039;&#039;. You will then get something like that:&lt;br /&gt;
&lt;br /&gt;
http://www.videolan.org/doc/play-howto/en/images/play-howto/intf-ncurses-playlist.jpg The ncurses interface&lt;br /&gt;
&lt;br /&gt;
Press h to get the list of all available commands, with a short description.&lt;br /&gt;
&lt;br /&gt;
There is also a filebrowser available for the ncurses interface in order to add playlist items. Press &#039;B&#039; to use it.&lt;br /&gt;
&lt;br /&gt;
http://www.videolan.org/doc/play-howto/en/images/play-howto/intf-ncurses-filebrowser.jpg The ncurses filebrowser&lt;br /&gt;
&lt;br /&gt;
You can set the filebrowser starting point by launching vlc with the &#039;&#039;&#039;--browse-dir&#039;&#039;&#039; option:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc -I ncurses --browse-dir /filebrowser/starting/point/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Gestures===&lt;br /&gt;
&lt;br /&gt;
Gestures provide a simple mouse gestures control. TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Mozilla plugin==&lt;br /&gt;
&lt;br /&gt;
VLC can also be embedded in a web browser! The following browsers are supported [http://www.mozilla.org/ Mozilla], [http://www.mozilla.org/products/firefox/ Firefox] and [http://www.apple.com/macosx/features/safari Safari].&lt;br /&gt;
&lt;br /&gt;
===Install the plugin===&lt;br /&gt;
&lt;br /&gt;
====GNU/Linux Debian====&lt;br /&gt;
&lt;br /&gt;
Install the &#039;&#039;mozilla-plugin-vlc&#039;&#039; package:&lt;br /&gt;
&lt;br /&gt;
 # &#039;&#039;&#039;apt-get update&#039;&#039;&#039;&lt;br /&gt;
 # &#039;&#039;&#039;apt-get install mozilla-plugin-vlc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
&lt;br /&gt;
Quit Firefox or Mozilla.&lt;br /&gt;
&lt;br /&gt;
Copy the two files in &#039;&#039;&#039;VLC_Installation_folder\mozilla&#039;&#039;&#039; (usually &#039;&#039;&#039;C:\Program Files\VideoLAN\VLC\mozilla&#039;&#039;&#039;) to your mozilla plugins directory (Usually &#039;&#039;&#039;C:\Program Files\Mozilla\plugins&#039;&#039;&#039; or &#039;&#039;&#039;C:\Program Files\Mozilla&lt;br /&gt;
Firefox\plugins&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Restart Firefox or Mozilla.&lt;br /&gt;
&lt;br /&gt;
====MacOS X====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The Mozilla/Safari plugin for MacOS X is only available from vlc version 0.8.5.1 and onwards.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Quit Safari browser.&lt;br /&gt;
&lt;br /&gt;
Download the Mozilla/safari plugin package from [http://www.videolan.org/vlc/download-macosx.html MacOS X download page].&lt;br /&gt;
&lt;br /&gt;
Run the installer from the dmg image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Compile the sources yourself====&lt;br /&gt;
&lt;br /&gt;
Please look at the [http://developers.videolan.org developers page] for information on how to do this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use the mozilla plugin===&lt;br /&gt;
&lt;br /&gt;
If you open a link to a video file handled by the VLC plugin (To get the list of handled types, browse to &#039;&#039;&#039;about:plugins&#039;&#039;&#039;) or a page with an embedded video, the plugin should open and read the&lt;br /&gt;
video.&lt;br /&gt;
&lt;br /&gt;
See the [[Documentation:WebPlugin|documentation]] for building page for this plugin.&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
=Snapshot Tool=&lt;br /&gt;
Did you know you can use special codes to automatically generate filenames in the [[SnapshotTool|Snaphot Tool]]?&lt;/div&gt;</summary>
		<author><name>Thehtoad</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Hacker_Guide/Interfaces&amp;diff=15206</id>
		<title>Hacker Guide/Interfaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Hacker_Guide/Interfaces&amp;diff=15206"/>
		<updated>2010-01-04T15:59:35Z</updated>

		<summary type="html">&lt;p&gt;Thehtoad: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=VLC Interface=&lt;br /&gt;
&lt;br /&gt;
==A typical VLC run course==&lt;br /&gt;
&lt;br /&gt;
This section describes what happens when you launch the  vlc program. After the ELF dynamic loader blah blah blah, the main thread becomes the interface thread. It passes through the following steps :&lt;br /&gt;
&lt;br /&gt;
#CPU detection : which CPU are we running on, what are its capabilities (MMX, MMXEXT, 3DNow, AltiVec...) ?&lt;br /&gt;
#Message interface initialization ;&lt;br /&gt;
#Command line options parsing ;&lt;br /&gt;
#Playlist creation ;&lt;br /&gt;
#Module bank initialization ;&lt;br /&gt;
#Interface opening ;&lt;br /&gt;
#Signal handler installation : SIGHUP, SIGINT and SIGQUIT are caught to manage a clean quit (please note that the SDL library also catches SIGSEGV) ;&lt;br /&gt;
#Audio output thread spawning ;&lt;br /&gt;
#Video output thread spawning ;&lt;br /&gt;
#Main loop : events management ; &lt;br /&gt;
&lt;br /&gt;
Following sections describe each of these steps in particular, and many more.&lt;br /&gt;
&lt;br /&gt;
==The message interface==&lt;br /&gt;
&lt;br /&gt;
It is a known fact that printf() functions are not necessarily thread-safe. As a result, one thread interrupted in a printf() call, followed by another calls to it, will leave the program in an undetermined state. So an API must be set up to print messages without crashing.&lt;br /&gt;
&lt;br /&gt;
This API is implemented in two ways. If INTF_MSG_QUEUE is defined in config.h , every printf-like (see below) call will queue the message into a chained list. This list will be printed and flushed by the interface thread once upon an event loop. If INTF_MSG_QUEUE is undefined, the calling thread will acquire the print lock (which prevents two print operations to occur at the same time) and print the message directly (default behaviour).&lt;br /&gt;
&lt;br /&gt;
Functions available to print messages are :&lt;br /&gt;
&lt;br /&gt;
*msg_Info ( p_this, ... ) : Print a message to stdout , plain and stupid (for instance &amp;quot;it works!&amp;quot;).&lt;br /&gt;
*msg_Err( p_this, ... ) : Print an error message to stderr .&lt;br /&gt;
*msg_Warn( p_this, ... ) : Print a message to stderr if the warning level (determined by -v, -vv and -vvv) is low enough. &#039;&#039;Please note that the lower the level, the less important the message is.&#039;&#039;&lt;br /&gt;
*msg_Dbg( p_this, ... ) : This function is designed for optional checkpoint messages, such as &amp;quot;we are now entering function dvd_foo_thingy&amp;quot;. It does &lt;br /&gt;
nothing in non-trace mode. If the VLC is compiled with --enable-trace, the message is either written to the file vlc-trace.log (if TRACE_LOG is defined in config.h), or printed to stderr (otherwise).&lt;br /&gt;
*msg_Flush(p_this) : Flush the message queue, if it is in use.&lt;br /&gt;
&lt;br /&gt;
==Command line options==&lt;br /&gt;
&lt;br /&gt;
VLC uses GNU getopt to parse command line options. getopt structures are defined in src/extras/getopt.c and command line parsing is done in src/config/cmdline.c&lt;br /&gt;
&lt;br /&gt;
Most configuration directives are exchanged via the environment array, using main_Put*Variable and main_Get*Variable. As a result, ./vlc --height 240 is strictly equivalent to : vlc_height=240 ./vlc. That way configuration variables are available everywhere, including plugins.&lt;br /&gt;
&lt;br /&gt;
===Warning===&lt;br /&gt;
&lt;br /&gt;
Please note that for thread-safety issues, you should not use main_Put*Variable once the second thread has been spawned&lt;br /&gt;
&lt;br /&gt;
==Playlist management==&lt;br /&gt;
&lt;br /&gt;
The playlist is created on startup from files given in the command line. An appropriate interface plugin can then add or remove files from it. Functions to be used are described in src/playlist/control.c.&lt;br /&gt;
&lt;br /&gt;
==Module bank==&lt;br /&gt;
&lt;br /&gt;
On startup, VLC creates a bank of all available .so files (plugins) in ., ./lib, /usr/local/lib/videolan/vlc (PLUGIN_PATH), and built-in plugins. Every plugin is checked with its capability, which is set by a call to set_capability(void* capability, int score). The different capabilities are:&lt;br /&gt;
&lt;br /&gt;
*interface : An interface plugin (in modules/control and modules/gui)&lt;br /&gt;
*access : &lt;br /&gt;
*access_filter : &lt;br /&gt;
*sout access : stream output&lt;br /&gt;
*sout stream : &lt;br /&gt;
*audio filter : &lt;br /&gt;
*video filter : &lt;br /&gt;
*video filter2 :&lt;br /&gt;
*audio mixer : &lt;br /&gt;
*demux : démultiplexeur&lt;br /&gt;
*packetizer : &lt;br /&gt;
*meta reader : meta engine&lt;br /&gt;
*sout mux : multiplexeur streaming output &lt;br /&gt;
*services_discovery : &lt;br /&gt;
*chroma : &lt;br /&gt;
*decoder :  decoder. Pour définir un decoder audio ou video, utiliser set_subcategory( SUBCAT_INPUT_ACODEC ) ou set_subcategory( SUBCAT_INPUT_VCODEC )&lt;br /&gt;
*audio output : An audio output module&lt;br /&gt;
*video output : A video output module&lt;br /&gt;
*vizualisation :&lt;br /&gt;
*packetizer : &lt;br /&gt;
&lt;br /&gt;
How to write a plugin is described in the latter sections. Other threads can request a plugin descriptor with module_Need ( module_bank_t * p_bank, int i_capabilities, void * p_data ). p_data is an optional parameter (reserved for future use) for the pf_probe() function. The returned module_t structure contains pointers to the functions of the plug-in. See include/modules.h for more information.&lt;br /&gt;
&lt;br /&gt;
==The interface main loop==&lt;br /&gt;
&lt;br /&gt;
The interface thread will first look for a suitable interface plugin. Then it enters the main interface loop, with the plugin&#039;s pf_run function. This function will do what&#039;s appropriate, and every 100 ms will call (typically via a GUI timer callback) InteractionManage.&lt;br /&gt;
&lt;br /&gt;
InteractionManage cleans up the module bank by unloading unnecessary modules, manages the playlist, and flushes waiting messages (if the message queue is in use).&lt;br /&gt;
&lt;br /&gt;
==How to write an interface plugin==&lt;br /&gt;
===API for the Module===&lt;br /&gt;
&lt;br /&gt;
Have a look the files in directories modules/misc/control, modules/misc/access, or modules/gui. However the GUI interfaces are not very easy to understand, since they are quite big. I suggest to start digging into a non-graphical interface modules first. For example modules/control/hotkeys.c.&lt;br /&gt;
&lt;br /&gt;
An interface module is made of 3 entry functions and a module description:&lt;br /&gt;
&lt;br /&gt;
*The module description is made of macros that declares the capabilities of the module (interface, in this case) with their priority, the module description as it will appear in the preferences of GUI modules that implement them, some configuration variables specific to the module, shortcuts, sub-modules, etc.&lt;br /&gt;
*Open ( vlc_object_t* p_object ): This is called by VLC to initialize the module.&lt;br /&gt;
*Run ( vlc_object_t* p_object ): really does the job of the interface module (waiting for user input and displaying info). It should check periodically that p_intf-&amp;gt;b_die is not VLC_TRUE.&lt;br /&gt;
*Close ( vcl_object_t * p_object ) function is called by VLC to uninitialize the module (basically, this consists in destroying whatever have been allocated by Open) &lt;br /&gt;
&lt;br /&gt;
The above functions take a vlc_object_t* as argument, but that may need to be cast into a intf_thread_t* depending on your needs. This structure is often needed as a parameter for exported VLC functions, such as msg_Err(), msg_Warn(), ...&lt;br /&gt;
&lt;br /&gt;
Define intf_sys_t to contain any variable you need (don&#039;t use static variables, they suck in a multi-threaded application :-).&lt;br /&gt;
&lt;br /&gt;
If additional capabilities (such as Open button, playlist, menus, etc.) are needed, consult one of the GUI modules. One of the simpler GUI modules to consult might be modules/gui/ncurses/ncurses.c. It is a quite simple complete interface module with playlist interaction, and progress bar, among other things.&lt;br /&gt;
&lt;br /&gt;
===Arranging for your Module to get Compiled===&lt;br /&gt;
&lt;br /&gt;
If you create a new directory for your module, add a Modules.am file in it. In this file, put something like : SOURCES_yourmodule = myfile1.c myfile2.c&lt;br /&gt;
&lt;br /&gt;
Then go to the main configure.ac file, and add in the AC_CONFIG_FILES section (towards the end of the file) a line similar to the others.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t create a directory for your plugin (but instead just put it in an existing directory), you only have to add the two SOURCES_... lines to the existing Modules.am file&lt;br /&gt;
&lt;br /&gt;
This declares your module; it does not arrange for it to be automatically compiled; automatic compilatoin is described further below.&lt;br /&gt;
&lt;br /&gt;
You do not write a Makefile for your module. Instead this is done via the bootstrap and configuration process. So now run:&lt;br /&gt;
&lt;br /&gt;
./bootstrap&lt;br /&gt;
&lt;br /&gt;
./configure configure-options&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
&lt;br /&gt;
To build the module manually, go to the directory it resides and type make libyourmodule_plugin.so (or .dll, or whatever the file type for a shared library is on your Operating System.)&lt;br /&gt;
&lt;br /&gt;
To automatically have your module get built, you also set this in the configure.ac file; add your module name to the default modules section in one of the AX_ADD_PLUGINS directives.&lt;/div&gt;</summary>
		<author><name>Thehtoad</name></author>
	</entry>
</feed>