现在的位置: 首页 > 综合 > 正文

VLC学习-1

2014年06月09日 ⁄ 综合 ⁄ 共 1311字 ⁄ 字号 评论关闭

     今天,跟一个一起做VLC开发的朋友讨论问题的时候,发现原来自己跟他有同样的问题,好多以前学的东西,都给忘记了!是应该将学习到的东西记录下来!主要是记录自己对VLC的理解,也会存在很多的错误,也一样记录下来,以后看到的时候,也好改正!

     刚拿到VLC的时候,发现几十万行代码,好庞大的一个库啊,无从着手。先Google下网上的资料,然后自己再根据Demo,熟悉整个流程。

----------------------------------------------------------------------------

      网上资料的学习: 学习理论

      熟悉流程:    包含:控制句柄、线程的创建、初始化;音视频的走向

下面是网上的一些资料,我觉得也是VLC学习的必备的准备阶段

----------------------------------------------------------------------------

VLC结构:

   libcompat库:属于公共元素处理库,主要是用于跨平台使用

   libvlccore库: 业务核心逻辑处理点

   libplugin: 提供各种插件。libvlccore调用

   libvlc: 所有的外部接口库. 在上层开发用到的接口都来自于这个库中

   另外:vlc采用的是观察者模式实现的事件通知!(这个留在后面,暂时是不需要的)

----------------------------------------------------------------------------

数据流程:

  VLC的视频显示的工程,实际上也是数据转换的一个过程:

  PS ->(Demux) -> ES ->(Packetizer) ->stream_h264->(Decoder)->picture

  VLC音频播放的过程:

  PS ->(Demux) -> ES ->(Mixer) -> 声音播放

-----------------------------------------------------------------------------

PS 数据包结构:

     查看文档:MPEG-2_PS结构

      文档中描述的很详细:PS头+system头(非必须的)+PES头

   在对PS的解析中:有2个东东是需要清楚明白的了解的

   1. SCR/PTS/DTS : 系统参考时间/播放时间/解码时间, 这个相信大家都知道,具体应用在以后的学习中补充,这个东东是非常非常重要的吧

   2.  Demux里面的以00 00 01 bc开头的PSM, PSM主要用于区分音视频流用的

------------------------------------------------------------------------------------------------------------------

因为整个VLC工程,是公司一位大牛花了无数的精力将其搞到VS中,可以编译调试的,所以也省去了很多学习的麻烦,对很多东西可以通过断点的方式调试,

对于我这个初学者,爽到爆!

在VLC-2中我会继续记录下组件的加载及调用!

  


 




抱歉!评论已关闭.