2024年3月16日发(作者:)

VLC架构剖析

1. VideoLan简介

1.1 videolan组成

Videolan有以下两部分组成:

VLC:一个最主要的部分,它可以播放各种类型的媒体文件和流媒体文件,并且可以创

造媒体流并保存成各种格式的媒体文件,这些文件的质量要比没保存前的件好。videolan

作为客户端可以播放本地文件,httP://,rtsp://。

VLS:是一种流服务器,专门用来解决流的各种问题,它也具有一些VLC的特征。

videolan作为服务器可以输出httP,rtP,rtsp的流。

1.2 VLC优点

VLC是一种跨平台的媒体播放器和流媒体服务器,最初为videolan的客户端,它是一

种非常简便的多媒体播放器,它可以用来播放各种各样的音视频的格式文件(MPEG-1、

MPEG- 2、MPEG- 4、DivX、WMV、mp3、OGG、Vorbis、AC3、AAC等等)流媒体协

议,最具特色的功能是可以边下载边观看Divx媒体文件,并可以播放不完全的AVI文件。

并且支持界面的更改。VLC支持多种的操作系统,linux(rh9,Debian,Mandrake,

Gentoo),BSD,windows,Mac OS X,Be OS,Solaris等等。支持带菜单的VCD,SVCD,

和DVD,数字卫星频道、数字地球电视频道(digital terrestrial television channels),在

这些操作系统下通过宽带IPv4、IPv6网络播放线上影片。此软件开发项目是由法国学生所

发起的,参与者来自于世界各地,设计了多平台的支持,可以用于播放网络流媒体及本机

多媒体文件,特别是它能直接播放未下载完整的多媒体文件。

下图表示出了VideoLan的解决方案:

VideoLan Client是VideoLan项目(一个完整的MPEG-2客户/服务器解决方案)的一

个组成部分。不过VideoLan Client也可以作为一个独立的程序来播放来自硬盘或者

DVDROM的MPEG数据流。它目前支持GTK+、GNOME、KDE和QT,并且可以使用

X11、Xvideo、SDL或者DirectX作为视频输出。对于声音,VideoLan Client支持OSS、

ALSA和ESD。要访问DVD,VideoLan Client使用的是Libdvdcss库。它是一个简单的

专为DVD访问设计的库。它可以像访问块设备一样访问DVD,而不用考虑解密问题。

2. VLC整体架构分析

2.1 LibVLC