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

发布者:HappyHearted最新更新时间:2013-02-25 来源: dzsc关键字:IPv6  互联网视频  S3C2440 手机看文章 扫描二维码
随时随地手机看文章

     引言

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

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

  技术原理

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

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

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

  ·可以对下载后的视频海报进行

  幻灯式播放:

  ·对伽视频文件的编解码、音视频编码及音画同步:

  ·友好化用户播放界面。

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

视频服务的嵌入式应用架构

图1视频服务的嵌入式应用架构

  应用架构的组成与实现

  硬件系统的组成

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

流媒体编码单元结构

图2流媒体编码单元结构

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

  软件设计与实现

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

  ·网络功能库;

  ·流媒体处理库;

  ·音视频解码库;

  ·用户界面库。

  架构接口参见图3。

视频播放应用架构

图3视频播放应用架构

  网络功能库

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

网络功能库流程图

图4网络功能库流程图

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

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

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

  int NET LIB_readContent(NETLIB_Handler handler,int index,NETLIB VideoDetail*videoDetail)。摘述:从检索结果中根据指定的顺序(index)读取相应的内容。[page]

  流媒体处理库

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

流媒体处理库流程图

图5流媒体处理库流程图

  音视频解码库

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

  (1)标签解析模

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

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

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

  考虑到使用机顶盒播放flv视频时操作交互类flv文档时的非便利性,故此我们当前实现版本中主要解决了播放时必须的问题,主要功能接口描述如下。

  FLVDEC_create(Engine_Handlehandle,string name);用于创建FLV解码器实例。

  FLVDEC_control(FLVDEC_Handle, FLVDEC_Cmd id,FLVDEC ̄DynamicParams* params,FLVDEC_Status*status);用于在∏V解码器实例中实现FLV播放控制。

  FLVDEC_process(FLVDEC_Handle handle,XDM_BufDesc* inBufs,XDM BufDesc* outBufs,FLVDEC InArgs* inArgs,FLVDEC_OutArgs*outArgs);在FLV解码器实例中实现FLV播放。

  FLVDEC delete(FLVDEC_Handle handle);用于删除FLV;解码器实例。

  用户界面库

  用户界面库基于DirectFB。DirectFB是专门为满足嵌入式设备要求而开发的小巧、强大、灵活和易于使用的图形系统,并且试图成为一个建构于Linux Framebuffer Device之上的新图形标准。它在FrameBuffer的基础上提供了图形加速、输入设备处理提取、透明窗口和多重显示层的功能,能够对嵌入式系统GUI有较好的支持。与那些通用的嵌人式GUI系统相比,它具有非常简洁、高效的体系结构和硬件图形加速功能。

  运行效果

  在测试用的ΛRM2440板子上播放流畅,截图参见图6。

运行效果图

图6 运行效果图

  结论

  本文设计并初步实现了IPv6环境下嵌入式互联网视频点播应用架构。在有限资源系统开发中,使用软件系统工程的思想,用分层结构假设开发架构,在实验环境中测试播放较为顺畅。生产环境中,采用具备更好DSP性能的辅助CPU,配合本文的ARM芯片实现本架构,可以更为丌页畅地播放网络视频,进一步提高系统的性能。

参考文献:

[1]. S3C2440 datasheet http://www.dzsc.com/datasheet/S3C2440_589562.html.
[2]. ARM920T datasheet http://www.dzsc.com/datasheet/ARM920T_139814.html.
[3]. DM9000 datasheet http://www.dzsc.com/datasheet/DM9000_979498.html.

关键字:IPv6  互联网视频  S3C2440 引用地址:基于IPv6的嵌入式互联网视频应用开发

上一篇:变电所遥视监控系统研究
下一篇:嵌入式环境下分层的串行帧通信的设计与实现

推荐阅读最新更新时间:2024-03-16 13:19

