快速掌握 VLC
在开始 libVLC 之前,建议先熟练使用 VLC,并掌握其中的常用操作。可能有人会说:一个播放器有什么好学的?那我告诉你,VLC 的功能可多着呢,还真得好好学学!
像大多数标准的操作,一般都可以在 GUI 中完成;然而一些复杂的操作,只能在命令行中完成。因此想要掌握 VLC,命令行的使用至关重要,我们来一步一步地深入!
1
获取帮助
VLC 使用了模块化结构,其核心主要用于管理模块之间的通信,所有的多媒体处理都是由模块完成的,有输入模块、解复用器、解码器、视频输出模块 ...... 这么多,我们当然不可能全部都记住,但有一点必须要掌握“知道如何使用 Help,并能根据文档快速查找想要的内容”。
要获取 VLC 的帮助,运行以下命令:
vlc --help
这将列出所有的核心选项,若要获取更详尽的帮助,请使用“-H”。
注意:在 Windows 中,这会创建一个 vlc-help.txt 文件,输出将被重定向到该文件中。
倘若要获取 VLC 中的所有模块,运行以下命令:
vlc -l
如果想要寻求特定模块的帮助,运行以下命令:
vlc -p module --advanced --help-verbose
--help-verbose 会显示额外的解释,如果生成的输出太多,则会忽略此选项。
2
VLC 语法
根据帮助文档,可以很轻易地了解 VLC 的语法:
vlc [options] [stream] …
可以在命令行中指定多个流,它们将会被加入到播放列表中,其中的第一项将会被先播放。
--option:用于设置程序执行期间的全局选项。
-option:单字母版本的全局 --option。
:option:仅对此选项之前的单条流生效,且优先级高于先前的设置。
[[access][/demux]://]URL[#[title][:chapter][-[title][:chapter]]]
[:option=value ...]
许多全局 --options 也可作为 MRL 特定的 :options 使用,可指定多组 :option=value。
file:///path/file 纯媒体文件
http://host[:port]/file HTTP URL
ftp://host[:port]/file FTP URL
mms://host[:port]/file MMS URL
screen:// 屏幕捕获
dvd://[device] DVD 设备
vcd://[device] VCD 设备
cdda://[device] 音频 CD 设备
udp://[[]@[ ][: ]] 流服务器发送的 UDP 流
vlc://pause:<seconds> 暂停播放列表一定时间
vlc://quit 用于退出 VLC 的特殊项目
3
基本用法
多媒体播放器,可以说是 VLC 最常见的用法,一些相关的基本操作必须要了解!
要播放一个流(本地视频或者网络流),使用以下命令:
vlc F:\SampleVideo.mp4
倘若要创建一个播放列表,可以将多个文件作为参数,然后使用以下命令定义播放模式:
-Z:随机播放文件
-L:重复播放列表
-R:循环播放当前项
例如,创建一个包含两个文件的播放列表:
vlc.exe -Z F:\SampleVideo.mp4 F:\Megamind.avi
由于使用的是随机播放模式,所以第一个、第二个文件都有可能先播放。
默认情况下,视频以正常窗口大小播放;如果要全屏显示,可以使用 -f 或者 --fullscreen 选项:
vlc -f F:\SampleVideo.mp4
4
高级用法
除了用作多媒体播放器之外,VLC 还能做很多的事情,像转码、流式传输等 ...... 而这些往往需要用到 VLC 中的特定模块。
如何使用这些模块呢?最好的方法是从转码开始,基本语法格式如下:
vlc [input_stream] --sout
'#transcode{vcodec=[video_codec], acodec=[audio_codec]}
:standard{access=[type_of_output], dst=[name_of_output], mux=[output_type]}'
看着似乎很复杂,但如果拆开来看,其实还是比较容易理解的:
input_stream:输入流,即要转码的文件或流地址。
--sout:stream output,表示输出通道。
transcode 用于对流进行转码:
vcodec:目标视频编解码器,可在 VLC 支持的编解码器(例如:mp4v、MPJG、WMV1、vorb、flac 等)中进行选择。
acodec:目标音频编解码器,同 vcodec。
standard 在对流进行 mux 之后,将其保存到文件中或通过网络进行发送:
access:输出的协议,可以是 file、udp、rtp 或者 http。
dst:输出的目的地(实际保存或发送流的位置),如果 access=file,就是保存的文件路径及文件名。
mux:输出复用器(即:流的封装方式),可以在 ts、ps、ogg、avi 等之间进行选择。
还是举个栗子吧,这样更容易理解:
vlc -vvv F:\SampleVideo.mp4 --sout '#transcode{vcodec=mp4v, acodec=mpga}:standard{access=http, mux=ogg, dst=192.168.0.112:8080}'
这将使用编解码器 MPEG4 和 MPEG Audio 对文件 SampleVideo.mp4 进行转码,然后将其作为 HTTP 流传输至指定的 IP 和端口(192.168.0.112:8080)上。
要接收该流,需要使用下述命令:
vlc http://192.168.0.112:8080
当然了,VLC 的用法远不止于此,其他的自行尝试吧!
·END·