当初看VLC代码花了不少时间,其中很大的原因是不太了解视频播放的基本原理。现在看来,几乎所有的视频播放器,如VLC、MPlayer、Xine,包括DirectShow,在播放视频的原理和架构上都是非常相似的,理解这个对理解VLC的源码会有事半功倍的效果。
大致的来说,播放一个视频分为4个步骤:
1. acess访问,或者理解为接收、获取、得到
2. demux解复用,就是把通常合在一起的音频和视频分离(还有可能的字幕)
3.decode 解码,包括音频和视频的解码
4. output输出,也分为音频和视频的输出(aout和vout)
拿播放一个UDP组播的MPEGTS流来说吧,access部分负责从网络接收组播流&#