在线视频播放系统(通用10篇)
在线视频播放系统 篇1
摘要:本系统是一个多样性的在线视频播放系统, 它集成了超级管理员登录及超级管理员功能、在线视频信息管理、实现用户注册、注册用户信息管理、在线视频播放、公告信息管理、视频评论信息管理等多种功能, 观看视频, 电影, 省时, 省事。
关键词:MVC,管理,JSP,对象
在线视频播放系统满足了系统使用者进行网络视频欣赏与在线交流的需要。目前这类产品不多, 但是相应的应用环境很成熟, 市场可行性很好。系统开发采用的是流行的jsp开发技术加flash播放器及AJAX技术, 可以实现以视频播放为主的在线视频播放系统。在后台管理部分, 可以实现视频信息管理, 用户管理, 公告信息管理, 评论管理及一些辅助功能。数据库能满足系统对精度、容量、速度的要求。能快速安全地实现用户注册、登录和视频播放、查询前台功能;能准确安全地实现后台管理。前台用户只能看到通过审核的视频, 登录后只能查看自己发布的视频及评论信息;只有取得管理员资格的人才能管理本系统。系统各种管理员权限可动态分配。
从对整个系统的功能模块上分析, 该系统一共分为如下几个大的模块:
超级管理员登录及超级管理员功能;后台登录;注册用户管理;管理员用户管理;视频管理;视频类别管理;公告管理;评论管理。
系统的主要功能图如下:
1、系统设计
1.1. 数据库设计
本系统使用SQL2005数据库。数据库中一共有十九个表, 分别是一级标题表、二级标题表、视频收藏表、密码问题管理表、好友联系表、用户表、视频详细信息表、用户好友表、评论回复表、视频评论表、公告信息表、角色权限表、角色表、管理员用户角色表、管理员用户表、操作表、操作权限表, 管理员用户权限表, 权限表。
1.2. 在线视频播放系统结构图
在线视频播放系统是基于B/S模式而设计的。为了降低系统模块间的耦合度, 使系统便于维护和可以移植性, 本系统采用了MVC架构并结合DAO工厂等设计模式。其系统结构如图
1.3. 关键技术介绍
1.3.1. Servlet技术
Java Servlet是JSP技术的基础, JSP本身就是预先被编译成Servlet, 然后再运行的, 而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成, Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的, 在使用Java Servlet以后, 用户不必再使用效率低下的CGI方式, 也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。得益于Java的跨平台的特性, Servle也是平台无关的, 实际上, 只要符合Java Servle规范, Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务, 不必对于每个请求都启动一个进程, 并且利用多线程机制可以同时为多个请求服务, 因此Java Servlet效率非常高。
1.3.2. JavaBeans技术
什么是JavaBeans?JavaBeans就是Java的可重用组件技术。ASP通过COM来扩充复杂的功能, 如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBeans实现了同样的功能扩充。JSP对于在Web应用中集成JavaBeans组件提供了完善的支持。这种支持不仅能缩短开发时间 (可以直接利用经测试和可信任的已有组件, 避免了重复开发) , 也为JSP应用带来了更多的可伸缩性。JavaBeans组件可以用来执行复杂的计算任务, 或负责与数据库的交互以及数据提取等。
1.3.3. 数据库连接池技术
数据库连接池负责分配、管理和释放数据库连接, 它允许应用程序重复使用一个现有的数据库链接, 而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接, 以避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显地提高对数据库操作的性能。
数据库连接池在初始化时创建一定数量的数据库连接放到连接池中, 这些数据库连接的数量是由最小数据库连接数来设定的, 无论这些数据库连接是否被使用, 连接池都将一直保持至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数, 当应用程序向连接池请求的连接数超过最大连接数量时, 这些请求将被加入等待队列中。
1.3.4. 动态分页技术
在使用数据库的过程中, 不可避免的需要使用到分页的功能, 可是JDBC的规范对此却没有很好的解决。对于这个需求很多朋友都有自己的解决方案, 比如使用Vector等集合类先保存取出的数据再分页。但这种方法的可用性很差, 与JDBC本身的接口完全不同, 对不同类型的字段的支持也不好。这里提供了一种与JDBC兼容性非常好的方案。
JDBC和分页, Sun的JDBC规范的制定, 有时很让人哭笑不得, 在JDBC1.0中, 对于一个结果集 (ResultSet) 你甚至只能执行next () 操作, 而无法让其向后滚动, 这就直接导致在只执行一次SQL查询的情况下无法获得结果集的大小。所以, 如果你使用的是JDBC1.0的驱动, 那么是几乎无法实现分页的。
好在Sun的JDBC2规范中很好的弥补了这一个不足, 增加了结果集的前后滚动操作, 虽然仍然不能直接支持分页, 但我们已经可以在这个基础上写出自己的可支持分页的ResultSet了。
1.3.5. MVC设计思想
对于Web应用来说, 可以概括为HTML界面, 但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性, 界面的处理也变得具有挑战性。一个应用可能有很多不同的视图, MVC设计模式对于视图的处理仅限于视图上数据的采集和处理, 以及用户的请求, 而不包括在视图上的业务流程的处理。业务流程的处理交予模型 (Model) 处理。比如一个订单的视图只接受来自模型的数据并显示给用户, 以及将用户界面的输入数据和请求传递给控制和模型。模型 (Model) :就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作, 模型接受视图请求的数据, 并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子, 它从应用技术实现的角度对模型做了进一步的划分, 以便充分利用现有的组件, 但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件, 从而减少了技术上的困难。对一个开发者来说, 就可以专注于业务模型的设计。MVC设计模式告诉我们, 把应用的模型按一定的规则抽取出来, 抽取的层次很重要, 这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远, 也不能太近。MVC并没有提供模型的设计方法, 而只告诉你应该组织管理这些模型, 以便于模型的重构和提高重用性。我们可以用对象编程来做比喻, MVC定义了一个顶级类, 告诉它的子类你只能做这些, 但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存 (持续化) 。模型、视图、控制器三者之间的关系和各自的主要功能, 如图3所示。
2. 测试和编码
2.1. 调试和测试
本系统的调试工作并不是在所有模块设计完成之后才进行的, 当某个模块编译完成之后都要进行调试, 这样做的好处是可以及时的发现问题并及时的对其进行解决, 避免了当某个模块都设计好后才进行调试, 从而出现问题不易解决且做大量的重复性工作。
当所有的功能模块定义完成之后, 将它们连于主菜单。这样使得各模块必须经过相互协调, 使得系统整个界面更为直观, 方便用户的使用。对于运行的模块, 不仅要注意局部, 而且要照顾全局进行总体调试。如果调试过程中发现局部影响了全局, 则需在最小限度修改的原则上做合理的调整。如果是某个模块的问题, 则单独进行修改, 使其适应全局的需要。这样多次的反复调试, 不断改进, 整个系统才可确定为初步正确。
在开发大型软件系统的过程中, 需要面对错综复杂的问题, 因此, 在软件生存周期的每个阶段都不可避免地会产生错误。我们力求在每个阶段结束之前通过严格的技术审查, 尽可能早的发现并纠正错误。测试的目的就是在软件投入生产性运行之前, 尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤, 它是对软件规格说明、设计和编码的最后复审。
尽管面向对象技术的基本思想保证了软件应该有更高的质量, 但无论采用什么样的编程技术, 编程人员的错误都是不可避免的, 而且由于面向对象技术开发的软件代码重用率高, 更需要严格测试, 避免错误的繁衍。因此, 软件测试在面向对象编程里更具有它的重要性。
代码测试:调试过程中通常要编写测试数据。测试数据除采用正常数据外, 还应包括一些异常数据和错误数据, 用来考验程序逻辑上的正确性。测试数据是经过精心挑选的, 使程序和模块中的每一条语句都能得到执行, 即能够测试程序中的任一逻辑通路。常用的测试数据有以下几种:
·用异常数据调试。例如用不匹配要求的数据类型参加测试, 检查程序出现异常。
·用错误数据调试。试验程序对错误的处理能力, 包括显示出信息以及容许修改错误的可能性。具体检查内容有:
·输入键号错误时 (包括错的键号和不应有的键号) 能否及时验出和发出出错信息, 并允许修改。
·输入数据错误时 (包括错误数据、不合理数据和负数) 能否及时验出和发出出错信息, 并允许修改。
·操作错误时 (包括磁盘错误、操作步骤或方法错误) 能否及时检出并发出警告信息, 并允许改正。
2.2. 系统维护
系统的维护主要分为纠错性维护、适应性维护、完善性维护和预防性维护。
·纠错性维护:由于本系统测试不可能揭露系统中存在的所有错误, 所以当系统运行到一定时期后会暴露出系统内隐藏的错误, 这时要及时纠正。
·适应性维护:这里指为了使本系统更好的适应环境的变化而进行的维护工作。一方面由于计算机技术的飞速发展, 原来的系统不能适应新的软硬件, 另一方面, 应用对象也在不断的发生变化, 将导致系统不能适应新的应用环境, 因此, 有必要对系统进行调整, 以保证系统时时都能满足用户要求。
·完善性维护:要根据用户不断提出的新要求来不断扩充原有的系统的功能。
·系统程序和数据的维护又包括程序的维护, 数据文件的维护, 代码的维护等等。维护是系统在使用中应对系统注意, 并加以维护, 维护包括:
·系统运行的日常维护
·系统运行情况的记录
·系统程序和数据的维护
参考文献
[1].北大青鸟编著的《Java Web应用开发》, 科学技术文献出版社, 2006.1。
[2].北大青鸟编著的《SQL Server数据库设计和实现》, 科学技术文献出版社, 2006.1。
[3].张吉才编著的《Java Web应用开发教程》, 科学出版社, 2005。
[4].叶达峰曹衍龙编著的《AJAX编程技术与实例》, 2007。
[5].皱竹彪编著的《JSP网络编程从入门到精通》, 2006。
[6].孙鑫编著, 《JAVA Web开发祥解》, 电子工业出版社, 2007。
[7].计磊李里周伟《精通J2EE Eclipse Struts HibernateSpring整合应用案例》, 2006。
当视频播放成为陪衬 篇2
双系统的ARCHOS 5
ARCHOS 5现在已经不是简单的播放器了,而是一台采用自开发图形系统和Google的Andreld两套系统的随身电脑。Android是Google推行的一款嵌入式操作系统也就是说在ARCHES 5上面,除了自身系统带有的基础功能以外还带有一套自由度极高的开发系统,网友可以任意添加和修改使用Andro Jd系统的软件,而其网络浏览软件应用等功能已经可以让我们体验到G-Phone的方方面面,而视频播放等功能在定程度上则变成了陪利。
双系统的好处不必多说,除了以前爱可视爱好者的习惯操作以外我们还能及时感受到另外一种开发系统给随身电脑带来的不样感受这点可以说是ARCHES非常有创意的个尝试。
超强的网络能力
拿着ARCHES 5的时候不票让笔者想起几年前的一句网络就是计算机,当时网络还没有普及我们对于网络应用还处于比较初级的位置所以并不能透彻地理解这句话。而今天, 个小巧的ARCHOS 5已经具有强大的网络功能通过WiFi连接,可以在你的无线局域网中搜索到每 台计算机并且浏览播放上面的内容用WiFi接入网络,还可以进行网络浏览除了屏幕偏小这点差异之外,打开网页的全部功能都与电脑浏览相同。因为网络的普及我们更好地将互联网应用加入了每一台设备从而让这些原本单功能的设备具有了越来越强大的应用功能。和现在的各类随身设备样,ARCHES 5也可以自由开发软件,实现更全面强大的功能但是对于那些不太熟悉Android系统的朋友可能在使用上会有些吃力,需要更多的网络和系统知识才能玩得得心应手。
娱乐应用丰富
个人感觉ARCHOS 5更多注重的是娱乐应用ARCHOS 5在基本的操作系统之上增加了不少内置的应用 其中主要的有Deezer网络电台Dailymotion影音服务Twidroid博客客户端eBuddy IM通用及时通讯客户端CraigsPhone虚拟社区等等。几乎囊括了常见的网络娱乐站点和应用,只可惜美中不足之处在于这里面内置的站点和应用绝大多数都是欧美流行的在国内并没有很多用户不过相信随着ARCHOS 5的上市,将会有越来越多国内流行的应用被内置在ARCHOS 5中,随着软件系统的升级覆盖到每 个用户。
音视频播放依旧
作为MP3、MP4播放器的老字号ARCHOS在播放器这领域拥有很高的声望,而这款基于网络功能的ARCHOS 5同样将播放功能发挥得淋漓尽致。现在,网络上通行的视频格式越来越丰富,即使是在电脑上也难得找到个软件能够通吃,而ARCHOS5可以比较自如地播放各种不同压缩的avi文件各种不同的mkv打包格式以及常规MP4播放器都不能处理的real格式等。而在高清领域,因为屏幕的限制,ARCHOS 5提供了对MPEG-4、H.264等不同的高清编解码的支持,实现720P分辨率的播放,而播放效果也绝对可以让普通用户满意。
倚仗强大的网络功能,ARCHOS 5对于存储容量则没有更高的要求,从我们的实际应用感觉上看来,在WiFi(802.11g)的连接下,可以很流畅地播放常规影片而不会有任何“卡”的感觉,但是较为遗憾的是在没有无线网络的环境下,由于不支持3G功能,所以网络功能会彻底失去意义。
保留扩展功能
作为娱乐应用的电子产品,ARCHOS 5还具备很多功能上的扩展,其中内置调频收音机功能就是 个体现,而如果需要更多更丰富的娱乐应用,可以依靠添加配件的万式来实现例如使用DVR底座可以与电视等常规设备连接播放或者录制电视节目,电池端口可以连接扩展电池,获得更长使用时间等。
硬盘产品新选择金士顿SSD固态硬盘
Windows 7引导固态硬盘普及瓜熟蒂落 微软新一代操作系统Windows 7应该是目前IT行业最热门的话题之一。这一操作系统的推出必将掀起硬件行业不小的风波。固态硬盘作为最能适应Windows 7系统的硬件设备之,将当仁不让的成为这一事件的“主角”。在Windows 7系统的运行过程中,固态硬盘的大性能优势就是“流畅度”。固态硬盘读取Windows 7系统的小规模数据的速度提高了100倍,读取视频等大型媒体文件速度则是机械硬盘的两倍。所以,随着Windows 7的到来,固态硬盘也必将成为主流。
金士顿作为全球存储领袖,在不断提升闪存技术的同时,也将为存存储产品的容量发挥到了极致,并且价格却显得更加平民化。因此金士顿扩大了SSD固态硬盘产品线并形成了系列产品针对不同类型客户,以面对用户的不同需求。目前,金士顿的SSD固态硬盘产品拥有E M。V+和V这四大套装系列,分别瞄准高性能企业用户、商务用户电脑玩家和普通个人用户。而999元套装的价格令普通用户也能感受SSD固态硬盘带来的巨大性能提升。
SSD固态硬盘与机械硬盘双剑合璧
当然,固态硬盘所拥有的优势固然多,如性能好能耗低,但其市场的价格还是不低,并且人们对于固态硬盘还需要有更多的了解。在机械硬盘性能低能耗高,但容量大,价格也很便宜的前提下,小编给大家提一个建议:消费者可将SSD固态硬盘与传统硬盘两者结合起来使用,实现高性能和低成本的完美结合。采用混合使用的方式,使用SSD固态硬盘作为系统盘,使用金士顿特别制作的硬盘保护盒,将传统硬盘作为移动硬盘来使用。”将传统硬盘转变为移动硬盘,不仅增加了大容量的存储空间,而且SSD固态硬盘实现您Pc的轻便与快捷的使用特点,绝对是您移动存储的最佳选择。
金士顿分别推出适合笔记本和台式机的SSD固态硬盘系列产品套装,它们轻松将台式机和笔记本升级至固态硬盘,而且还能发挥老硬盘的存储空间优势。金士顿SSD固态硬
盘产品套装的推出,将会为普通用户使用SSD固态硬盘提供最大支持。
对于相机,人们总是希望它具有单反相机的拍摄效果,而外形上却又都希望能有着类似卡片机的轻巧便携·性。如果说这在以前是一个无法实现的美丽梦想的话,那现在也许并不再是痴人说梦的笑话了,因为松下DMC-GF1可按镜头数码相机来了,它在带来专业性的操作手感,全面的拍摄功能和出色的拍摄效果的同时,依然不失可换镜头的灵活性和轻巧迷你的便携性。
灵活性来源于可换镜头
相对于紧凑型数码相机,数码单反的最大优势之一无疑就是镜头的可更换性,而DMC-GF1也是一款可以更换镜头的数码相机,在配套镜头上除了有松下推出的20mm f/1.7的饼干镜头,还可以直接使用松下或奥林巴斯的微型4/3系统的镜头,如松下的14-45mm/F3.5-5.6和45-200mm/F4.0-5.6两款镜头。另外通过转接环DMC-GFl还可以使用数量众多,焦距段各不相同的松下或奥林巴斯的4/3系统的镜头,甚至是徕卡M/R镜头。可更换镜头为有不同拍摄需求的用户提供了较强的灵活性,无论用户是热衷于拍摄宽广宏伟的建筑或名山大川,还是鲜花,昆虫般大小的细微对象,DMC-GF1都有大量的镜头可供选择使用,为用户带来了极大地拍摄性能上的灵活性。
专业相机的操作手感
虽然外形非常紧凑小巧,由于在机身正面右侧设计了凸起的手柄,因此把持时的手感依然出色,用户可以牢固稳定地把持相机,另外在机:身背后的右上角设计了参数拨轮,这是专业数码单反相机的常见设计,它可以在拍摄时让用户可以快速地实现曝光参数的快速调节。机身顶部有一个拍摄模式和驱动模式的组合操作单元,在照相功能上DMC-GF1同专业的DSLR—样,也拥有全面的自动和手动曝光模式,通过机身顶部的拍摄模式转盘即可选择相应的模式,而且在工作模式转盘下面还有单张、连拍和定时拍摄的切换开关。
出色的拍摄效果
DMC-GF1采用了1210万有效像素4/3规格的Live MOS传感器,带有超声波除尘功能,这对于没有反光板和快门保护而依然可更换镜头的DMC-GF1来说非常重要。DMC-GF1的最快快门速度为1/4000秒,这和当前中端消费级数码单反相机的水平保持一致,高速连拍的速度为3张/秒,如果不是采用RAW格式存储,则可以实现无限连拍,即使是采用RAW格式,也可以一次最多拍摄7张。另外DMC-GF1的ISO感光度最高到达了ISO3200,而且DMC-GF1在高ISO感光度下的降噪能力表现出色,照片的整体动态范围表现良妩在性能参数和响应速度上DMC-GF1与当前的主流消费级数码单反保持在同一水平,在拍摄上不会让用户有不够劲的感觉。除了常规的曝光模式外,这一次DMC-GF1特别设计了一个我的色彩模式,其中有8种颇具特色的预置模式,包括富有表现力,乡愁怀旧,纯洁自然,文雅上品。单色,动态艺术,轮廓,自定义。其中的自定义模式可以让用户自行设定画面的色彩、亮度和饱和度的参数,让用户可以拍摄更多体现自己创意的照片。
高清摄像也精彩
除了照相功能外。DMC-GF1同时支持720p的高清视频拍摄功能,而且DMC-GF1在机身顶部设置了一个独立的摄像键,用户按下该键即可开始高清摄像操作,当然在机身左侧设计的HDMI高清信号接口会让用户的高清影像的欣赏更加惊心动魄。
口袋里的拍摄专家
浅谈校园视频播放系统的组建 篇3
1 组建的意义
完善的视频服务系统, 都具有检索、添加、删除、控制等功能。它可以做到实时更新, 强大的在线服务能力, 结合本区域教学实际需要, 无论在校园内的任何位置, 只要能够连接到校园网上, 登录到视频服务系统, 就可以把生动活泼的教学视频信息展现在您面前。校园网视频服务系统建设优越性有如下几点:
1.1 针对性强
如今人人都知道信息资源最丰富网络的是Internet。要搜索什么资源基本上都能找到, 但是, 它上面的资源多而杂, 搜索范围大。查找知识, 有时会找到很多无用的信息, 还要花上多时间。特别是一批计算机操作水平不高的老教师, 更是雪上加霜, 这是广大教师的共识。那么, 建立自己的校园网络, 整合符合本校的资源, 就解决这一难题, 特别是视频服务, 要比Internet在线播放的效果好很多, 不会出现播放一会, 暂停一会等待现象。
1.2 灵活性强
在信息时代的今天, 多媒体教学也融入了课堂, 知识的更新速度也是惊人的, 学校每年都采购几千甚至上万的视频教学光盘, 给广大教师“冲电”, 利用传统的方法, 每位老师看一天, 全校几十个教师, 几十天才能看一遍。采取集体学习的方法, 一天、两天大家可以接受, 要连续学几天, 没有人愿意去学的。如果建立视频服务系统, 给它放在校园网上, 想什么时间观看就什么时间, 想看什么学科看什么学科, 想看几遍就看几遍。要比传统的方法灵活的多, 也是全体教师最愿意看到的。
1.3 管理方便
在视频系统的管理下, 把视频文件分类复制到视频服务器系统中, 简单的设置就可以共同分享了。无须专人负责视频光盘的借出、归还等手续。还避免了光盘的损坏、丢失等现象。
2 关键技术
2.1 流媒体技术
流媒体技术是视频播放系统关键技术。流媒体技术也称流式媒体技术.所谓流媒体技术就是把连续的影像和声音信息经过压缩处理后放上网站服务器, 让用户一边下载一边观看、收听, 而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的计算机上创建一个缓冲区, 在播放前预先下一段数据作为缓冲, 在网路实际连线速度小于播放所耗的速度时, 播放程序就会取用一小段缓冲区内的数据, 这样可以避免播放的中断, 也使得播放品质得以保证。现在Internet上流行的百度音乐盒、pps、快播等都是基于流媒体技术而研发的音视频播放器。
2.2 DNS及IIS
DNS是域名系统 (Domain Name System) 的缩写, 机器之间的通信是通过IP地址 (例如:192.168.0.1) 来实现的, IP地址是由四组数字组成, 不便于人们的记忆, 而人们经常采用名称的记忆方式 (例如:搜狐网址为:www.sohu.com) , 于是在机器识别的IP地址与人们易记的域名之间就存在着一种转换工作被称为域名解析, 域名解析需要由专门的域名解析服务器来完成, DNS就是进行域名解析的服务器。
IIS是Internet Information Services (互联网信息服务) 的缩写, 是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。是一种Web (网页) 服务组件, 其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器, 分别用于网页浏览、文件传输、新闻服务和邮件发送等方面, 它使得在网络 (包括互联网和局域网) 上发布信息成了一件很容易的事。
2.3 ASP.Net组件
ASP.NET的前身是ASP。ASP是一项微软公司的技术, 是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。指Active Server Pages (动态服务器页面) , 运行于IIS之中的程序。
3 实施构建
3.1 硬件选购
服务器是是视频播放系统最重要的硬件。其性能要根据教师的数量、机房电脑的数量以及同时在线访问量来确定。对一般中小学校来讲, 能同时满足200人在线播放就足够用的了。选购要注意以下几点: (1) 不需要高频CPU; (2) 高稳定性; (3) 硬盘要足够大;考虑到视频文件占用空间大, 收集整合的文件多, 建议500GB以上。 (4) 主板上要有升级硬盘、内存等硬件的空间。例如塔式强氧TS555、正睿I143738S等型号都可作为中小学校园网络视频服务器的首选。
3.2 软件配置
1) 安装网络操作系统, 如windows sever2003或windows sever 2008。
2) 在Windows Server 2003中安装DNS。默认情况下Windows Server 2003没有安装DNS服务器组件, 用户需要手动添加, 操作步骤如下所述:第1步, 在“控制面板”中打开“添加或删除程序”窗口, 并单击“添加/删除Windows组件”按钮, 打开“Windows组件安装向导”对话框;第2步, 在“Windows组件”对话框中双击“网络服务”选项, 打开“网络服务”对话框, 如图1所示;在“网络服务的子组件”列表中选中“域名系统 (DNS) ”复选框, 并单击“确定”按钮。按照系统提示安装DNS组件。在安装过程中需提供Windows Server 2003系统光盘或指定安装文件路径。
3) 添加主机
DNS服务器系统安装成功后, 需要添加主机名 (如:www.lqyqzg.com校园网主页、ftp.lqyqzg.com校园资源库、vod.lqyqzg.com校园视频服务系统) 。添加主机步骤如下所述:
第1步:打开DNS窗口。在“控制面板”中打开“管理工具”, 并双击“DNS”;
第2步:双击“DNS服务器名称” (本机计算机名称) 右击“正向查找区域” (“反向查找区域”) , 在快捷菜单中选择“新建区域”, 打开“新建区域”向导, 单击“下一步”, 在“区域类型”对话框中选择“主要区域”, “区域名称”对话框中输入“lqyqzg.com”, 单击“下一步”, 直到“完成”;
第3步:双击“正向查找区域” (“反向查找区域”) , 展开子菜单, 右击“lqyqzg.com”, 在弹出的快捷菜单中, 选择“新建主机”, 如图2所示, 在“新建主机”对话框中名称中输入“vod”, IP地址输入DNS服务器的IP地址 (如:192.168.0.1) , 单击“添加主机”, 最后单击“完成”。
4) 在Windows Server 2003中安装IIS和ASP.Net组件
视频服务系统的工作环境需要安装IIS6.0和ASP.Net组件的支持, 在Windows Server 2003系统服务器上安装IIS 6.0和ASP.Ne的步骤如下所述:
第1步, 打开Windows Server 2003系统的“控制面板”, 双击“添加或删除程序”图标, 在打开的“添加和删除程序”单击“添加/删除Windows组件”按钮, 打开“Windows组件向导”对话框;
第2步, 在“组件”列表中找到并单击“应用程序服务器”选项, 单击“详细信息”按钮。在“应用程序服务器”对话框中分别选中“子组件”列表中的ASP.net和“Internet信息服务 (IIS) ”复选框, 依次单击按钮开始安装, 可能会提示插入Windows Server 2003系统安装光盘或指定安装源文件路径。
3.3 安装CMS系统
现在网络上比较流行视频管理系统有“乐风影视CMS系统”、“雷风影视CMS系统”等。以“雷风影视CMS系统”为例配置校园网视频服务系统。
(1) 下载文件, 保存位置
在硬盘最大的分区中 (以e:为例) 创建一个文件夹名为vods, 从网上下载后, 将文件内容解压到e:vods中;
(2) 发布系统前的设置工作
打开IIS窗口, 在“本地计算机”下有一个“网站/默认网站”文件夹, 右击“默认网站”有快捷菜单中, 选择“属性”, 打开“默认网站属性”对话框。
(1) 在“网站”选项卡“网站标识描述”为”vod”在“高级”按钮中, 添加“主机头值”为vod.lqyqzg.com, 如图3所示。
(2) 在“主目录”中路径设置为“e:vods”, 在应用程序框架里有一个“配置”按钮, 单击进入应用程序配置对话框, 在“选项”选项卡中, 设置“启动父路径”。
(3) 在“文档”中, 删除所有默认文档, 添加“index.asp”。
(4) 单击“HTTP头”选项卡, 单击“MIME类型的框架里MIME按钮, 新建一个".RMVB"格式的文件, 如图4所示。 (5) 在“默认网站”下有一个“Web服务扩展”右侧所有的扩展全部允许, 因为该系统是.asp系统的文件。
(6) 设置“e:vods”的权限。右击“vods”文件夹, 选择“属性”菜单, 弹出“vods属性”对话框, 在“安全”选项卡中添加一个用户“everyone”, 权限为“完全控制”。
(3) 在“IE”地址栏中输入“http://vod.lqyqzg.com/admin/index.asp”, 输入后台管理的用户名和口令 (默认均为admin) .进入后台管理系统, 如图5所示。
(1) 站点设置
在“系统管理, 站点设置”中, 设置网站名称 (如:临泉县杨桥职高视频网站) 。
(2) 栏目设置
在“内容管理, 栏目设置”中, 设置导行菜单 (如:语文、数学、英语等学科, 如图6所示) ;在“地区管理”中, 设置“年级” (如七年级、八年级、九年级等) ;
(3) 添加视频
在“e:vods”中创建一个名为vod的文件夹, 要发布的文件, 先放到“e:vodsvod”中, 然后在“添加影片”栏目中, 设置该视频是哪一学科, 哪一年级使用, 视频名称等信息;在“影片地址”中先选择播放器为“普通播放器”, 地址栏中输入“http://vod.lqyqzg.com/vod/视频名称。最后单击“添加”按钮。此时就可以在远程机上进行播放视频了。
(4) 影片管理
在该选项中, 可以“修改”、“删除”视频文件。
(5) 美化页面
美化页面可以在“页面模板管理”中设置。
3.4 客户机的设置
每台客户机想要访问刚刚创建的视频网站, 还要进行必要的设置: (1) 将本机的DNS设置为校园网DNS服务器的IP地址; (2) 在本机上要安装realplay播放器或该播放器的插件。
4 结束语
校园视频播放系统是校园网信息化建设的重要内容之一, 它的建成进一步丰富了学校电子教学资源, 为广大师生提供了自主学习的平台, 更有利于提高教师的教育教学水平及业务能力。
摘要:校园视频播放系统是校园网信息化建设的重要内容之一, 它是基于Web页面, 利用流媒体技术, 从而实现视频资源实时在线播放。文章以雷风影视CMS系统为例, 详细阐述了校园视频播放系统的组建过程中涉及到硬件设备的选配, DNS、IIS等相关程序的安装及雷风影视CMS系统的安装、栏目编辑及视频的增删等整个视频播放系统的管理, 为信息技术教师、校园网管理员等人员在今后的组建视频播放系统时, 提供帮助及参考。
关键词:流媒体,视频,播放系统,CMS系统
参考文献
[1]沈大林.局域网组建[M].北京:中国铁道出版社, 2009.12.
[2]方东菊.网页设计与网站建设[M].重庆:重庆大学出版社, 2005.9.
播放画面卡壳 看我视频提速 篇4
画面不畅固然存在着影片质量太差、网络带宽过低等我们无法解决的因素,但设置不当、没有利用一切有效手段尽可能提高视频播放的流畅度,却是其中最为主要的原因。
一、本地视频发卡 看我这样对付
1.开启硬件加速及Directdraw加速功能
Windows系统提供的硬件加速和Directdraw加速功能,能够让PC在处理大量图形程序的时候,运行得更流畅,如果这两个功能没有开启,可能会影响视频全屏播放的速度,也可能会导致在播放视频过程中出现卡、板的现象。另外,如果你将显示器的“颜色质量”和“屏幕刷新频率”的值设置得过高,也可能会出现上述情况。
实例3:降低屏幕刷新率
经过上面的设置后,如果问题仍然存在,可以考虑降低当前显示器的“颜色质量”或“屏幕刷新频率”,二者调整其一即可。
以调节屏幕刷新率为例,在实例2所示的界面中,切换到“监视器”标签,在“屏幕刷新频率”项的下拉菜单中,选择一个低于当前刷新率的数值即可。
2.让播放器占用更多的资源
媒体播放需要一定的软硬件环境,其中硬件环境是一个硬指标,它直接决定了播放是否流畅。如果你的机器配置较低,而又想得到比较流畅的播放效果,唯一的办法是允许所用的播放器占用更多的系统资源。以目前用户最多的暴风影音2007全功能完美版为例。
3.借助外援流畅播放HD
HD DVD(High Definition DVD,高解析DVD)是一种数字光储存格式,现已发展成为高清DVD标准之一。许多朋友在用暴风影音和KMPlayer播放该格式的视频文件时,仍然存在着播放卡、板的现象,究其原因,是因为这些解码器对HD的支持不佳的缘故。这时,我们不妨移花接木,借用Moonlight-Elecard MPEG Player播放器中的“月光三套件”解码器来替代原工具中的解码器。由于该解码器在对HD支持方面有着得天独厚的优势,所以可很好地解决HD视频播放不畅的问题。
相比于暴风影音,KMPlayer在播放HD视频方面效果明显要好得多,下面我们仅以它为例,说说借用方法。
下载安装Moonlight-Elecard MPEG Player后,启动KMPlayer播放器。
如图完成所有设置,以后再播放HD影片时,你就会发现非常流畅了。
小提示
针对Windows Media Player 10媒体播放器,微软推出了关于WMV视频播放的DXVA加速补丁,可以提高WMV-HD视频播放的流畅度,减少对系统资源的占用率。适用范围包括720p和1080p格式的WMV-HD视频。如果你的显卡支持DXVA加速,可以到http://download.microsoft.com/download/f/5/9/f591dedb-f4f4-4cfc-bda5-3ca162331852/WindowsMedia-KB891122-x86-CHS.exe和http://download.microsoft.com/download/f/9/6/f969ae58-75d4-4241-b58c-9a295372d8c0/windowsmedia10-kb888656-x86-global-enu.exe下载这两个补丁,然后分别安装即可。
二、在线视频不爽 看我这样对付
在线视频发卡,除了可以加大视频文件的缓冲时间外,还可利用一些专业的视频加速工具,如VideoSpeedy和“疾风视频”等,加快网络的传输速度,从而让节目更流畅地播放。
1.增加缓冲时间
2.使用VideoSpeedy加速
VideoSpeedy是一款永久免费的视频加速软件。通过它可以明显地加快在线视频的下载速度,提高视频播放的流畅度。目前该工具支持加速的网站包括:youtube、土豆网、我乐网、酷6网、新浪播客、东方宽频等。
软件安装完毕会在系统托盘区添加一个图标,此时打开上述网站并播放视频节目,你会看到系统托盘区的图标在不停地转动,表明它已经在为视频节目提供加速服务了。
3.利用“疾风视频”加速
疾风视频是目前世界上唯一可以方便地加速和下载Flash视频的软件。利用它,几乎无需等待Flash视频下载完成,就可以比原来更快地欣赏节目。
和VideoSpeedy一样,安装完成后,软件会在系统托盘区显示一个图标,然后无需设置,它就会在你欣赏视频时,默默地起到加速的作用了。
小提示
在线视频播放系统 篇5
1.1 网络视频技术发展现状
由于一些发达国家在计算机技术相关领域具有领先优势, 因此在网络视频技术的研究和实践方面也要领先国内3至5年。在国外, 视频网站以You Tube最具代表性, 它是由3名Pay Pal (世界著名的在线收付款公司) 前职员于2005年2月创办, 采用基于RTMP协议的FMS。由于该网站发展速度迅猛, 2006年10月被Google相中, 并以高达16.5亿美元的价格将其收购。目前, 该网站日浏览量超过40亿次 (部分国家网民无法正常访问) , 2011年访问量在全球所有网站中排名第二位。在国内, 视频网站则兴起于2006年, 不仅有优酷、土豆和酷6等专业视频网站, 还有各门户网站推出的视频网站和以CNTV为代表的融网络特色与电视特色于一体的网络视频公共服务平台。其中, 规模最大的优酷网目前日浏览量约18亿次。
目前, 国内外网络视频采用的流媒体系统主要有:微软公司的Windows Media Server、Real Networks公司的Helix Server、Adobe公司的Flash Media Server (以下简称FMS) 。FMS基于RTMP (Real‐Time Messaging Protocol) 等协议, 是用于用户之间相互通信的新平台;其中, 最新发布的FMS4还可以使用RTMFP (Real‐Time Media Flow Protocol) , 具有应用程序级多播和多播融合等强大功能, 使用的流媒体格式为swf和flv, 客户端是Adobe Flash Player。flv格式的视频具有形成文件极小、加载速度极快、CPU占有率极低和视频质量良好等特点, 是目前增长最快、使用最为广泛的视频传播格式。
1.2 P2P技术
P2P是一种分布式应用程序体系结构, 可以简单地理解为处于计算机网络中的每台计算机都作为其中的一个节点, 既是一台客户端同时也是一台服务器, 因此, 在不需要单独的服务器的情况下就可以实现数据共享。基于P2P技术的系统就是建立在应用层的本地或网络物理拓扑之上, 不仅可以实现一个抽象的覆盖网络, 还能够发现索引和同行。
根据共享文件和节点索引所存储位置的不同, P2P系统可以分为集中式P2P系统、纯P2P系统和混合P2P系统3种类型。集中式P2P系统的特点是用一台中心服务器来实现索引功能来引导整个系统, 这样做的好处就是能够实现对共享资源的快速查找和更新, 进而提高了网络的可管理性, 不足之处就是稳定性非常差。纯P2P系统的特点是只有一个路由层, 每个节点既是一台客户端同时也是一台服务器, 且不需要设置中心服务器和首选节点, 每个用户随机接入网络节点之间的查询和共享均直接通过相邻节点广播接力, 各节点会记录搜索路径来防止搜索环路径的产生。这样做的好处就是解决了可扩展性和容错问题, 不足之处是易造成网络的不稳定和易受到攻击。混合P2P系统则包含了纯P2P分散和集中式P2P快速查找这两个优点, 并且根据各节点的计算能力、内存大小、连接带宽和网络滞留时间等指标将节点分为搜索节点和普通节点两种类型。搜索节点和其相邻的普通节点构成一个群集, 群集内采用集中目录式的P2P模式, 由于普通节点的文件搜索属于第一的本地群集, 只有查询结果不够的时候, 再通过搜索节点之间进行有限的泛洪, 这非常有效地消除纯P2P结构中使用泛洪算法带来的网络拥塞、搜索迟缓等不利影响。此外, 因为每个群集中的搜索节点监控所有普通节点的行为, 以确保在局部控制网络的恶意攻击, 在一定程度上提高整个网络的负载平衡。
1.3 RTMFP协议
目前被广泛应用的FMS3是基于RTMP协议, 该协议被国内外视频网站普遍采用就足以证明其优点之多。然而, 其不足之处在于, 由于要在每一个终端用户与服务器之间实现点对点网络连接, 这样就导致随着终端用户的增加或视频码率的提高, 为保证一定的服务质量就必需增加硬件和带宽, 从而增加服务成本。为了彻底解决RTMP协议的不足, Adobe公司最近开发了一套新的基于UDP的通信协议, 即RTMFP协议。该协议能够通过C/S和P2P模型高效地传送多媒体信息, 可以让使用Adobe Flash Player的终端用户之间进行直接通信, 可以让大部分数据在终端用户之间直接传输, 无须再经过服务器中转, 大大地减少了视频直播和点播等应用的网络带宽消耗, 减轻了服务器的负担。RTMFP自Flash Player10引入, 以展到现在的Flash Player11版本及以上, 已经相对成熟。FMS4开始支持RTMFP协议, 本系统采用的FMS版本是4.5, 下文中的FMS即为该版本。
2 系统设计
本系统采用.NET技术和SQL Server 2005数据库, 应用B/S结构, 使用Microsoft Visual Studio 2012.net工具开发而成。使用支持异步请求的Ajax技术提供即时通信, 该技术能保证用户在线观看视频时用户之间可以实时交流。利用基RTMFP协议FMS4.5提供流媒体服务, 它可以在服务器与客户端之间点对多点的形式高效、流畅地传输视频流。RTMFP以128位AES加密, 用户使用RTMFP进行数据传输, 是比较安全的。此外, RTMFP具有快速连接恢复和IP移动性两个功能, 能够有助于减少连接错误的影响。
2.1 数据库
本系统中需要用到的表大致可以分为用户相关表和信息相关表两大类。其中, 用户相关表主要包括用户信息表和用户角色表, 用户信息表由ID、用户的名称、建立用户的时间和备注等字段组成;用户角色表则包括ID、角色类型、角色获取方式、角色更新的时间等字段。信息相关表主要包括交流信息表和视频信息表两个表, 交流信息表由ID、交流参与者的名称、播放视频的ID、信息内容和备注等字段组成;视频信息表由ID、视频的ID、视频名称、视频简介、视频来源、视频添加的时间、视频时长和备注等字段组成。
2.2 即时通信实现
Ajax即Asynchronous Java Script and XML, 它不是缩写词, 而是由Jesse James Gaiiett创造的名词, 用来代表一种支持异步请求的创建交互式网页应用的网页开发技术, 该技术的核心是Java Script对象Xml Http Request, 该对象能够让用户在不阻塞用户的前提下使用Java Script向服务器发出请求并处理响应。Ajax是一种技术而不是一种新的编程语言, 应用该技术开发的Web应用程序可以利用Java Script在不重载页面的情况与Web服务器交换数据, 而且该技术不需要安装其他任何浏览器插件, 只需要用户浏览器允许执行Java Script即可。Ajax引擎是一个复杂的能够读写服务器并更改DOM内容的Java Script程序, 由于它采用的异步交互过程消除了交互过程中的处理等待, 从而使得用户操作与服务器响应可以异步化。本系统中, 信息管理是实现用户实时信息交流中最重要的一个环节, 主要包括用户在线交流过程中的信息记录、存储和管理, 这些都是通过ASP.NET的Call Back机制来实现的。
2.3 P2P实现
在创建P2P的应用之前, 首先需要在客户端与FMS之间创建RTMFP协议的连接, 然而, 由于RTMFP协议是基于UDP协议的, 但是并不是所有的网络环境都支持UDP协议, 所以需要保留RTMP连接方式以确保本系统的可用性。客户端负责通信的Communicator类中的My All Connect函数主要代码如下:
接下来设置服务器端的FMS, 实现管理并分配P2P连接。当户端与FMS成功创建RTMFP连接后, FMS会为每个客户端连接创建一个256位的唯一ID, FMS将此连接的唯一ID保存在名为far ID的属性值中, 并将客户端各自对应的此唯一ID发送给通信对方, 客户端之间正是通过这个ID进行P2P连接。将各自的对等ID传送给对方的主要代码如下:
3 结语
介绍了网络视频技术的发展现状和一种基于RTMFP协议的视频播放系统设计与实现, 该视频播放系统采用Adobe在FMS4中引入的新协议RTMFP, 应用最新版本的FMS实现P2P, 应用Ajax技术实现即时通信, 可以在减轻服务器压力的同时, 充分利用现网络资源提供高质量的网络视频服务, 在远程教学等领域具有较高的应用价值。
参考文献
[1]陈木朝.基于AJAX和FMS的视频直播学习系统设计与实现[J].电脑编程技巧与维护, 2011, (04) .
[2]陈木朝.RTMP和RTMFP在视频播放系统中的应用比较[J].电脑编程技巧与维护, 2013, (05) .
在线视频播放系统 篇6
在技术日益进步的今天,人们对嵌入式数字产品的需求与日俱增,例如智能视频监控、数字机顶盒、数字视频录像机(DVR)、智能手机等。TMS320DM355是TI公司开发的基于达芬奇(DaVinci)技术的双核系统,DaVinci技术能够使开发人员不必关注视频处理的底层细节,提供了完整的驱动程序和应用程序接口(API)[1]。Gstreamer是流行于Linux系统下的流媒体应用程序框架,采用了基于元件和管道的体系结构[2],能够方便地将元件插入到任意的管道中,并能通过管道来控制所有元件的状态,这一优点有利于开发基于Gstreamer的视频播放系统[3]。
1 系统结构
播放系统的基本功能是实现经MPEG-4编码的AVI格式的数据码流解码播放,并输出到电视机上显示,更完善的播放系统还需要使用红外遥控器对播放进行控制。在硬件上主要是由MPEG-4解码模块、Framebuffer帧缓冲设备模块以及MSP430红外模块完成的,如图1所示。
使用ARM处理器进行任务调度以及管理控制,MSP430红外模块负责接收红外遥控器发送的控制信号。MPEG-4协处理器可以对MPEG-4编码的视频码流进行解码,并输出到Framebuffer帧缓冲设备进行显示播放。Framebuffer帧缓冲设备拥有4个层,其中1层和3层用于视频显示,0层和2层用于OSD界面显示。
2 系统软件实现
在软件实现上,播放系统按照主要功能可分为4个部分:视频播放、红外遥控、OSD界面显示和显示设备初始化。其中,视频播放是系统最基本的功能,另外几个功能是为应用方便设计的辅助功能。
2.1 视频播放
采用Gstreamer软件框架来实现视频播放的功能。根据Gstreamer的特点,开发播放系统需要将用到的元件搭建成一条管道,只要管道正常工作,播放系统就能正常播放。在播放系统的管道中,所需的元件有源元件、分流元件、MPEG-4解码元件、视频输出元件,如图2所示[4]。
在播放系统管道中,视频数据流经源元件、分流元件、MPEG-4解码元件、视频输出元件完成一整套的视频处理流水线操作。首先,源元件从存储介质(SD卡)中读取AVI视频文件,并从中获取到打包的视频数据,然后经分流元件,打包的数据分流成MPEG-4编码的视频数据,并传递给下游的解码元件,MPEG-4解码元件对视频数据进行解码处理,最后,视频输出元件将视频输出到电视机上显示。
播放系统管道的主要工作为:1)采用通用的filesrc源元件,分流元件也采用通用的avidemux;2)开发针对TMS320DM355的MPEG-4协处理器的解码元件vdec;3)开发针对TMS320DM355的Framebuffer帧缓冲设备的视频输出元件fbvideosink。
开发解码元件vdec,主要是撰写元件的链函数gst_vdec_chain,它将上游元件传过来的数据拷贝到输入缓冲区,然后对输入缓冲区的数据进行解码,并输出到输出缓冲区,最后把输出缓冲区提交给下游元件[5],如图3所示。
流程说明为:1)开辟输入缓冲区。vdec->sinkbuf=gst_contigbuffer_new(vdec->inBufSize)。2)将上游数据拷贝到输入缓冲区。memcpy(GST_BUFFER_DATA(vdec->sinkbuf),GST_BUFFER_DATA(inbuf),MIN(vdec->inBufSize,GST_BUFFER_SIZE(inbuf))),这样就会将上游数据inbuf拷贝到输入缓冲区vdec->sinkbuf。3)开辟输出缓冲区。vdec->srcbuf=gst_contigbuffer_new(vdec->width*vdec->height*2)。4)将输入缓冲区的数据解码,传递到输出缓冲区。ret=VIDDEC2_process((VIDDEC2_Handle)vdec->decoder,&vdec->inBufDesc,&vdec->outBufDesc,&in_arg,&out_arg)。5)将输出缓冲区提交给下游元件。gst_pad_push(vdec->srcpad,vdec->srcbuf)。
视频输出元件fbvideosink的开发,主要是撰写prerol函数,它将解码器的输出数据拷贝到显示缓冲区,之后进行显示,如图4所示。
流程说明为:1)分配显示缓冲区。fbsink->fbimage=gst_fbvideosink_fbimage_new(fbsink,GST_BUFFER_CAPS(buf))。2)将解码器的输出缓冲区里的数据拷贝到显示缓冲区。(1)设置源地址tsrc和目的地址tdst。tsrc=Memory_getBufferPhysicalAddress(GST_BUFFER_DATA(buf),4,NULL);tdst=Memory_getBufferPhysicalAddress(GST_BUFFER_DATA(fbsink->fbimage),4,NULL)。(2)执行DMA操作,拷贝数据。Rszcopy_execute(fbsink->dma,tsrc,tdst)。3)将显示缓冲区的数据直接显示。gst_fbvideosink_fbimage_put(fbsink,fbsink->fbimage)。
2.2 红外遥控
为了解决TMS320DM355的I/O资源有限以及对外围低速模块的实时控制等问题,系统中加入了MSP430子系统,用于接收红外遥控器数据。TMS320DM355只需要在接收到MSP430的中断信号后,就可以通过I2C总线对MSP430进行访问。红外遥控包括两部分,首先是需要MSP430接收到红外遥控器的键值,然后针对不同的键值,对Gstreamer管道进行相应的控制处理。
接收键值是通过调用数字视频软件开发包(DVSDK)里的API函数实现的。首先对MSP430的库函数进行初始化,这是通过msp430lib_init()函数完成,然后获取键值主要是通过msp430lib_get_ir_key()函数来实现。
对红外键值的处理是一个较为复杂的过程,这需要一个不断接收键值并处理键值的循环来实现。主要实现的控制功能为:
1)播放系统暂停和恢复播放
接收到键值MSP430LIB_KEYCODE_OK,播放系统就会暂停播放,再次接收到就会恢复播放。暂停播放,通过调用函数gst_element_set_state(GST_ELEMENT(player),GST_STATE_PAUSED)来实现,恢复播放则通过gst_element_set_state(GST_ELEMENT(player),GST_STATE_PLAYING)来实现。正常播放的状态下,系统会创建一个计数器,每隔250 ms对一个全局时间变量time_pos增0.25 s。这是通过timer_control=g_timeout_add(SMALL_STEP,(GSourceFunc)normal_speed,player)来实现的,SMALL_STEP是一个宏,值为250,即每隔250 ms系统会调用normal_speed函数,normal_speed函数的工作就是对time_pos增0.25 s。
2)播放系统进行8倍速、16倍速快进和快退
以8倍速快进为例介绍[6]。当接收到键值MSP430LIB_KEYCODE_VOLINC后,系统就会删除之前创建的计数器,通过g_source_remove(timer_control)来实现,并创建新的计数器timer_control=g_timeout_add(SMALL_STEP,(GSourceFunc)forward_speed,player),该计数器每隔250 ms会调用forward_speed函数。该函数实现的功能与之前的normal_speed函数略有不同,它会将time_pos的值增加8个0.25 s,也就是达到了8倍速递增。之后还要调用管道定位函数gst_element_seek将管道播放位置定位到新的time_pos,具体调用为gst_element_seek(player,1.0,GST_FORMAT_TIME,GST_SEEK_FLAG_FLUSH,GST_SEEK_TYPE_SET,time_pos,GST_SEEK_TYPE_NONE,GST_CLOCK_TIME_NONE)。
3)播放系统正常退出
当接收到键值0x31ff时,系统就会调用g_main_loop_quit(loop)函数正常退出播放系统。
2.3 OSD界面显示
OSD(On Screen Display)技术是在输出视频的同时叠加文字、图片等。TMS320DM355的Framebuffer帧缓冲设备拥有4个层[7],其中1层和3层作为视频窗口,0层和2层作为OSD窗口,如图5所示。
在视频播放时,视频流是通过视频窗口1(/dev/fb/3)来显示的,OSD窗口0可以用来显示图片和字符,OSD窗口1可以作为属性窗口来控制视频窗口和OSD窗口0。在播放的过程中,利用OSD技术开发播放系统的界面,主要完成的功能是显示当前播放的进度条,并能够显示当前所处的状态(快进、快退、暂停、播放等)。显示进度条所需的当前播放时间是通过全局变量time_pos获取到的。
2.4 显示设备初始化
视频窗口1(/dev/fb/3)作为视频流的显示层,需要进行初始化工作,这一初始化工作在程序刚开始和结束时都要进行一次[8],否则,就会出现以下情况:1)视频占不满电视屏幕;2)视频播放结束后,屏幕上仍残留有最后一帧画面,并没有变黑。针对上述两种情况,需要对设备dev/fb/3进行初始化,过程如图6所示。
1)打开设备,通过fd=open(“/dev/fb/3”,O_RDWR)实现,后面的操作只要对文件描述符fd进行;2)设置可变信息,主要是将屏幕宽度设置成720像素,高度设置成480像素,这是通过设置varInfo.xres和varInfo.yres来实现的;3)设置缩放参数zoom,即对zoom.zoom_h和zoom zoom_v进行设置,设置视频参数vid_params,主要是将水平扩展使能,这通过设置vid_params.exp_info.horizonta来实现;4)将帧缓冲区的值设置成黑色,主要是将每个像素的值设置为0x1080,即为黑色,默认状态下,每个视频层拥有3个缓冲区,因此需要先将3个缓冲区的物理地址映射成虚拟地址,然后设置每个像素的值,最后解映射。上述操作完毕之后,需要关闭显示设备close(fd)。
3 实验效果
基于笔者开发所用到的硬件系统如图7所示,该系统通过摄像头采集到视频,以MPEG-4视频标准进行编码,并打包成AVI格式的文件。然后利用开发的播放系统对录制的AVI文件进行播放,播放效果如图8所示,可以使用遥控器对播放进行控制。实验证明笔者开发的系统达到了预期目的。
摘要:目标是在以DaVinci TMS320DM355为核心的视频处理平台上实现视频流的实时播放。将采用Gstreamer框架结构开发TMS320DM355芯片的插件,实现经MPEG-4压缩后的AVI格式多媒体数据流的解码,并输出到电视机上播放。同时使用红外模块MSP430进行遥控,利用OSD开发系统界面。最后实现了一个功能完善的播放系统,达到了开发目的。
关键词:DaVinci,TMS320DM355,Gstreamer技术,视频播放系统
参考文献
[1]胡伟.基于TMS320DM355的四路视频多媒体监控器[J].电子设计工程,2009(4):73-76.
[2]TAYMANS W,BAKER S,WINGO A,et al.Gstreamer applicationdevelopment[EB/OL].[2010-07-27].http://www.gstreamer.net/data/doc/gstreamer/head/manual/manual.pdf.
[3]刘尚麟,刘军.Gstreamer RTP插件的改进及应用[J].信息安全与通信保密,2009(1):91-92.
[4]姜巧巧,肖长杰,王身鸿.运用Gstreamer和Qtopia快速开发CMMB移动电视播放器[J].电视技术,2009,33(1):46-47.
[5]BOULTON R J,WALTHINSEN E,BAKER S,et al.Gstreamer pluginwriter′s guide[EB/OL].[2010-07-27].http://www.gstreamer.net/data/doc/gstreamer/head/pwg/pwg.pdf.
[6]王京林.基于Intel CE3100和Yahoo!Widget Channel的网络电视设计[J].电视技术,2009,33(12):67-70.
[7]LSP 1.20 DaVinci linux drivers[EB/OL].[2010-07-27].http://focus.ti.com/lit/an/sprs496a/sprs496a.pdf.
在线视频播放系统 篇7
本系统所用到的硬件设备主要包括上位机及下位机, 两者之间的通信通过无线Wi-Fi网络实现。上位机是移动智能终端设备, 可以是基于Android、IOS或者其他系统 (并不局限手机系统) 的手机或是平板设备[1]。下位机是搭载了专业音频处理器的专业音响设备。音视频的解码是分别在上位机和下位机分离实现的, 并不同步执行。上位机负责视频画面播放, 音频流通过网络传输模块传送到下位机进行播放 (利用同步模块保证音视频的准确同步), 同时下位机录制用户声音回传到上位机, 最后在上位机进行音视频合并[2]。
系统的工作流程分为8个步骤, 整个过程主要包括音视频的解复用、音频流的格式转换及下传、下位机将采集到的人声数据与上位机下传的音频流进行合并、对视频播放数据及新的音频播放数据播放过程的同步校正处理、 新音视频流合成及保存。
2 系统功能模块构成
解复用模块, 用于获取并解复用媒体源文件, 以得到视频流和音频流。
视频解码和滤波模块, 用于对视频流进行视频解码和视频滤波, 以得到视频播放数据, 并播放视频播放数据。
第一格式转换模块, 用于对音频流进行格式转换及编码压缩。
第一传输模块, 用于将格式转换及编码压缩后的所述音频流通过Wi-Fi无线网络传输至下位机, 上位机将得到的音频流进行格式转换, 调整成为适合进行流传输的格式, 再通过Wi-Fi无线网络传输到下位机。此时传输的数据不是原始的音频PCM数据, 而是被编码压缩过的音频流数据, 减少了Wi-Fi网络的带宽占用。如果只是实时传输当前播放时刻的音频数据的话, 当网络拥堵不稳定的时候, 音频数据无法实时到达下位机, 所以本系统采用的方式是: 音频流传输的过程是尽最大能力的服务, 将音频流数据尽可能多地提前传输到下位机保存成文件。
音视频流合并模块, 用于接收该新的音频播放数据, 下位机对新的音频播放数据同时进行音频编码, 再经过格式转换模块转换成适合流传输的音频流, 实时通过Wi-Fi网络传输到上位机, 此时传输的数据是经过编码的音频数据而不是原始的PCM数据, 极大地减少了带宽的占用, 并在视频播放数据及该新的音频播放数据播放结束后, 将两者进行音视频合成, 以生成新媒体文件。
用户交互模块, 用于实现所述系统与用户的交互。
音频解码和滤波模块, 用于调用解码器对音频流进行解码和滤波, 以得到音频播放数据, 并播放音频播放数据。
混音和音效调节模块, 用于对音频播放数据及人声数据进行合成处理, 以得到形成新的音频播放数据。
第二格式转换模块, 用于对该新的音频播放数据进行音频编码及格式转换。
第二传输模块, 用于将音频编码及格式转换后的新的音频播放数据传输至所述上位机。
声音采集设备, 用于采集人声数据。
音响, 用于播放新的音频播放数据。
上位机及下位机均包括同步模块。
同步模块, 用于对视频播放数据及音频播放数据开始时进行初始同步处理, 并对视频播放数据及音频播放数据播放过程中进行同步校正处理。
初始同步单元, 用于根据视频起始帧数据包中的帧号m及所述视频起始帧所对应的系统时间t1、音频起始帧数据包中的帧号及该音频起始帧所对应的系统时间t2, 采用平均法统计时间差Δt=t2-t1的平均值Δt', 并根据平均值Δt' 对所述视频起始帧进行减缓帧速率处理。
同步校正单元, 用于根据当前视频帧的当前播放时间tvideo、当前音频帧对应当前视频帧的播放时间taudio估算所述当前视频帧超前所述当前音频帧的时间, 并采用平均法获取所述当前视频帧超前所述当前音频帧的平均时间Δt'v_ahead_a, 并根据平均时间Δt'v_ahead_a减缓视频播放的帧速率或进行跳帧处理。
需要注意的是, 第一传输模块和第二传输模块为Wi-Fi模块, 上位机为智能移动终端设备。本系统并不局限于以上揭示的实施例, 而应当涵盖各种根据本系统的本质进行的修改、等效组合[3]。
3 系统实时分离及同步播放的实现
3.1 初始播放同步处理
图3展示了本系统上下位机音视频初始同步的示意图。
当视频开始播放的时候, 视频第一帧播放的同时发送一个帧数据包到下位机, 该数据包包括帧号m和帧对应系统时间t1 (ms)。
当这个帧数据包到达下位机的时候, 下位机立刻解码播放音频流, 同时回发一个帧数据包到上位机, 格式同上, 帧号与上位机发送过来的帧号相同。当上位机接收到下位机回发的帧数据包的时候, 获取该数据包中的帧对应系统时间t1,与当前的系统时间的t2差为Δt=t2-t1, 为了更准确合理地统计该时间差, 排除部分偶然状况的干扰, 使用采样平均的方法, 对这个过程进行重复操作。对视频的前10帧进行这个重复操作, 得到的10组进行统计平均值, 得到时间差的平均值Δt', 若Δt' 超过了某个预设阈值 (例如50ms) 的时候, 进行减缓视频帧播放的帧速率的处理, 设当前的视频帧是p1, 在Δt'/2的时间内维持该帧, 达到音视频起始同步的目的。对视频帧进行减缓帧速率的处理而不是在音频端做处理是为了获得较好的用户体验, 在进行起始同步校正的时刻, 画面的一定程度的延缓对用户的影响非常细微, 当Δt' 足够小的时候,甚至不会有所察觉。
在保证了音视频开始同步了之后, 在解码播放过程中对音视频进行同步校正[4]。
3.2 上位机、下位机在播放过程同步校正
图1展示了系统在音视频播放过程中上位机和下位机的同步校正过程。
在音视频解码播放的过程中, 需要在每一个时间间断节点上做一次同步校正, 本系统为了取得良好的用户使用体验,取该时间间隔为10s (即在播放过程中每过10s进行一次同步校正)。
同步校正的具体过程如下:
在视频的当前帧播放的时候, 上位机通过Wi-Fi网络向下位机发送一个同步校正数据包, 该数据包包含了当前的帧序号、根据当前帧和帧率计算出的当前播放时间tvideo(以ms为单位)。该数据包包括视频帧序号n和视频当前帧时间tvideo(ms)。
下位机接收到数据包之后, 根据正在解码的音频流的采样率等参数计算出当前音频帧对应的播放时间taudio, 重新组成新的数据包, 发送给上位机。该数据包包含的信息是: 视频帧序号、视频帧时间tvideo、音频帧时间taudio。数据包有3部分内容, 分别为视频帧序号n、视频帧时间tvideo(ms) 和音频帧时间taudio(ms)。
上位机接收到这个数据包, 解析得到相关的信息, 通过视频的帧率计算当前视频帧对应的时间t'video, 总的信息如下:
(1) 视频帧序号n
(2) 视频帧时间tvideo
(3) 音频帧时间taudio
(4) 当前视频帧时间t'video
根据以上的信息, 视频帧超前音频帧的时间Δtv_ahead_a可以根据公式 (1) 估算:
同样, 对连续的10个视频帧进行以上的重复操作, 对其进行采样平均, 这样就得到一个视频帧超前音频帧的平均时Δt'v_ahead_a。当Δt'v_ahead_a的绝对值超过某个预设的阈值的时候(比如200ms), 对其进行音视频同步校正。
当Δt'v_ahead_a>0, 视频超前于音频 , 在上位机减缓视频播放的帧速率, 可以采取下面的方法: 在Δt'v_ahead_a的时间内维持当前帧, 然后继续照常播放;
当Δt'v_ahead_a<0时, 视频滞后于音频, 在上位机进行跳帧的处理, 根据Δt'v_ahead_a和当前的帧率计算应当跳过的帧数k, 然后跳过这k帧。
在播放的过程中执行以上的步骤, 达到音视频同步校正的效果。
图2展示了经过同步校正方法后, 音频播放过程中上下位机在播放到15秒时刻, 上位机播放时间进度及下位机播放时间长度的对比信息。图2中左半部分中, read_bytes是下位机接收并播放的音频字节数, time_use是下位机从接收到第一个字节到当前的时间长度。右半部分是上位机正在播放音乐的进度情况。
5 结语
在线视频播放系统 篇8
1 系统需求
本系统主要包括两个主要模块, 一个是用户模块部分, 用户模块部分主要包括新用户的注册登录功能, 成功注册后可以登录到网站并有查看歌曲信息和公告功能, 以及具有点击播放选中歌曲以及点击下载歌曲的功能, 并可以对网站留言和对自己的密码进行修改。另一块是管理员模块部分, 管理员具有对注册用户管理权限, 若发现注册用户取的名字出现敏感字符, 管理员可直接删除该用户, 管理员并具有基本的对该系统维护的权限, 对浏览用户留言的管理以及对歌曲的添加修改删除以及更新网站公告等。系统用例图如图1所示, 系统的层次结构如图2所示。
2 系统功能
2.1 用户登录注册功能
新访问的用户需通过成功注册才能够进入系统并进行一系列的操作。在首页登录界面上本文设置了一个链接以供新用户注册。注册用户需填写的字段为用户名、密码、年龄、email、电话等。其中用户名、密码和年龄为必填项, 其它为选填项。该页面的输入信息均导入到数据库中的Login表中, 已供下次登录时与数据库中的匹配。注册页面有三个按钮控件, 一个为提交, 一个为放弃, 另一个为重填。点击提交, 所填信息注入数据库中对于的表里;点击放弃回到登录界面;点击重填, 则所有输入框清空已填信息已备重新填写。
2.2 用户点播歌曲功能
成功登录系统的用户, 可以浏览网站最新上传的歌曲信息, 并可以选择自己想听的歌曲来收听该歌曲。
歌曲播放我采取的是调用系统自身的mediaplayer播放器, 该功能的部分源代码如下所示:
2.3 用户留言功能
用户进入系统后, 可浏览网站的最新公告, 并可以对网站进行留言, 在留言页面上, 用户有权利查看网站的全部留言, 并可以写下自己的留言, 留言界面里的昵称可以由用户自己决定, 并不一定与登录名一致, 可自行输入。点击发表按钮后, 将会在查看留言里看到所有的给网站的留言。用户登录窗口主要是针对登录本系统的用户进行身份验证, 在输入正确的用户名和密码后, 网站自动进入该用户角色的管理界面中, 并且对该角色赋予相对应的权限。如果用户名或者密码错误时, 网站自动弹出错误信息。
2.4 用户下载功能
用户在音乐系统网站上除了可以查看最新歌曲和试听所选歌曲之外, 还可以下载自己喜欢的歌曲。在点击链接到歌曲的详细信息页面上, 歌曲的最后一列为下载链接, 点击该链接则会自动跳转到歌曲下载页面。系统会自动调用下载工具下载该歌曲。
2.5 管理员对注册用户管理功能
登录时如果是管理员登录, 则会自动跳转到管理员管理首页, 该系统并没有设定单独的管理员登录界面, 管理员与用户共用一个登录界面, 系统将会对登录的用户名和密码等信息进行匹配, 是管理员登录则跳转到管理员管理首页, 是用户登录则会跳转到音乐网站用户首页。
首先, 管理员针对自己的登录信息可不定期修改密码已确保管理员身份的安全性。
其次, 管理员有更新该音乐网站的功能。管理员点击更新网站公告按钮后, 进入更新公告页面, 在这里管理员可以添加公告并点提交公告, 提交成功后最新公告将会出现在网站首页以供其他用户查看。
再次, 音乐网站的灵魂其实就是歌曲的吸引力度, 那么不断地更新歌曲则是必不可少的工作, 为了使管理员快捷方便地上传歌曲, 在管理员导航里本文设计了新增歌曲的模块, 使得管理员上传歌曲简单高效。
管理员除了有上传歌曲的权限外, 也可以删除歌曲或者删除用户。对于一些歌曲来说, 可能由于操作失误重复上传了, 这是管理员可用删除歌曲模块来将重复上传的歌曲或应其他一些情况将需删除的歌曲来删除。系统给管理员设计的删除用户模块是用于防止用户的用户名包含非法字符或者留言包括非法或敏感字眼等情况的发生。
最后, 管理员有对网站留言管理的权限, 若发现敏感字眼, 管理员可删除该留言信息。
2.6 用户申请密码保护功能
为了防止用户忘记密码, 无法登录, 本系统设计了密码保护功能;首先, 用户必须申请密码保护, 申请成功后, 则可以通过找回密码功能找回密码。输入你的用户名, 选择密保问题, 输入找回密码用的密保答案, 点击提交, 则可以申请密码保护, 在找回密码时, 只要用户输入正确的密保问题和正确的密保答案, 则密码会返回给用户。
管理员模块流程图如图3所示。
3 结语
本文所设计的基于ASP.NET的网络在线音乐播放系统实现了用户注册登录功能、用户查看歌曲信息并点击歌曲播放、用户下载歌曲功能、用户留言功能、用户申请密码保护功能以及管理员登录功能、管理员对歌曲管理功能、管理员对用户管理功能、管理员对网站留言管理功能。
参考文献
[1]章立民.ASP.NET3.5AJAX开发[M].北京:科学出版社, 2009
快播科技:在线播放还有大机会 篇9
“我们的技术其实跟一些基于P2P技术开发的视频网站如风行网、PPLive等差不多,区别在于它们将这种技术服务于自己的视频网站平台,而我们是将这种技术提供给大大小小的其他网站和商业视频网站。”快播副总裁熊匀波告诉《创业家》。
’陕播选择的市场切入点是做播放器客户端软件。在当时,暴风影音已经是本地播放器软件的王者,新生的快播必须避开这个巨头。“我们的优势在于在线播放效果好,能让用户随意拖拉、点播。”熊匀波透露。在网民越来越习惯于通过网站而不是下载到电脑观看影音内容后,快播的机会来了。快播的独特技术也吸引了腾讯创始人之一曾李青、赛富基金等超过400万美元的天使投资。
快播刚开发出客户端软件时,先免费提供给十几万家小网站使用,并根据用户反馈不断改进,技术成熟后再跟大的视频网站等谈合作, “与其他P2P服务商不同,我们连服务器端都是免费开放的。”既免费又能为视频网站节省80%以上的带宽和服务器资源。快播成为酷6、激动网等大型视频网站的独家技术服务提供商。
凭借无需下载即能观看高清、流畅视频的使用体验,快播的用户量急剧上升,目前总下载安装量4.5亿多人次,每天在线用户峰值4000万。
王欣曾在2006年盛大网络CE0陈天桥领衔的“盒子”计划中负责流媒体技术,积累了不少家电厂商资源。现在,快播也推出了针对硬件厂商的高;青视频跨平台嵌入式技术,成为创维、长虹等厂家的技术合作商,希望靠技术授权分羹互联网电视市场。
在线视频播放系统 篇10
我国从2007年开始发放3G牌照, 手机多媒体终端的用户数量将会伴随着终端开发技术和3G网络技术的发展而逐渐庞大。对于运营商来说, 市场规模将明显增大, 而产品运营、业务扩展、市场营销将会是近3年移动流媒体市场的核心竞争力。
据艾瑞咨询主办的“2006手机网民看3G”的互联网调查中统计, 视听娱乐将成为3G应用普及后智能手机用户最期待的无线业务。手机视频的巨大市场前景是包括运营商在内的所有企业都不可小视的。
类似优酷、 土豆、爱 奇艺等国 内视频巨 头非常看 好手机视频 终端 , 因为i Phone手机非常 普及 , 用户群体 庞大 ,最重要的是手机能随时随地地拍照、录视频, 而且能随时随地把拍摄 的视频上 传到视频 网站上去 , 非常方便 ; 另外iPhone多媒体客户端的播放内容可以直接从电视台、影视公司等多媒体提供商那里获得, 资源极其丰富。对用 户而言 ,手机视频播放客户端将成为人们非常重要的娱乐方式。手机往视频方向发展也是势不可挡的, 而对手机视频的需求也是非常大的。
2体系结构及其特性
1、i Phone SDK架构
i Phone SDK是由苹果公司提供的i Phone应用开发包 , 整个SDK包括了界面开发工具、集成开发工具、框架工具、编译器、 分析工具 、开发样 本和多个i Phone、i Pad、i Pod模拟器。如图1所示。
(1) Core OS 层
很多人听说过IOS系统是基于UNIX的。而Core OS层就是用Free BSD与Mach所改写的Darwin, Core OS是开源、符合POSIX标准的一个Unix内核。这一层包含并且提供了整个iPhone OS的基础功 能 , 如 : 硬件驱动 、内存管 理、程序 管理、线程管理、文件系统、网络接口,以及标准输入输出等,所有这些功能都是通过C语言的API接口来提供。此外, 这一层是最具有UNIX色彩的, 如果你需要把UNIX上所开发的程序移植到i Phone上, 多半都会使用到Core OS的API接口。
(2) Core Services 层
Core Services层基于Core OS基础之上 , 它提供了更多更丰富的功能, 它包含了Foundation.Framework和Core Foundation.Framework两个部分 , 并且 , 它提供了一系列处理字串、排列、 组合、日 历、时间 等基本功 能 , 所以叫Foundation。Core Fundation是属于C语言的API接口 , 而Foundation是属于Objective-C的API接口。另外Core servieces还提供了其他的常用功能, 比如: Security、Core Location、SQLite、Address Book. 其中Security是用来处理认证 , 密码管理 , 按安全性管理的; Core Location是用来处理GPS定位和地理信息处理; SQLLite是小型的、轻量级的本地数据库; 而Address Boo是用来处理电话薄资料的。
(3) Media 层
Media层提供了图片、音乐、 影片等多媒体功能。与音乐对应的是Core Audio和Open AL, Media Player实现了影片的播放 ; 图像处理 方面分为2D图像和3D图像 , 2D图像由Quartz2D来支持 , 3D图像则是用Opengl ES来支持 ; 最后用Core Animation来对动画提供了强大支持。
(4) Cocoa Touch 层
Cocoa Touch是Objective-C的API接口 , 其中最核心的部分是UIKit.Framework,应用程序界面上的各种组件, 全是由它来提供呈现的, 除此之外它还负责处理屏幕上的多点触摸事件、文字的输出、图片网页的显示、相机或文件的存取、 以及加速感应的部分等。
2开发环境
(1) 软件环境
操作系统: Mac OS X 10.6.4;
IDE: Xcode 5.0;
SDK版本 : iphone SDK 7.1;
模拟器: iphone 5s、ipad air;
(2) 硬件环境
CPU: 至少双核CPU, 1.2GHz以上主频 ;
内存: 至少1GB;
硬盘: 至少60GB;
网络: 10M/100M网卡。
3需求分析
3.1可行性
3.1.1经济
本项目的开发全部采用苹果公司的产品, 包括操作系统、开发IDE、测试用模拟器、真实i Phone手机。这些软硬件设备虽然价格不菲但对于专业苹果应用开发人员来说都是必须有的, 并且, 这些软硬件都为一次性投入, 在以后开发苹果应用时也可以继续采用这一套软硬件, 不存在人力物力的过度浪费现象。所以开发一款基于i OS的音乐播放器在经济方面是可行的。
3.1.2技术
苹果公司的产品在多媒体应用方面下了极大的功夫, 因此也提供一整套非常强大的多媒体开发框架。在程序设计语言上采用Object-C足够, 在UI布局方面采用.xib或storyboard等布局文件就可以设计出使用比较友好的UI界面, 媒体流的获取采用HTTP或是UDP协议获取网络视频资源; 在媒体播放方面采 用Iphone SDK 7.1中Core Audio和Open AL, MediaPlayer实现了影片的播放。从而分析得出开发这款音乐播放器在技术方面是可行的。
所以, 基于i OS的音乐播放器的开发是可行的。
3.2功能
当用户进入播放列表, 在本地视频文件或网络在线视频文件列表中, 选择播放, 即可观看视频, 切入到横屏模式可进入全屏播放。
3.3性能需求
(1) 对i Phone支持MP4/3GP/AVC/AVI/MPEG-4等格式的
视频文件进行播放, 分别对来源于本地和网络的视频文件进行处理, 利用横竖屏的灵活切换, 实现全屏播放, 使播放效果更为显著。
(2) 支持MP3音频文件的播放 , 从本地和网络列表中读取音乐播放列表, 根据歌曲和歌手名称从3G网络上搜索歌词, 支持歌词同步; 放完一首歌可自动播放下一首, 支持循环播放。
(3) 支持网络MP3流媒体的广播格式 , 简朴大方的用户界面, 增加文字流动效果, 更具观赏性。如果当前电台流出现问题, 可使用向前和向后来对同一站点的不同端口频段进行调整。
(4) 对本地文件媒体文件进行管理 , 刷新功能重新搜索本机上所有的媒体文件, 删除功能删除不必的媒体文件, 选中文件后可根据不同的媒体格式选择播放器, 支持本地蓝牙传输。
(5) 在线音音频列表按照用户输入的关键字搜索歌曲 ,支持在线播放、音乐文件下载。
(6) 从网站shoutcast上获取网络电台 , 支持电台搜索功能, 用户点击可在线收听。
(7) 通过土豆网站、56视频网站获取相应的视频信息 ,对视频文件进行分类管理, 用户进入后只需点击即可轻松地观看和下载, 支持视频搜索, 根据用户输入的关键字, 搜索网站中的视频, 支持翻页功能;利用六间房网站对i Phone手机平台的友好支持界面, 采用手机Web打开网页, 支持在线观看、收藏、搜索和访问友请链接网站等多种功能。
(8) 提供媒体文件下截 , 支持断点续传、文件播放、 删除等功能。
(9) 更多设置模块包括蓝牙管理、用户手册、 背景设置、动画效果设置等后台管理功能。
(10) 网络环境 : 播放网络视频 , 要求网络带宽流畅 , 信号好。
3.4关键技术
(1) 播放视频用到的API主要使用的是Media Player框架中的MPMovie Player Controller类和MPVolume View类。
(2) 链接网络资源获得歌词 , 进行分割排序比较 , 使用NSTimer来监测播放的时间 , 实现歌词同步。
(3) 广播播放器采用Code Morphic公司的Co Mo Radio开源软件底层的部分功能实现广播流的播放, 该开源软件提供的Cm Audio Player用于管理和播放网络广播。
( 4) 结合NSURLRequest类和UIWeb View控件 , 实现手机网页浏览。
(5) 下载管理采用ASIHTTPRequest实现网络连接 , 加入到network Array下载队列实现多个网络资源同时下载。
(6) 创建GKPeer Picker Controller类的实例 对及相关 的接口, 把大的媒体文件分割成小的模块, 来实现蓝牙传输。
4视频播放器模块
4.1视频播放器模块描述
视频播放 器模块是 对i Phone支持MP4/3GP/AVC/AVIMPEG-4等格式的视频文件进行播放 , 分别对来源于本地和网络的视频文件进行处理, 利用重力感应技术, 实现横屏和竖屏的灵活切换, 使播放效果更为显著。
4.2算法实现
播放视频用到的API主要使用的是Media Player框架, 该框架包括 两个类 : MPMovie Player Controller类和MPVolume View。它们用于管理整个视频的播放, 只需要提供视频文件的URL, 并调用play方法播放视频即可。视频文件支持如下:
( 1) H.264视频 , 高达1.5Mbit/s, 640×480像素 , 每秒30帧 , Low-Complexity版本的H.264 Baseline Profile采用AAC-LC音频, 高达160Kbit/s, 480k Hz, 立体声音频为.m4v、 .mp4和.mov文件格式。
( 2) H.264视频 , 高达2.5Mbit/s, 640×480像素 , 每秒30帧 , Baseline Profile高达Level 3.0采用AAC-LC音频 , 高达160Kbit/s, 480k Hz, 立体声音频为.m4v、 .mp4和.mov文件格式。
(3) MPEG-4视频 , 高达2.5Mbit/s, 640×480像素 , 每秒30帧 , Low -Complexity采用AAC -LC音频 , 高达160Kbit/s,480k Hz, 立体声音频为.m4v、 .mp4和.mov文件格式。
程序代码如下:
(1) 在项目中加入Media Player框架 , 并引入Media Player/Media Player.h头文件 :
( 2) 在View Controller.h文件里创 建一个MPMovie PlayerController指针 :
(3) 获取视频文件存储路径。由于从播放列表View Controller中采用委托传递数据操作过于繁琐 , 在本项目中各个模块之间进行数据传递基本上都使用文件读取用为中介来实现数据传递;
(4) 初始化一个网络视频播放player
(5) 初始化一个本地视频播放player
(6) player操作方法 :
播放: [self.movie_Player play] ;
暂停: [self.movie_Player pause] ;
停止: [self.movie_Player stop] ;
(7) 通过消息中心NSNotification Center时刻监视视频的播放状态:
4.3逻辑流程
视频播放模块的流程图如图2所示。
5结语