VLC music player
流媒体客户端软件层次结构流媒体网络协议
流视频协议是为了在客户端机和服务器之间进行通信而设计的标准化协议。根据它们的功能,网络上传输的流视频相关的协议分为三类。
网络层协议:网络层协议提供了基本的网络服务支持。IP就是网络上流音频使用的网络协议。
传输协议:传输协议为流服务提供端对端的网络传输功能。TCP、UDP、RTP 和RTCP就是网络上流音频流使用的传输协议。
话路控制协议:话路控制协议定义消息和程序。RTSP就是一种话路控制协议。
客户端与服务器之间的通信主要是由位于在应用层的RTSP协议和位于传输层的RTP协议来实现的,RTSP是一个多媒体流传输控制协议,通过此协议,可以为服务器和客户端建立会话控制连接,为多媒体流提供远程控制功能,比如播放、暂停、跳跃、停止等,具有可扩展性、解析简单、安全、传输独立等特点。由于流媒体数据的实时性要求,应该选择传输效率较高数据可靠性较低的UDP 协议。实时传输协议RTP是针对Internet上多媒体数据流的一个传输协议。RTP 被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。图1表示了流媒体客户端和服务器之间信息交互和客户端内部的层次结构。
、
VLC
,rtsp://等数据流,可以使用X1l、Xvideo、SDL或者DiractX作为视频输出,使用OSS、ALSA和ESD作为音频输出。VLC扫描步骤:1).探测cpu型号与功能;
2).消息接口初始化;3).命令行选项解析组件;4).创建播放列表;5).仓库初始化;6).加载所有内置和动态组件;7).打开接口;8).安装信号处理器:SIGHUP,SIGINT和SIGQUIT(捕获一个,忽略后来的并退出);9).派生音频输出线程;10).派生视频输出线程;11).主循环:事件管理,图2表示了这些步骤的执行过程。
根据需求,应将开源的VLC进行裁减、交叉编译并移植到目标开发板上。VLC 功能非常强大,包含了各类模块与插件以支持多种音视频格式,并提供了可直接操作友好的图形化用户界面。对于功能单一的嵌入式音频客户端而言,应在移植VLC时去除冗余代码,并在configure时对功能模块进行裁减,主要配置选项有:用“--host=mips-linux”指定目标平台类型,用“CC=mips-linux-gcc”指定交叉编译工具,用--prefix=/root/mipsbuild指定编译链接后目标文件的存放路径,用“--disable-module”选项忽略gtk、X11、lua、screen、x264、skins2、