微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于IPv6的嵌入式互联网视频应用开发

基于IPv6的嵌入式互联网视频应用开发

时间:02-07 来源:电子产品世界 点击:

引言

  交互式网络电视(IPTV)的兴起,可以为观看者提供一种新的方式来选择与控制他们的播放内容,国内外运营服务商纷纷投资建设自己的IPTV运营平台[1]。随着Web2.0的兴起,新型的视频内容服务商打破了IPTV内容提供者与内容使用者之间的界限,使得视频内容得以爆发式地增长[2]。诸如YouTube、优酷以及类似的网站,越来越多地冲击着传统电视媒体。这些视频网站的高度流行,使更多的人开始关注互联网视频,视频内容也得到了极大的丰富。

  观看者不仅希望能够接收优质的IPTV的内容,更希望能够如同普通电视一般方便地观看。IPv6网络的发展使得带宽越来越充足,嵌入式技术的发展则为方便地观看这些内容提供了基础。本文就是基于这样的现实,设计了一种通过家用机顶盒播放互联网视频的应用架构,解决播放这些互联网视频必须通过电脑的问题,使得观看这些视频内容变得简单易用。

  技术原理

  典型的互联网视频网站包括几个基本的组成部分:视频介绍、视频分类、视频本身--通常是flv文件格式及相关视频。我们在通过浏览器或者专用软件播放选定的视频之前,首先要通过关键字搜索或者分类搜索的方式找到对应视频,然后才能播放。大多数的视频网站都采用流媒体播放方式,可以让我们边下载边播放,少数需要下载后才能播放。我们设计的嵌入式应用架构包括如下几个功能组成部分:

  ● 通过网络检索并下载视频内容;

  ● 设定过滤器分类检索视频内容;

  ● 可以对下载后的视频海报进行幻灯式播放;

  ● 对v视频文件的编解码、音视频编码及音画同步;

  ● 友好化用户播放界面。

  这套架构的基本应用结构如图1所示。

  应用架构的组成与实现

  硬件系统的组成

  流媒体编解码单元是整个系统的核心部分,主要由嵌入式系统、嵌入式CPU及外围部件组成。嵌入式CPU采用三星公司的S3C2440,400MHz主频,内部集成了ARM920T微处理器和常用外围组件、64M SDRAM及256M FLASH。通过S3C2440的GPIO与以太网控制器芯片DM9000的连接,扩展了网络接口,并接入互联网,单元结构参见图2。

  嵌入式操作系统采用的是Linux,有如下特点:开放的源代码, 内核小, 执行效率高,对IPv6的良好支持; Linux的高度模块化使组件更容易加载和卸载; 内置网络支持, 容易实现内置的Web服务器等;支持多种硬件平台;提供完整的开发工具和SDK(Software Development Kit),提供图形化的定制和配置工具。

  软件设计与实现

  嵌入式网络视频点播处理时,需要进行实时的图像处理、音视频解码与同步、网络传输、图形用户界面四部分协同处理。为了确保软件开发、集成乃至最后测试时不至于过分复杂,我们对这四部分进行分层处理。从功能的角度来看,整个软件架构包括四个部分:

  ● 网络功能库;

  ● 流媒体处理库;

  ● 音视频解码库;

  ● 用户界面库。

架构接口参见图3。

  网络功能库

  网络功能库在标准IPv6协议的基础上设计了用于通过互联网处理查询/检索音视频内容,同时负责实时流媒体内容下载的应用协议。图4描述了网络功能库的处理过程:

  ①通过NETLIB_handlerInit()创建NETLIB_Handler实例,完成初始化工作;②通过NETLIB_search() 或 NETLIB_searchByIndex()进行查询;③检索的结果由Handler处理,亦可重新搜索;④NETLIB_readContent()或NETLIB_getCount()可以从handler保存的检索信息中读取指定内容;⑤检索完毕可通过NETLIB_handlerDestroy销除缓存中的结果集。

  下面介绍网络功能库主要功能函数说明,包括下面几个API。

  int NETLIB_search (NETLIB_Handler handler, char* keyword, NETLIB_QueryType queryType, unsigned int maxCount )。描述:搜索给定关键字的视频,并返回不超过maxCount指定数量的结果。

  int NETLIB_readContent(NETLIB_Handler handler, int index, NETLIB_VideoDetail* videoDetail)。描述:从检索结果中根据指定的顺序(index)读取相应的内容。

  流媒体处理库

  流媒体处理库负责处理流媒体数据,它的功能包括:①从实时媒体流中分解音视频;②选定音视频解码库对分解的音视频进行解码;③对解码后的音视频进行同步渲染,确保播放效果。处理流程参见图5。

  音视频解码库

  一个功能完善的Flv播放器必然包括以下三大核心功能模块。

  (1)标签解析模

  块:能够按照Adobe公司制定的文档格式规范对Flv文档[3](结构类似swf文件)进行解析。

  (2)影片执行模块:能够按照一定的时间顺序执行影片。

  (3) ActionScript解析引擎:能够响应用户的交互行为并更好地控制Flv文档的行为[4~5]。

考虑到使用机顶盒播放flv视频时操作交互类flv文档时的非便利性,故此我们当前实现版本中主要解决了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top