基于嵌入式Linux流媒体播放器系统软硬件解决方案
摘要:本系统选用TQ2440 开发板作为硬件平台,采用嵌入式Linux 操作系统给出流媒体播放器系统具体的软硬件解决方案,设计了一款基于嵌入式Linux 的机顶盒媒体播放器。完成了其与网络接口的实现,通过TS 流的解析实现,提供了对主流的MPEG- 2、MPEG- 4、H.264 等格式文件的支持。该系统具有良好的可移植性和可扩展性,能够满足不断变化的市场需求。
1 引言
计算机多媒体技术和网络技术飞速发展使得基于流媒体的多媒体应用也被运用在多种领域,特别是网络可视电话、远程监控、视频点播领域。伴随着计算机多媒体压缩技术的成熟和网络传输技术的发展,开发实时可靠、多功能、数字化、操作简单的基于计算机网络通讯技术和多媒体应用的网络化流媒体播放器已成为计算机、通信、消费电子产品领域(3C 产业-Computer、Communication、Consumer Electronics)技术发展的主要方向之一。
2 系统硬件设计
本文使用TQ2440 开发板作为硬件平台。
S3C2440AL 是控制核心,负责控制所有辅助设备。存储器采用SDRAM 和Flash 两种类型,能满足系统运行和调试的需要。基本端口包括以太网接口、USB 接口、两个RS232 的串口。A/D 和D/A 模块主要用于现场数据的采集与控制信号的输出。DC/DC 模块主要负责整个系统的供电。
S3C 2440AL 是三星公司设计开发的基于精简指令集的ARM9 核的CPU, 工作频率可以达到400MHz,且具有丰富的内部设备,其中主要包括:存储器管理单元MMU、16kB 的指令缓冲器和16kB 数据缓冲器、存储器控制器(SDRAM 控制器)、NANDFlash 和NOR Flash 控制器、4 通道的外部DMA 请求控制、3 个串行口、SD 存储卡读取接口、USB 主机、USB 设备、5 个脉宽调制定时器。目前,S3C2440AL 已广泛地应用于PDA、智能手机、数字多媒体等方面。
3 系统的软件设计
系统的软件组成包括:嵌入式Linux 操作系统、设备驱动程序、图形界面和浏览器程序,这些只是IPTV 机顶盒软件组成的关键部分。
3.1 嵌入式操作系统的选择及移植
本系统采用Linux 作为操作系统,并选用Linux2.6内核在嵌入式微处理器S3C2410 上移植,具体移植方法如下:
(1)准备Linux2.6 内核移植所必需的文件(内核压缩包linux-2.6.tar.bz2 及交叉编译器arm -linuxgcc-3.4.1.tar.bz2),这些文件可到Linux 官方网站免费下载。
(2)利用Linux 命令(mkdir,tar,mv 及export)安装交叉编译器arm-linux-gcc-3.4.1.
(3)修改Makefile 文件及相关硬件文件。由于内核的编译是根据Makefile 文件的指示进行的,Makefile 文件来组织内核的各模块之间的关系,记录了各个模块之间的相互联系和依赖关系。所以,开发人员要首先修改Linux2.6 根目录下的Makfile 文件,修改的主要内容是目标代码的类型和为编译内核指定一个编译器。
(4)运用Make 命令编译内核生成内核镜像文件zImage 文件,通过相应的固化软件把这个文件固化在系统相应的存储器中,完成Linux2.6 内核在ARM 微处理器上的移植。
3.2 媒体播放器的总体架构
系统实现原理:在嵌入式微处理器S3C2440AL的控制下,TQ2440 开发板通过网络接口接收来自内容服务提供商的音视频广播信息,之后运行图形界面程序获取音视频信息,并在此基础上生成音视频节目清单,将信号传至显示屏进行显示,将节目呈现给用户。用户利用显示系统提供的图形界面和浏览器使用键盘、鼠标进行控制,观看节目,其总体架构如图1 所示。
图1 媒体播放器的总体架构
3.2.1 媒体播放器与网络接口的实现
媒体播放器播放网络上的多媒体文件时最大的特点是边下载边播放的“流式”特性。在IPTV 应用中,因为多媒体数据的流式特性需要媒体播放器与媒体服务器之间进行信息交互,所以它们之间须共同遵循一个交互协议标准。本系统播放器采用RTSP 协议与服务器之间建立及管理RTSP 会话,通过网络传输协议接收来自网络上的媒体数据。媒体播放器数据接收流程如图2 所示。
图2 媒体播放器数据接收流程
3.2.2 TS 流解析实现
在MPEG-2 系统中根据传输媒体的质量不同定义了两种复合信息流:传送流(TS:Transport Stream)和节目流(PS:Program Stream)。TS 流与PS 流的区别在于TS 流的包结构是固定长度的,而PS 流的包结构是可变长度的。PS 包TS 包在结构上的这种差异,致使TS 流比PS 流对传输误码的抵抗能力更强,因此在本设计中的网络多媒体数据采用了TS 的封装格式。TS 包的结构如图3 所示,由包头和包数据两部分组成,包头长度占4B,自适应区和包数据共占184B,整个TS 包长度相当于4 个ATM 包长。
图3 TS 包的结构
因为在TS 流里可以
软硬件 解决方案 系统 媒体播放器 嵌入式 Linux 基于 相关文章:
- Android开发技巧:软硬件的巧妙整合(01-16)
- Android基本技术架构及其软硬件整合技术环节解析(01-12)
- 基于DSP的外部Flash存储器在线编程的软硬件设计(03-11)
- IEEE1394视频视觉系统中DSP软硬件设计(10-07)
- 嵌入式实时系统开发的软硬件考虑和关键工艺(10-26)
- 一种面向H.264视频编码器的SoC验证平台(06-05)