【ARM】s3c2440之gpio按键控制
功能 通过GPIO,实现按键1点亮LED1,按键2点亮LED2…… 说明 1)因为2440的按键只涉及行,所以在扫描按键时比2410简单了很多 2)在进行移位操作之前,必须进行数据寄存器的初始化,否则会出错(硬件特性) 源码 /***************************************************************************** *****函数名:main() *****功 能:通过GPIO,实现按键1点亮LED1,按键2点亮LED2 *****说 明: *********************************************************
[单片机]
对链接地址0x30008000(S3C2440)的理解
当我们写链接器脚本的时候,我们会设置代码段的起始链接地址为0x30008000(S3C2440)。如果对链接地址理解错误的话,可能会出现像我这样的问题。 Q:gboot的链接器脚本里写的其实链接地址是内存中的0x30008000,再用交叉工具反汇编得到的start.S前几行代码地址都变成了0x30008000+,不太对啊。ARM启动流程里面讲处理器将NAND中的代码复制了4K到垫脚石中,垫脚石的地址是0x0,也正是因为这样,我们设置的异常向量表才有意义,处理器才能准确的找到处理异常的标号。但是把链接地址改成了0x30008000还怎么找? A:首先要理解链接地址。我认为,链接地址就是为程序假想了一个起点,之后的代码都是在这
[单片机]
一种嵌入式IPv4/IPv6双协议栈的实现
1引言 随着嵌入式系统与网络的日益结合,在嵌入式系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。并且随着 Internet技术的迅猛发展和规模的不断扩大,现行的Internet协议IPv4在地址空间、端到端的IP连接、服务质量和网络安全等方面暴露出了不足,极大地限制了IP网络的进一步发展。而IPv6所提供的巨大地址空间和网络安全等因素已经使其成为下一代因特网IP协议,为了能够支持IPv6的应用,并且考虑到从IPv4到IPv6仍然需要一个过渡期,本文实现了一种基于实时操作系统的IPv4/IPv6双协议栈结构。 2协议栈的设计要点 2.1平台无关性 本文所设计的TCP/IP双协议栈,要求不
[单片机]
一种嵌入式IPv4/<font color='red'>IPv6</font>双协议栈的实现
S3C2440 块设备驱动之框架详细分析
本节目的: 通过分析2.6内核下的块设备驱动框架,知道如何来写驱动 1、之前我们学的都是字符设备驱动,先来回忆一下 字符设备驱动: 当我们的应用层读写(read()/write())字符设备驱动时,是按字节/字符来读写数据的,期间没有任何缓存区,因为数据量小,不能随机读取数据,例如:按键、LED、鼠标、键盘等。 2、接下来本届开始学习块设备驱动 块设备: 块设备是i/o设备中的一类,当我们的应用层对该设备读写时,是按扇区大小来读写数据,若读写的数据小于扇区的大小,就会需要缓存区,可以随机读写设备的任意位置处的数据,例如 普通文件(*txt,*.c等),硬盘,U盘,SD卡 3、块设备结构: 段(S
[单片机]
<font color='red'>S3C2440</font> 块设备驱动之框架详细分析
S3c2440代码重定位详解4---拷贝代码和链接脚本的改进
本节进行拷贝代码的改进和链接脚本的改进。 前面重定位时,需要ldrb命令从的Nor Flash读取1字节数据,再用strb命令将1字节数据写到SDRAM里面 cpy: ldrb r4, /*首先从flash读出一个字节*/ strb r4, /*让后把数据写到SDRAM*/ add r1, r1, #1 add r2, r2, #1 cmp r2, r3 bne cpy JZ2440上的Nor Flash是16位,SDRAM是32位。 假设现在需要复制16byte数据, 采用ldrb命令每次只能加载1byte,因此CPU需要发出16次命令,内存控制器每次收到命令后,访问硬件Nor Flash,
[单片机]
<font color='red'>S3c2440</font>代码重定位详解4---拷贝代码和链接脚本的改进
04-S3C2440u-boot学习之u-boot分析(3)之源码第1、2阶段
参考《韦东山1期视频》第09课第3节 u-boot分析之源码第1阶段.WMV 一:第一阶段 (1)打开u-boot-1.1.6_JZ2440cpuarm920tstart.S _start: b reset(跳转到reset): 1.设置SVC32 模式; reset: /* * set the cpu to SVC32 mode */ mrs r0,cpsr bic r0,r0,#0x1f orr r0,r0,#0xd3 msr cpsr,r0 2.关看门狗; /* turn off the watchdog */ #if defined(CON
[单片机]
04-S3C2440u-boot学习之u-boot分析(3)之源码第1、2阶段
基于S3C2440的嵌入式Linux驱动——MMC/SD子系统解读(二)
本文的内容基于如下硬件和软件平台: 目标平台:TQ2440 CPU:s3c2440 内核版本:3.12.5 基于SD规范4.10,即《SD Specifications Part 1 Physical Layer Simplified Specification Version 4.10》。 在阅读MMC子系统时,一个问题随之就会产生:当我们插入一张SD卡时,系统是如何识别到这张SD卡并将它注册进系统的呢? 这一过程,源于MMC控制器驱动的不懈努力。。。。。。下面,我们从控制器驱动开始,来深入挖掘这一过程。 1. MMC控制器驱动 1.1 MMC控制器入口函数及probe方法 本文以三星的s3c2440上的MMC控制
[单片机]
泉州移动创新IPv6高清视频会议系统应用
    近日,泉州移动携手视维打造网络视频协同办公系统,开创了视频会议系统应用新模式,不仅实现每周例会和每月的员工技能培训网络面对面高效的举行,实现数十个职能部门及分支机构的之间无限的沟通协作,而且通过视维视频会议系统实现随时随地的网络视频协同办公,提高工作效率,使得业务更加高效的开展。据悉,该系统的应用,每月为泉州移动节约数万差旅费用,而且该系统称为泉州移动最有效的沟通桥梁。     需求分析     市场瞬息万变,企业管理者需要全面把握大局,带领团队迅速反应,快速作出决策。因此,沟通工具纷纷被企业管理者及其员工纷纷采用,而且深受其喜爱,例如:电话、E-mail、IM、腾讯qq、微软的msn以及各种协同办公软件OA系统等
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved