搜档网
当前位置:搜档网 › 基于Android的视频通话系统的设计与实现毕业设计论文

基于Android的视频通话系统的设计与实现毕业设计论文

基于Android的视频通话系统的设计与实现毕业设计论文
基于Android的视频通话系统的设计与实现毕业设计论文

东北大学毕业设计(论文)摘要基于Android的视频通话系统的设计与实现

摘要

近年来,智能手机操作系统发展迅速,尤其是Android系统的迅猛发展已经将全球智能手机市场引领到了非常火爆的状态。随着手机社交网络、手机多媒体通信和手机游戏等应用程序不断被开发出来,各种基于智能手机操作系统的应用程序正在逐渐影响和改变人们的生活方式。实时视频流技术在可视电话、远程教育、视频点播等方面得到了广泛的应用。

本文设计并实现的基于Android的视频通话系统采用C/S架构,包括PC和手机两个客户端。手机端使用Android2.3操作系统。本系统共包含四个子系统:PC端接收子系统、发送子系统,Android端接收子系统、发送子系统。接收子系统实现数据接收、转码和呈现,发送子系统现实数据采集、编码压缩和数据发送。PC端基于JMF框架来实现,Android端使用Android Camera类及其相关类来实现。本文对国内外视频通话的研究情况以及今后的发展前景,对实现视频通话所涉及到的协议和相关技术进行了分析,在此基础上提出了一种可行的网络视频通话设计方案,并通过需求分析、详细设计、编码实现、单元测试以及集成测试等过程完成了本系统的设计与实现。

本系统实现了跨平台视频通话,使PC与Android之间的视频通话成为了可能,可以起到丰富人们日常生活交流和娱乐方式的作用。

关键词:Android,视频通话,JMF,PC,RTP/RTCP

Design and Implementation of an Android-Based

Video Calling System

Abstract

In recent years, the rapid development of smart phone operating system, especially Android system, has led the global smart phone market into explosion state. With some application such as mobile social networking, mobile media communications and mobile games being continually developed, a variety of application on smart phone operation systems are increasingly affecting and changing people’s lifestyles. The real-time video streams technology is used widely in such aspects as videophone, distance education and video on demand.

The system based on android uses c/s architecture. It includes two clients. One is on the Windows system, the other one is on the Android 2.3 system. There are four subsystems. Each of clients has a send subsystem and a receiver subsystem. The main function of the receiver subsystem is to receiver data from internet and decodes that data. After that, it will display that data as soon as possible. The main function of the send subsystem is to collect data from camera and then encodes the data. After that, the data will be sanded to the Internet. On the PC client, we use the JMF framework. One the Android client, we use Android API. This paper firstly introduces the research condition of the video call and development tendency. It analysis some technologies about the video calling system and comes up with a feasible plan. It introduces the video calling system about requirement analysis, detailed design, realize and testing.

This system achieves the cross-platform video calling. It becomes possible to make video calling between PC and Android and will enrich the people’s communication and entertainment in their daily lives.

Key words: Android, video call, JMF, PC, RTP/RTCP

目录

摘要 ................................................................................................... I Abstract................................................................................................ II 第1章绪论 .. (1)

1.1 课题概述 (1)

1.1.1 课题背景 (1)

1.1.2 课题的目的及意义 (1)

1.2 国内外发展现状 (2)

1.3 研究内容 (2)

1.4 组织结构 (3)

第2章相关技术 (4)

2.1 Java多媒体框架 (4)

2.1.1 JMF的功能 (4)

2.1.2 JMF中的数据源 (4)

2.1.3 JMF中的媒体播放器 (4)

2.1.4 JMF中的媒体处理器 (5)

2.1.5 JMF中的事件模型 (6)

2.2 RTP/RTCP协议 (6)

2.2.1 RTP实时传输协议 (6)

2.2.2 RTCP实时传输协议 (8)

2.3 FFmpeg视频编解码技术 (9)

2.3.1 FFmpeg简介 (9)

2.3.2 组成 (10)

2.3.3 编码框架 (10)

2.3.4 解码框架 (11)

2.4 本章小结 (12)

第3章系统分析 (13)

3.1 需求分析 (13)

3.1.1 系统总体需求 (13)

3.1.3 用例分析 (14)

3.2 系统运行环境与开发环境 (19)

3.2.1 运行环境 (19)

3.2.3 开发环境 (20)

3.3 系统可行性分析 (20)

3.3.1 技术可行性 (20)

3.4 本章小结 (21)

第4章系统设计 (22)

4.1 概要设计 (22)

4.1.1 系统软件体系结构的设计 (22)

4.1.2 系统功能模块 (23)

4.1.3 模块功能分析 (23)

4.2.3 数据库设计 (29)

4.2 本章小结 (30)

第5章系统实现 (31)

5.1 功能子模块的实现 (31)

5.1.1 硬件检测模块 (31)

5.1.2 数据采集模块 (32)

5.1.3 压缩编码模块 (33)

5.1.4 数据发送模块 (34)

5.1.5 数据接收模块 (36)

5.1.6 解码模块 (37)

5.1.7 呈现模块 (38)

5.1.8 会话参与者管理模块 (39)

5.2 本章小结 (40)

第6章系统测试 (41)

6.1 单元测试 (41)

6.2 集成测试 (43)

6.3 本章小结 (44)

第7章结论 (45)

参考文献 (46)

致谢 (47)

第1章绪论

1.1 课题概述

1.1.1 课题背景

随着移动通信网络与多媒体技术的飞速发展,很多智能手机以及其应用软件的产生和发展正在逐渐改变人们的生活方式和生活习惯。Android是Google公司于2007年11月5日发布的一款基于Linux内核的开放源代码的智能手机操作系统。由于其具有的开放性使得仟何厂商和个人都可以作为其开发者参与其中,Android在发布的随后几年中得到了迅猛的发展。包括设备生产商、芯片制造商、应用开发商及网络运营商在内的商业公司和组织,以及全世界的应用程序开发者都致力于开发出最新最具影响力的手机硬件及软件。

近年来,基于IP网络的语音及视频服务越来越多地进入人们的视线,也有越来越多的公司致力于开发V oIP和Video Call的应用软件。如Skype公司的Skype软件,Apple 公司的Face Time软件等,不仅能为用户带来更全面的体验,而且也提升了自身产品的市场竞争力。人们不再局限于使用传统的电信网和移动网来拨打电话,而一部手机是否支持网络语音及视频实时通话功能也成为人们购买手机的一个考虑因素。在这一方面,Android之前推出的一系列操作系统版木都没能很好地适应多媒体实时通信的发展。这个问题一直持续到2010年12月7日,Google发布了代号为Gingerbread的Android 2.3操作系统。这一版本的操作系统相比之前的版本有了很多的改进,其中一部分就是对多媒体实时通信有了更好的支持。其中包括对V oIP及SIP的支持,以及对前置摄像头开发的支持,开发者已经可以根据现有的资源对Android系统进行二次开发,并做出应用性很强的即时视频通话软件。

1.1.2 课题的目的及意义

在Android多媒体应用开发领域,充斥着很多公司和个人开发者开发的多媒体播放器、手机Radio、手机电视和手机语音聊大等多媒体应用软件。但是成形的手机视频通话软件却不多见,本课题致力于对Android移动平台下的网络多媒体开发进行深入细致的研究和分析,并开发出一个可以在手机和PC之间进行高效的、稳定的视频通话的应用软件。

本课题力求实现以下目标:

(1) Android 2.3系统增加了对前置摄像头的开发许可。本课题要在充分研究并掌握Android平台的原理与软件开发的相关知识基础上,实现基于Android 2.3移动平台的实时视频通话。

(2) 本课题在Android端使用第三方开源RTP库Jlibrtp,使实时多媒体码流的发送和控制更方便。PC端使用成熟的Java多媒体框架JMF完成视频采集、编码、发送、接收、解码。

(3) 为了保证本系统的友好性,本课题致力于开发一套拥有友好用户界而与稳定用户数据后台支持的应用软件,尽量保证软件使用起来更方便。

随着无线网络的快速发展,手机+Wifi接入互联网的方式已经越来越普遍地为手机用户所使用。Wifi技术基于IEEE制定的802.11标准,不仅覆盖范围能达到接近100米,而且网络速率可以达到1Mbps,这为基于移动终端的多媒体实时通信创造了良好的条件。基于Android记移动终端的视频通话系统的实现与优化,对于人们日常生活的交流和娱乐方式会有很重要的意义。

1.2 国内外发展现状

Google是Androd系统的创始者和发布者,但是并不是最先推出基于Android移动终端视频通话应用软件的。在2010年末的时候,一款搭载了Android操作系统的视频通话软件Fring便进入了人们的视线。Fring可以在两台使用了前置摄像头的Android手机上进行视频通话,并使用了自主研发的动态视频质量(DVQ)技术来保证服务质量。该技术利用当前网络带宽作为依据来调整视频编码比特率和帧速率,从而带来流畅清晰的视频体验。Google于2011年5月也正式在GoogleTalk中加入了视频通话部分,使任意两个拥有Gmail账号的用户都可以使用搭载了Android2.3操作系统版本以上的手机来进行视频通话[1]。另外,Yahoo也在其Messenger中加入了视讯通信的插件供用户下载使用。在国内,基于Wifi的免费视频通话软件并不多,而且对网络的适应性也不是很强。1.3 研究内容

本课题一个涉及到两个客户端。PC端基于JMF框架,Android端基于Android 2.3并使用开源RTP传输框架Jlibrtp,在此基础上设计并实现了视频通话系统。本系统没有对网络NAT穿透,因此目前只能在局域网环境中进行视频通话。但只要搭载一个成型的NAT模块,系统即可在任何网络环境中进行视频通话。

(1) 研究并掌握了Android平台的原理与软件开发的相关知识,实现了对Android Camera的实时数据采集与回显,实现了应用于Android 2.3移动平台上基于RTP的视频通话系统。

(2) 深入研究并分析了第三方开源RTP/RTCP库Jlibrtp并应用于Android平台上。对于Java多媒体框架也有了深入的了解。

(3) 详细分析并设计了视频通话系统的框架以及各个功能模块之间的协同工作机制,并在此基础上开发了一套友好的应用软件界面,保证了用户数据后台支持,使软件使用起来更方便。

1.4 组织结构

本文分六个章节来进行介绍:

第1章绪论。介绍了本课题的背景、目的、意义以及国内外的发展情况。

第2章相关技术。介绍Java多媒体框架,重点介绍了RTP/RTCP传输协议的原理。

第3章需求分析。通过用例的方式对基于Android的视频通话系统进行需求分析,包括功能性需求分析和非功能性需求分析,进而得出视频通话的用例模型。

第4章系统设计。完成详细的功能设计,进行软件架构分析,对软件模块进行划分。包括视频采集、编解码、实时传输以及视频呈现等模块。附加了其它模块,如数据库操作,GUI等。

第5章系统实现。完成需求分析提出的各个功能模块,实现了基于Android的视频通话系统。

第6章系统测试。对各个功能模块编写基本的测试用例进行测试。

第7章总结与展望。对工作做了简要的总结,并对后续工作提出了设想。

第2章相关技术

2.1 Java多媒体框架

Java Media Framework(JMF)是SUN和IBM共同开发的能够在Java应用程序和小应用程序中显示,获取多媒体数据的一套类的集合[2]。JMF API使Java程序员做到了以跨平台与设备无关的方式访问音、视频设备,提供了分布式应用环境下实时媒体回放技术,还定义了一系列API插件,允许高级开发人员和技术人员对其进行定制功能扩展,实现特殊的音、视频捕获、处理和回放效果。JMF支持大多数标准的媒体内容类型,如AIFF、AU、A VI、GSM、MIDI、MPEG、QuickTime、RMF和WA V。

2.1.1 JMF的功能

JMF的主要功能有:

(1) 在Java的应用程序和Applet中,播放各种媒体格式文件。

(2) 在Internet中播放流媒体数据。

(3) 可以在麦克风和数字摄像机的帮助下采集音频和视频数据, 并且将这些数据保存为多种格式的文件。

(4) 在Internet中发布自己的音、视频流。

(5) 用来制作实时的音、视频广播服务。

2.1.2 JMF中的数据源

JMF API可以同步播放来自各种数据源(DataSource)的时基媒体,例如本地或网络数据文件等。数据源封装了媒体数据流、媒体的具体位置和用于传输媒体的协议,一个数据源一旦被获取,它将不能再用于传输其他媒体数据。JMF API支持的两种类型的数据源是Pull数据源和Push数据源。

一个媒体播放器的数据源可以用一个JMF MediaLocator或一个URL来定位。MediaLcator是一个描述某媒体播放器显示的媒体数据的类,它类似于URL类,并可由URL类来构造。另外,JMF还支持数据源的合并,即可以将多个数据源合并成一个数据源,例如将视频数据源和音频数据源合并在一起作为一个多媒体数据源在网络中传输。

2.1.3 JMF中的媒体播放器

媒体播放器是JMF的一个基本功能,视频、音频等多媒体的表现都需要用到它的

支持,媒体播放器的应用程序接口包括一个可视构件(VisualComponent)和一个控制面板构件(ControlPanelComPonent)。应用MediaPlayer类创建的对象或继承Javax.media包中的Player接口的其他类创建的对象即可实现媒体播放器,通过MediaPlayer类中提供的方法可以操作各种媒体数据的播放。

在JMF媒体播放器从启动媒体播放器到开始播放媒体数据的过程中,JMF中定义了6种工作状态,在正常情况下,JMF媒体播放器需要经历每种状态,然后才能开始播放媒体数据,以下是JMF中定义的6种工作状态。

(1) Unrealized状态:在该工作状态下,JMF媒体播放器己经被实例化,但并不知道需要播放的媒体数据的任何信息。

(2) Realizing状态:当调用realize()方法时,JMF媒体播放器的状态从unrealized状态变为Realizing状态,在这种状态下,JMF媒体播放器正在确定它需要占用的资源。

(3) Realized状态:在这种状态下,JMF媒体播放器已经确定了它需要占用的资源,并且也知道了需要播放的媒体数据的类型。

(4) Prefetching状态:当调用prefectch()方法时,JMF媒体播放器的状态从Realized 状态变为Prefetching状态,在该状态下,JMF媒体播放器正在为播放媒体数据做一些准备工作,其中包括加载媒体数据,获得需要独占的资源等。

(5) Prefetched状态:当JMF媒体播放器完成了获取操作后就处于该状态。

(6) Started状态:当调用start()方法后,JMF媒体播放器进入该状态并播放媒体数据。

而要停止媒体播放器则调用stop()方法,还可以调用deallocate()方法来释放媒体播放器使用的独占资源。

2.1.4 JMF中的媒体处理器

在JMF API的Javax.media包中定义的Processor接口即为媒体处理器接口,它继承了Player接口,即它也是一种媒体播放器,继承Processor接口的对象除了支持Player 对象支持的所有功能外,他还可以控制输入的多媒体数据流进行何种处理以及通过数据源向其他的Player对象或Processor对象输出数据[3]。

继承Processor接口的媒体播放器对象除了具有Player播放器的6种状态外,还包括如下两种新的状态,这两种状态是在Unrealized状态之后,Realizing状态之前的Configuring和Configured状态。

Configuring状态:当调用configure()方法后,Processor媒体播放器对象进入该状态。在该状态下,Processor媒体播放器对象链接到数据源并获取输入媒体数据的格式(类型)

信息。

Configured状态:当完成数据源连接,获得输入数据格式的信息后,Processor媒体播放器对象就处于Configured状态。

2.1.5 JMF中的事件模型

为了使基于JMF API的应用程序知道媒体系统目前所处的状态,也为了让应用程序对处理媒体数据时出现的错误情况能够做出反应,JMFAPI使用了一种结构化的事件报告机制。当JMFAPI对象需要报告目前所处的状态时,就产生一个MediaEvent事件,对每一种可以产生MediaEvent事件的JMF对象,JMFAPI都定义了一种相应的监听接口,为了接收MediaEvent消息,则需要实现相应的事件监听接口,并将该监听类注册给要产生消息的对象,通过继承MediaEvent事件可以产生许多JMF媒体播放器特有的事件,这些事件都是遵循JavaBeans事件模型标准的。

2.2 RTP/RTCP协议

2.2.1 RTP实时传输协议

实时传输协议RTP(Real time Transport Protocol):是针对Internet上多媒体数据流的一个传输协议, 由IETF作为RFC1889发布,现在最新的为RFC3550。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务[4]。

RTP报文头格式如图2.1所示。

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|V=2|P|X| CC |M| PT | sequence number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| timestamp |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| synchronization source (SSRC) identifier |

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

| contributing source (CSRC) identifiers |

| .... |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图2.1 RTP报文头格式

以上域具体意义如下:

版本(V):2比特,此域定义了RTP的版本,此协议定义的版本是2。(值1被RTP 草案版本使用,值0用在最初"vat"语音工具使用的协议中)。

填料(P):1比特,若填料比特被设置,此包包含一到多个附加在末端的填充比特,不是负载的一部分。填料的最后一个字节包含可以忽略多少个填充比特。填料可能用于某些具有固定长度的加密算法,或者在底层数据单元中传输多个RTP包。

扩展(X):1比特,若设置扩展比特,固定头后面跟随一个头扩展。

CSRC计数(CC):4比特,CSRC计数包含了跟在固定头后面CSRC识别符的数目。

标志(M):1比特,标志的解释由具体协议规定.它用来允许在比特流中标记重要的事件,如帧范围。规定该标志在静音后的第一个语音包时置位。

负载类型(PT):7比特,此域定义了负载的格式,由具体应用决定其解释。协议可以规定负载类型码和负载格式之间一个默认的匹配。其他的负载类型码可以通过非RTP 方法动态定义。RTP发射机在任意给定时间发出一个单独的RTP负载类型,此域不用来复用不同的媒体流。

序列号(sequence number):16比特每发送一个RTP数据包,序列号加一,接收机可以据此检测包损和重建包序列。序列号的初始值是随机的(不可预测),以使即便在源本身不加密时(有时包要通过翻译器,它会这样做),对加密算法泛知的普通文本攻击也会更加困难。

时间标志(timestamp):32比特,时间标志反映了RTP数据包中第一个比特的抽样瞬间。抽样瞬间必须由随时间单调和线形增长的时钟得到,以进行同步和抖动计算。时钟的分辨率必须满足要求的同步准确度,足以进行包到达抖动测量。时钟频率与作为负载传输的数据格式独立,在协议中或定义此格式的负载类型说明中静态定义,也可以在通过非RTP方法定义的负载格式中动态说明。若RTP包周期性生成,可以使用由抽样时钟确定的额定抽样瞬间,而不是读系统时钟。例如,对于固定速率语音,时间标志钟可以每个抽样周期加1。若语音设备从输入设备读取覆盖160个抽样周期的数据块,对于每个这样的数据块,时间标志增加160,无论此块被发送还是被静音压缩。时间标志的起始值是随机的,如同序列号。多个连续的RTP包可能由同样的时间标志,若他们在逻辑上同时产生,如属于同一个图像帧。若数据没有按照抽样的顺序发送,连续的RTP包可以包含不单调的时间标志,如MPEG交织图像帧。

同步源(SSRC):32比特,SSRC域用以识别同步源.标识符被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符。尽管多个源选择同一个SSRC识别符的概率很低,所有RTP实现工具都必须准备检测和解决冲突。若一个源改

变本身的源传输地址,必须选择新的SSRC识别符,以避免被当作一个环路源。

有贡献源(CSRC)表:0到15项,每项32比特,CSRC列表识别在此包中负载的有贡献源。识别符的数目在CC域中给定.若有贡献源多于15个,仅识别15个。CSRC识别符由混合器插入,用有贡献源的SSRC识别符。例如语音包,混合产生新包的所有源的SSRC标识符都被陈列,以期在接收机处正确指示交谈者。

注意:前12个字节出现在每个RTP包中,仅仅在被混合器插入时,才出现CSRC 识别符列表。

2.2.2 RTCP实时传输协议

实时传输控制协议RTCP(Real time Transport Control Protocol)负责管理传输质量,在当前应用进程之间交换控制信息,提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。

RTCP协议的功能是通过不同的RTCP数据报文来实现的,主要有如下几种类型:

(1) SR(Sender Report)发送端报告,所谓发送端是指发出RTP数据报的应用程序或者终端,发送端同时也可以是接收端。

(2) RR(Receiver Report)接收端报告,所谓接收端是指仅接收但不发送RTP数据报的应用程序或者终端。

(3) SDES源描述,主要功能是作为会话成员有关标识信息的载体,如用户名、邮件地址、电话号码等,此外还具有向会话成员传达会话控制信息的功能。

(4) BYE通知离开,主要功能是指示某一个或者几个源不再有效,即通知会话中的其他成员自己将退出会话。

(5) APP由应用程序自己定义,解决了RTCP的扩展性问题,并且为协议的实现者提供了很大的灵活性。

RTCP数据报携带有服务质量监控的必要的信息,能够对服务质量进行动态的调整,并且能够对网络拥塞进行有效的控制。由于RTCP数据报采用的是组播方式,因此会话中的所有的成员都可以通过RTCP数据报返回的控制信息,来了解其他参与者的当前情况。

例如在流媒体应用场合下,发送媒体流的应用程序将周期性地产生发送端报告SR,该RTCP数据报含有不同媒体流间的同步信息,以及已经发送的数据报和字节的计数,接收端根据这些信息可以估计出实际的数据传输速率。另一方面,接收端会向所有已知的发送端发送接收端报告RR,该RTCP数据报含有已接收数据报的最大序列号、丢失的数据报数目、延时抖动和时间戳等重要信息,发送端应用根据这些信息可以估计出往返时延,并且可以根据数据报丢失概率和时延抖动情况动态调整发送速率,以改善网络拥塞状况,或者根据网络状况平滑地调整应用程序的服务质量。

RTCP具有以下四个功能:

(1) 基本功能是提供数据传输质量的反馈.这是RTP作为一种传输协议的主要作用,它与其他协议的流量和阻塞控制相关.反馈可能对自适应编码有直接作用,但是IP组播的实验表明它对于从接收机得到反馈信息以诊断传输故障也有决定性作用。向所有成员发送接收反馈可以使"观察员"评估这些问题是局部的还是全局的。利用类似多点广播的传输机制,可以使某些实体,诸如没有加入会议的网络业务观察员,接收到反馈信息并作为第三类监视员来诊断网络故障.反馈功能通过RTCP发射机和接收机报告实现。

(2) RTCP为每个RTP源传输一个固定的识别符,称为标称名或CNAME。由于当发生冲突或程序重启时SSRC可能改变,接收机要用CNAME来跟踪每个成员。接收机还要用CNAME来关联一系列相关RTP会话期中来自同一个成员的多个数据流,例如同步语音和图像。

(3) 前两个功能要求所有成员都发送RTCP包,因此必须控制速率以使RTP成员数可以逐级增长。通过让每个成员向所有成员发送控制包,各个成员都可以独立地观察会议中所有成员的数目。

(4) 可选的功能是传输最少的会议控制信息,例如在用户接口中显示的成员识别.这最可能在"松散控制"的会议中起作用,在"松散控制"会议里,成员可以不经过资格控制和参数协商而加入或退出会议。RTCP作为一个延伸到所有成员的方便通路,必须要支持具体应用所需的所有控制信息通信。

2.3 FFmpeg视频编解码技术

2.3.1 FFmpeg简介

FFmpeg是一个集视频录制、转换和音视频编解码功能于一体的开源C代码库。FFmpeg最初的开发是基于Linux操作系统,但是经过编译和移植后也可以在人多数操作系统中使用。FFmpeg包含了丰富的视频编解码库,支持MPEG、DivX、MPEG-4、

AC3、DV、FLV等40多种编码以及A VI、MPEG、OGG、Matroska、ASF等90多种解码。为了保证编解码质量和可移植性,FFmpeg里很多视频编解码的codec都是从头开发的[5]。

2.3.2 组成

FFmpeg开源库主要由以下一些子库组成[6]:

(1) libavformat:用于生成和解析各种音视频封装格式,配置和获取编解码器的信息和上下文结构。

(2) libavcodec:包含了所有的音视频编解码器。

(3) libavutil:包含了一些工具组件函数。

(4) libswscale:用于在不同的颜色空间进行转换和视频比例缩放等。

(5) libpostproc:用后期的效果处理。

(6) ffmpeg:提供了一些可以直接进行格式转换、编解码的工具。

(7) ffserve:一个HTTP多媒体即时广播服务器。

(8) ffplay:一个简单的用ffmpeg进行解析和解码的播放器。

2.3.3 编码框架

在使用FFmpeg库中的任何功能之前,都必须对FFmpeg进行注册,否则任何codec 和format将无法使用,FFmpeg库中的初始化注册功能由av_register_all()函数来实现。第二步要根据所使用的编码格式申请FFmpeg中的编码器,可以使用两种方法来申请编码器,分别是根据编码器的CODEC_ID来申请和根据设置的文件名格式来申请,例如将CODEC_ID设置为CODEC_ID_MPEG4和将文件名后缀.mp4传入申请编码器的函数,都可以申请到MPEG_ 4格式的编码器。FFmpeg支持现有的大多数视频编码器,如MPEG_1、MPEG_2、MPEG_3、H.261、H.263等,但是目前FFmpeg还不支持H.264编码器,如需要H.264编码器,需要将其他的开源H.264库(如X264库)集成到FFmpeg 中,本文不加赘述。

在申请好了编码器之后,需要对编码器的各种编码参数进行一些必要的设置以满足不同的要求。其中比较重要的参数有视频尺寸、编码比特率、运动估计算法、GOP大小和像素格式等。视频尺寸即视频的宽度和高度。编码比特率即码率,它决定了编码的质量和压缩率,编码比特率越大,采样率就越高,相应的编码质量也越高,但是压缩率会变小,即需要传送的数据量变大,反之,编码比特率越小,采样率就越低,相应的编码

质量就越低,但是压缩率会变大,传送的数据量也会变小。运动估计算法可以有效地去除帧间的冗余,在传输视频时对于减少网络负载量具有非常重要的意义。GOP(Group of Pictures)大小是指以帧数来表示的一组连续画面的大小,在这组连续的画面所对应的帧中,只需要把第一帧作为I帧,其余帧都可以作为P帧或B帧。像素格式是指视频帧中的像素所使用的颜色空间格式,如YUV420P、YUV422P和RGB24等。在编码器准备就绪开始编码之前,还需要分配编码所需的内存空间,这些内存空间包括一帧原始视频图像大小的临时缓存区、一帧原始视频图像大小的图像存放区和一个输出缓存区,输出缓存区可以在不会发生数据溢出的前提下自行设定大小。

在前期的准备工作完成之后,就可以对视频序列进行编码了。编码的过程为:首先提取出视频序列的一帧,将这一帧图像拷贝到临时缓冲区中。然后利用月FFmpeg提供的sws_scale()方法将图像像素转换为之前设定的像素格式并存放在图像存放区中;最后使用FFmpeg的avcodec_encode_video()方法将这帧图像编码并存放在输出缓存区中等待发送。

当结束编码时,会将之前中请的FFmpeg中的资源和系统内存中的资源进行释放和回收,等待下一次开始编码。编码过程如图2.2所示。

图2.2 使用FFmpeg编码过程

2.3.4 解码框架

本课题对FFmpeg的解码实现过程与编码过程大致类似,有点需要说明的是在分配待解码图像输入缓冲区的时候,所需申请的内存大小要比实际大一个尺寸,这个尺寸在FFmpeg中定义为FF_INPUT_BUFFER_PADDING_SIZE。这是因为有一些解码器在从输入缓冲区读取视频流的时候会以32位或64位为步长,这就有内存溢出的可能性。在输入缓冲区的后面加入一定长度的保护单元,可以避免这种情况的发生,对解码也不会产生影响。如果在分配输入缓冲区的时候忽略了这一点,将会导致无法解码出正确的图像

数据的情况。解码过程如图2.3所示。

图2.3 使用FFmpeg解码过程

2.4 本章小结

本章对基于Android的视频通话系统关键技术进行了简单的介绍,并结合本系统介绍了各个技术在实际背景下的具体应用。第一节介绍了Java多媒体框架里在本应用中使用到的重要组件。第二节介绍了RTP/RTCP协议,包括RTP实时传输的原理。第三节介绍了本系统所使用的编解码器,并简单分析了其特点。本章内容是本课题的技术构成,也是本课题能够实现的关键。

第3章 系统分析

系统分析在整个软件开发中有着至关重要的作用,只有通过实际的系统分析才能有更好更实用的系统设计,从而实现出令客户满意的软件产品[7]。本章主要介绍对视频通信系统的需求分析工作,系统的需求来源于项目组专业的需求分析人员与客户交流沟通所得。需求明确,来源可靠,是基于Android 视频通话系统需求的一部分。通过详细分析客户需求,初步明确系统的功能性和非功能性需求,其中功能性需求主要通过用例图和详细的用例说明来描述。

3.1 需求分析

3.1.1 系统总体需求

基于Android 的视频通话系统主要功能是实现Android 系统和PC 端之间的视频通话。根据需要本系统只是简单的点到点的视频传输,不需要中间服务器。因此本系统只包含两个客户端。PC 端基于Windows 操作系统。Android 端基于Android 2.3操作系统。两个客户端之间的数据传输通过Wifi 。从整体上来看每个客户端都分为两部分,发送端和接收端。由于这两个部分不存在任何联系,因此可以作为两个独立的模块来开发。发送端需要完成从摄像头和麦克风获得原始的数据,将数据编码压缩,然后再发送出去。接收端负责接收数据,将数据解码并显示出来。由于PC 端和Android 端情况不太一样,因此还需要考虑其它的因素。PC 端硬件的复杂多样性,比如有的PC 上没有摄像头,有的PC 上有多个摄像头。因此必须考虑到硬件检测,并由用户来选择具体使用哪个。为了方便用户使用,在Android 端使用SQLite 数据库来保存IP 地址和端口号。在视频过程中可以实现截屏功能来截取当前图像并保存供用户使用。图3.1为基于Android 视频通话系统的运行架构图。

PC Wifi

智能手机

图3.1 基于Android 视频通话系统运行架构图

3.1.3 用例分析

根据基于Android的视频通话系统的业务流程和执行过程可以进行相应的角色识别和用例分析。本系统的主要参与者就是视频通话的参与者。

根据以上分析,从而得到PC端的用例模型。整个PC端包含了三个用例,分别是选择硬件设备、开始视频通话、结束视频通话。其中选择硬件设备又包含了选择音频设备和选择视频设备。图3.2是PC端的用例图。

PC

图3.2 PC端用例图

PC端选择硬件设备用例主要功能是让会话参与者来选择系统硬件设备。当系统启动时会自动进行硬件设备检测并返回检测结果。参与者跟据结果来选择具体使用哪些设备来进行下一步的视频通话。表3.1为选择硬件设备用例的用例规约。

表3.1 选择硬件设备用例

用例名称选择硬件设备用例

用例ID UseCase1

角色视频通话PC端参与者

用例说明该用例主要功能是完成PC端参与者硬件选择功能

前置条件进入主界面

基本事件流参与者动作系统响应

1.选择系统硬件设备,用户点击确定按

2.系统响应点击事件,跳转至视频准备

开始界面

其它事件流无

异常事件流无

后置条件开始硬件初始化成功

PC端视频通话用例是本系统的核心。主要功能是完成开始进行视频通话这一动作。

当用户选择完硬件设备后,系统进入视频通话准备界面。用户点击开始按钮,进入开始视频通话。图3.2为开始视频通话用例。

表3.2 开始视频通话用例 用例名称

开始视频通话 用例ID

UseCase2 角色

视频通话PC 端参与者 用例说明

该用例主要功能是完成PC 端视频通话功能 前置条件 进入视频通话准备界面

基本事件流

参与者动作

系统响应 1. 用户点击开始按钮

2.系统响应点击事件,系统开始进行视频通话

其它事件流

无 异常事件流

无 后置条件 开始视频成功,显示视频通话画面 PC 端结束视频通话用例主要功能用来结束视频通话。在视频通话中点击结束按钮来结束本次结束视频通话。结束视频通话用例如表3.3所示。

表3.3 结束视频通话用例 用例名称

结束视频通话 用例ID

UseCase3 角色

视频通话PC 端参与者 用例说明

该用例主要功能是完成PC 端视频通话结束功能 前置条件 正在进行进入视频通话

基本事件流

参与者动作

系统响应 1.用户点击结束按钮

2.系统响应点击事件,跳转至视频准备界面

其它事件流

无 异常事件流

无 后置条件 视频通话成功结束 Android 端的用例图。包含了四个用例。分别是会话参与者管理、开始会话、视频截图、结束会话四个用例。会话参与者管理又分为添加会话参与者、删除会话参与者、修改会话参与者三个用例。图3.3为Android 端用例图。

图3.3 Android 端用例图

Android 端视频通话用例主要任务是完成Android 端的视频通话开始这一行为。为了完成视频通话,必须首先选择视频通话对象。然后点击连接按钮进行视频通话。开始视频通话用例如表3.4所示。

表3.4 视频通话用例 用例名称

视频通话 用例ID

UseCase4 角色

视频通话Android 端参与者 用例说明

该用例主要功能是完成Android 端视频通话功能 前置条件 进入主界面

基本事件流 参与者动作

系统响应 1.用户点击下拉列表按钮

3.用户选择参与者

5.用户点击连接按钮

2.系统弹出会话参与者候选列表 4.系统选定该参与者 6.系统进入视频通话界面 其它事件流 无

异常事件流 5.1若找不到该会话参与者,提示无法连接到该参与者

后置条件

视频通话成功开始 Android 端结束视频通话主要用来结束本次视频通话。点击结束按钮来结束本次视频通话,同时释放系统资源。结束视频通话用例如表3.5所示。

表3.5 结束视频通话用例

基于Android的视频通话系统的设计与实现毕业设计论文

东北大学毕业设计(论文)摘要基于Android的视频通话系统的设计与实现 摘要 近年来,智能手机操作系统发展迅速,尤其是Android系统的迅猛发展已经将全球智能手机市场引领到了非常火爆的状态。随着手机社交网络、手机多媒体通信和手机游戏等应用程序不断被开发出来,各种基于智能手机操作系统的应用程序正在逐渐影响和改变人们的生活方式。实时视频流技术在可视电话、远程教育、视频点播等方面得到了广泛的应用。 本文设计并实现的基于Android的视频通话系统采用C/S架构,包括PC和手机两个客户端。手机端使用Android2.3操作系统。本系统共包含四个子系统:PC端接收子系统、发送子系统,Android端接收子系统、发送子系统。接收子系统实现数据接收、转码和呈现,发送子系统现实数据采集、编码压缩和数据发送。PC端基于JMF框架来实现,Android端使用Android Camera类及其相关类来实现。本文对国内外视频通话的研究情况以及今后的发展前景,对实现视频通话所涉及到的协议和相关技术进行了分析,在此基础上提出了一种可行的网络视频通话设计方案,并通过需求分析、详细设计、编码实现、单元测试以及集成测试等过程完成了本系统的设计与实现。 本系统实现了跨平台视频通话,使PC与Android之间的视频通话成为了可能,可以起到丰富人们日常生活交流和娱乐方式的作用。 关键词:Android,视频通话,JMF,PC,RTP/RTCP

Design and Implementation of an Android-Based Video Calling System Abstract In recent years, the rapid development of smart phone operating system, especially Android system, has led the global smart phone market into explosion state. With some application such as mobile social networking, mobile media communications and mobile games being continually developed, a variety of application on smart phone operation systems are increasingly affecting and changing people’s lifestyles. The real-time video streams technology is used widely in such aspects as videophone, distance education and video on demand. The system based on android uses c/s architecture. It includes two clients. One is on the Windows system, the other one is on the Android 2.3 system. There are four subsystems. Each of clients has a send subsystem and a receiver subsystem. The main function of the receiver subsystem is to receiver data from internet and decodes that data. After that, it will display that data as soon as possible. The main function of the send subsystem is to collect data from camera and then encodes the data. After that, the data will be sanded to the Internet. On the PC client, we use the JMF framework. One the Android client, we use Android API. This paper firstly introduces the research condition of the video call and development tendency. It analysis some technologies about the video calling system and comes up with a feasible plan. It introduces the video calling system about requirement analysis, detailed design, realize and testing. This system achieves the cross-platform video calling. It becomes possible to make video calling between PC and Android and will enrich the people’s communication and entertainment in their daily lives. Key words: Android, video call, JMF, PC, RTP/RTCP

毕业论文管理系统分析与设计说明

毕业论文管理系统分析与设计 班级:信息管理与信息系统 1102 指导教师:黄立明 学号: 0811110206 姓名:高萍

毕业论文管理系统 摘要 (3) 一.毕业论文管理系统的系统调研及规划 (3) 1.1 项目系统的背景分析 (3) 1.2毕业论文信息管理的基本需求 (3) 1.3 毕业论文管理信息系统的项目进程 (4) 1.4 毕业论文信息管理系统的系统分析 (4) 1.4.1系统规划任务 (4) 1.4.2系统规划原则 (4) 1.4.3采用企业系统规划法对毕业论文管理系统进行系统规划 (5) 1.4.3.1 准备工作 (5) 1.4.3.2定义企业过程 (5) 1.4.3.3定义数据类 (6) 1.4.3.4绘制UC矩阵图 (7) 二.毕业论文管理系统的可行性分析 (8) 2.1.学院毕业论文管理概况 (8) 2.1.1毕业论文管理的目标与战略 (8) 2.2拟建的信息系统 (8) 2.2.1简要说明 (8) 2.2.2对组织的意义和影响 (9) 2.3经济可行性 (9) 2.4技术可行性 (9) 2.5社会可行性分析 (9) 2.6可行性分析结果 (10) 三.毕业论文管理系统的结构化分析建模 (10) 3.1组织结构分析 (10) 3.2业务流程分析 (11) 3.3数据流程分析 (11) 四.毕业论文管理系统的系统设计 (13) 4.1毕业论文管理系统业务主要包括 (13) 4.2毕业论文管理系统功能结构图 (13) 4.3代码设计 (14) 4.4,输入输出界面设计 (15) 4.4.1输入设计 (15) 4.4.2输出设计 (15) 4.5 数据库设计 (15) 4.5.1需求分析 (15) 4.5.2数据库文件设计 (16) 4.5.2数据库概念结构设计 (17) 五.毕业论文管理系统的系统实施 (18) 5.1 开发环境 (18) 5.2 调试与测试过程 (19)

个人博客系统的设计与实现开题报告

中北大学 毕业设计开题报告学生姓名:周海芳学号:0906034202 学院、系:电子与计算机科学技术学院计算机科学与技术系 专业:计算机科学与技术 设计题目:个人博客系统的设计与实现指导教 师:元 2013年3月8日

毕业设计开题报告 1.结合毕业设计情况,根据所查阅的文献资料,撰写2000字左右的文献综述: 文献综述 一、选题的依据及意义 进入二十一世纪,以Internet为核心的现代网络积水和通信技术已经得到了飞速的发展和广泛的应用,各种网络交流互动工具也应运而生。其中以论坛、博客、社区、空间最为受广大网民朋友的欢迎,也是目前为止发展的比较成熟的信息交流工具。在网络技术逐渐渗入社会生活各个层面的今天,传统的交流方式也面临着变革,而网络博客则是一个很重要的方向。基于Web技术的网络考试系统可以借助于遍布全球的Internet 进行,因此交流既可以是本地进行,也可以是异地进行,大大拓展了沟通与交流的灵活性。博客在现如今这个飞速发展的网络时代已经成为人们不可或缺的一部分[1]。 博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期贴新的文章的。博客它经常是由简短且经常更新的帖子构成,它可以发表有关个人构思,日记,或者诗歌,散文,小说等等。博客可以是你纯粹个人的想法和心得,包括你对时事新闻、国家大事的个人看法,或者你对一日三餐、服饰打扮的精心料理等,也可以是在基于某一主题的情况下或是在某一共同领域由一群人集体创作的容。写博客是为了把自己各种各样的想法在网上表达、释放出来,把一时的想法变成观点展示给大家。而浏览博客的用户,也可以对发表观点和看法的文章进行评论,博客就是这样一个平台。 博客最初的名称是Weblog,由web和log两个单词组成,按字面意思就为网络日记,后来喜欢新名词的人把这个词的发音故意改了一下,读成we blog,由此,blog这个词被创造出来。中文意思即网志或网络日志,不过,在中国大陆有人往往也将 Blog本身和 blogger(即博客作者)均音译为“博客”。“博客”有较深的涵义:“博”为“广博”;“客”不单是“blogger”更有“好客”之意。看Blog的人都是“客”。而在,则分别音译成“部落格”(或“部落阁”)及“部落客”,认为Blog本身有社群群组的意含在,借由Blog可以将网络上网友集结成一个大博客,成为另一个具有影响力的自由媒体[2]。 二、个人博客的发展现状

android毕业设计(论文)开题报告

毕业设计(论文) 开题报告 题目___________________________ 学院___________________________ 专业及班级___________________________ 姓名___________________________ 学号___________________________ 指导教师 ___________________________ 日期 ___________________________

西安科技大学毕业设计(论文)开题报告

二、主要研究(设计)内容、研究(设计)思路及工作方法或工作流程 设计内容:基于Android平台下实现理货员的功能:精耕拜访,销售机会,拜访效果,门店销量查询,待办事项,数据维护:队列信息,基础信息,地图下载。 设计思路及工作方法: 1.精耕拜访: (1)初始进入该页面,系统会自动获取该理货员的本日拜访的门店及路线。 (2)下方地图会自动定位目前理货员的位置。 (3)点击门店的具体门店名称,在右边会显示该门店的联系人,电话,及地址,并且地图 会自动切换定位以该门店为中心。 (4)点击地图上的+可实现地图局部放大。-可实现地图的放小。 (5)如已拜访的门店,点击进入可以调去历史拜访数据。如未拜访的门店,点击进入可以新增该拜访记录。 (6)如理货员在拜访期间,发现门店已经有卖而目前系统中无记录的情况,则可以通过扫 描SKU的条形码,系统会自动匹配该SKU的信息给理货员。 匹配顺序:连锁总店—区域管理—基本SKU信息 补充说明: (1)公司动态内容,为了显示保乐力加集团的整体形象,有必要对公司的动态进行展示。 要包括集团的光辉历程,门店信息,集团的促销信息等。 (2)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员 需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且 分发。 (3)陈列报告,为显示每次理货员必须处理的门店信息记录及图片等。 (4)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且分发。 (5)价格显示,系统会自动带出竞品信息。罗列在下半部。理货员在进行拜访期间,可以对本身的SKU及竞品的价格进行登记。主要登记内容:零售价格,促销价格及促销期间。信息采集完毕,可以供后台进行统计分析。 (7)在陈列信息栏中,有其它途径过来的回应确认,可以一栏展示在上半部。如该理货员需要发起确认,也可以通过点击发起确认进行提出。发起确认的需要销售员进行审核并且分发。 (7)库存信息,主要记录SKU的库存数量。 (8)上半部为助销申请内容,主要是对一些礼品的申请。 (9)订单处理,为新增订单,退货内容及换货内容的跟踪。 2.销售机会: (1)打开销售机会界面,会自动定位目前的门店列表。 (2)用户可以输入门店名称查询具体的门店信息及地图位置。

(电脑点歌系统设计)毕业论文

.辽宁警官高等专科学校毕业设计(论文) 电脑点歌系统设计 系:高职计算机系 专业: 学生: 指导教师: 完成日期:2013年5月31日 .

辽宁警官高等专科学校毕业设计(论文)电脑点歌系统设计 总计毕业设计(论文)页 表格表 插图幅

. 摘要 随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。同时,随着生活节奏的加快,每个人都处于忙碌繁乱的社会当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。在工作之余,找到一种能够缓解压力,释放疲劳的娱乐方式,已成为大家共同的愿望。然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱歌,跳跳舞。因为去KTV既方便省事,又能更好更快地愉悦心情。 为了满足广大消费者的需求,进一步完善和加快娱乐业管理信息化进程,针对我国娱乐业的特点和需求,结合以往娱乐软件的开发经验,以娱乐业管理科学化规范化为出发点,开发了这一个具有实用性、高效性、功能划分细致及较高的灵活性和可扩充性的KTV点歌系统。 论文详细论述了系统总体设计思想、数据库设计以及功能模块设计等,给出了自动点歌系统一般流程。该系统主要包括:按拼音点歌、按数字点歌、按歌名点歌、按歌星点歌等四大点歌模块。 关键词:娱乐;自动点歌;模块 I

Abstract Now with economic and cultural level of the improved significantly and people to the quality of life and working environment request more and more is also high. At the same time, along with the speeding up of the pace of life, everyone in the society of FanLuan busy, both in the family, the workplace, or school, always full of life and the pressure in study. In the interim, find a can relieve pressure, release fatigue of entertainment, has become a common desire. However, by working conditions and time limit, more and more people chose to the KTV sing sing and dance. Because to the KTV, which is convenient for save trouble, and can better and faster cheerful mood. In order to meet the needs of the consumers, to further improve the entertainment industry and to speed up the process of information management, in view of the characteristics and needs of the entertainment industry, combining with the development of the entertainment software past experience, with the scientific management of the entertainment industry standardization as the starting point, the development of this is practical, high efficiency, functional division meticulous and high flexibility and scalability of KTV the song system. Paper discusses the overall design thought, system function module design database design, and etc, and gives the general flow system to the song. The system mainly include: the pinyin, according to the song, according to the title song digital song by song singer, and so on four big song module. Key words: entertainment;automatic ;song module

论文答辩最全问题

一、答辩委员会的老师们经常会提出的问题有: 1、你的毕业论文采用了哪些与本专业相关的研究方法? 2、论文中的核心概念是什么?用你自己的话高度概括 3、你选题的缘由是什么?研究具有何种现实指导意义? 4、论文中的核心概念怎样在你的文中体现? 5、从反面的角度去思考:如果不按照你说的那样去做 结果又会怎样? 6、论文的理论基础与主体框架存在何种关联?最主要的理论基础是什么? 7、质性研究与访谈法、定性研究、定量研究、调查研究、实证研究的区别? 8、经过你的研究 你认为结果会是怎样?有何正面或负面效果? 9、你的论文基础何种研究视角?是管理学、教育学、心理学还是社会学视角? 10、论文研究的对象是个体还是群体?是点的研究还是面的研究? 11、研究的应然、实然、使然分别是什么? 12、论文中的结论、建议或策略是否具有可行性和操作性? 13、研究对象是否具有可比性?研究框架是否符合论文规范(而不是写书的逻辑 14、自己为什么选择这个课题? 15、研究这个课题的意义和目的是什么? 16、全文的基本框架、基本结构是如何安排的? 17、全文的各部分之间逻辑关系如何? 18、在研究本课题的过程中 发现了那些不同见解?对这些不同的意见 自己是怎样逐步认识的?又是如何处理的? 19、论文虽未论及 但与其较密切相关的问题还有哪些? 20、还有哪些问题自己还没有搞清楚 在论文中论述得不够透彻? 21、写作论文时立论的主要依据是什么? 22、论文和系统有哪些不足之处? 23、论文有何创新之处? 二、答辩技巧学生首先要介绍一下论文的概要 这就是所谓"自述报告" 须强调一点的是"自述"而不是"自读" 这里重要的技巧是必须注意不能照本宣读 把报告变成了"读书" "照本宣读"是第一大忌 这一部分的内容可包括写作动机、缘由、研究方向、选题比较、研究范围、围绕这一论题的最新研究成果、自己在论文中的新见解、新的理解或新的突破 做到概括简要 言简意赅

个人博客系统项目毕业设计论文

本科毕业设计论文名称:个人博客系统考生姓名: 考生地市:滨州市 档案号: 联系地址:山东省滨州学院邮编:256600

个人博客系统 摘要 对个人而言,博客可以调动个人的积极性,充分发挥个人的创造性。近些年,国内博客开始迅猛发展起来,从最初的只有几千个使用者到现在的各式各样的博客,圈子。博客系统致力于为广大用户提供优质的互动交流平台,提高网站的知名度与访问量,从而获得为企业提供更多产品介绍及展示的机会,提升自己网站的价值。 论文首先论述了系统的开发背景与设计目标,并对系统开发所采用的技术进行相应的简单介绍。在系统分析中,对系统的模型进行简单分析,明确系统的操作流程,并对系统进行可行性分析,确定在目前的条件下,开发博客信息管理系统就是可行的。在需求分析结果的基础上,对系统的功能模块进行划分。接着对系统中的数据库进行模型设计,包括数据流图、实体联系图及数据表结构。在系统的设计与实现中,确定系统的开发思想以及开发环境,并对系统中的Java Bean与Servlet代码进行设计。最后给出了系统中模块的详细设计与实现,并对系统模块涉及到的关键源代码进行了详细的分析。 经过调试运行后表明,系统可以满足用户创建个人博客的各项要求。 关键字:博客,MVC,知识共享,信息管理系统

目录 第一章系统概述 (4) 1、1 概述 (4) 1、2系统的开发背景 (4) 1、3个人博客的发展现状 (4) 1、4课题研究的意义 (5) 1、5系统的开发目标 (5) 第二章系统分析 (6) 2、1系统需求分析 (6) 2、2、1注册博友 (7) 2、2、2 普通用户 (8) 2、3系统分析 (9) 2、4、1技术可行性 (10) 第三章开发环境的说明与安装 (11) 3、1开发语言的选择 (11) 3、1、1 JAVA简介 (11) 3、1、2 Web应用程序开发环境—JSP技术 (11) 3、2 数据库的选择 (12) 3、2、1 Web应用程序开发环境—SQLserver数据库 (12) 3、3开发工具的选择 (13) 第四章系统设计 (14) 4、1开发框架技术介绍 (14) 4、2数据库设计E-R图 (15) 4、3 功能模块介绍 (16) 4、3、1 博客注册登录管理模块 (16) 4、3、2 博客及文章检索查询模块 (16) 4、3、3博客页面显示模块 (17) 4、3、4 博客个人维护管理模块 (17) 4、4系统分析 (17) 4、4、1系统架构说明 (18) 4、4、2实现DAO 层 (19) 4、4、4 部署DAO 层 (20) 第五章数据库设计 (20) 5、1定义(数据词典) (20) 5、2主要表结构如下 (20) 第六章主要功能的实现 (21) 6、1 登录控制: (21) 6、2 用户登录 (22) 6、3注册用户 (23) 6、4 Ajax 读取txt格式数据 (27) 6、5 系统架构与数据库的连接 (28) 第七章系统评价 (29) 附:主要参考资料: (30)

毕业设计论文设计-视频点播系统

理工大学继续教育学院 毕业设计任务书 类别:高起本 专业:计算机科学与技术 班级:计算机科学与技术A班 姓名:海括 毕业设计题目:视频点播系统 指导教师:宋晔 负责人签字: 年月日

题目:视频点播系统 本系统是一个小型系统,采用SQL Server数据库,将HTML、https://www.sodocs.net/doc/1512704945.html, 及JavaScript完美融合,力求界面美观、操作流畅、易于实现。视频点播系统根据流媒体传输原理,在校园局域网的基础上实现了用户信息管理、视频文件的添加、删除、修改及在线播放和搜索功能。 任务要求: 一、任务容描述: 1.开发工具SQL Server,https://www.sodocs.net/doc/1512704945.html, .NET Framework 2.系统主要功能: (1)操作员管理:能够实现后台管理添加、删除、修改操作员。 (2)用户管理:能够对前台注册的用户进行管理。 (3)视频管理:能够对视频资料进行上传、修改以及删除。 (4)分类管理:能够对电影的分类进行维护。 (5)评论管理:能够对用户的评价进行管理。 三.进度安排 1.第一阶段:要求完成系统需求分析; 2.第二阶段:要求完成系统设计; 3.第三阶段:要求完成系统实现与测试; 4.第四阶段:要求完成毕业设计论文的撰写。 指导教师签字:年月日

理工大学继续教育学院 毕业论文 论文题目:视频点播系统 专业:计算机科学与技术 班级:计算机科学与技术A班 :海括 学号:a057

摘要 VOD(Video On Demand) 即交互式多媒体视频点播,是随着计算机技术和网络通讯技术的发展,综合了计算机技术、通讯技术而迅速新兴的一门综合性技术。它利用了网络和视频技术的优势,彻底改变了过去收看节目的被动方式,实现了节目的按需收看和任意点播,集动态影视图、声音、文字等信息为一体,为用户提供实时、交互,按需点播服务的系统。 视频点播系统根据流媒体传输原理,在校园局域网的基础上实现了用户信息管理、视频文件的添加、删除、修改及在线播放和搜索功能。本系统是一个小型系统,采用SQL Server数据库,将HTML、https://www.sodocs.net/doc/1512704945.html,及JavaScript 完美融合,力求界面美观、操作流畅、易于实现。 本文结合平台开发实例,阐述了基于Web的交互式视频点播系统的原理、软件结构和设计实现,并在此基础上对网络优化作相应的探索。 关键字:视频点播,SQL Server,https://www.sodocs.net/doc/1512704945.html,

个人博客的设计与实现毕业设计(论文)任务书

毕业设计(论文)任务书 设计(论文)题目:个人博客的设计与实现 系部:计算机工程系专业:学号: 学生:指导教师(含职称):专业负责人: 1.设计(论文)的主要任务及目标 本课题的主要任务是: (1)数据库设计,经过系统分析,针对个人博客网站所要求的功能,进行数据建模。首先建立逻辑数据模型,然后建立物理数据模型。最后在数据库中建立了一系列的表。平台的实现也是围绕着数据库进行的。 (2)网站开发规范,确定了个人博客网站的框架,包括采用的页面风格和实现这个网站需要的页面。建立程序所在目录,针对要求的页面命名,(3)代码编写规范,首先确定出来系统的公共函数和公共变量等。写在公共文件中,比如数据库连接等功能模块。这样程序利于阅读和维护。 课题目标:能实现个模块的功能 1.访问者(学生)系统的主要功能: 用户的注册和登录,可实现动态拖放定制桌面等功能,可实现博客主题被搜索功能,转载,下载,评论,留言功能等(下载,转载,评论,留言需登录)。 2.博客主人(老师)系统的主要功能: 可以实现发表和删除博文,视频,图片等功能,可以上传文件,或课件。可以对访问者的留言进行回复或删除。博主还可以更改个人资料,更改密码。此外,博客主人可以对博客主页版面模块进行自由设计摆放,实现人机互动功能。博客主界面采用DIV+CSS布局使博客界面更加独具风格。 3.链接数据库设计: 可以实现用户名的注册,防止重名注册。 4.图片视频浏览功能: 此功能主要是教学视频的应用,学生可以在线观看或者下载自主学习。 5.展望功能: 实现师生在线沟通,问答,实时交流。实现访客和博主的互相关注功能。

2.设计(论文)的基本要求和内容 1.HTML语言的编写以及主要标签的使用。 2.CSS层叠样式表的语法规则,用来美化页面效果。 3.javascript脚本语言的语法规则,用来实现交互效果。 4.数据库的连接。 3.主要参考文献 [1] 马军. ASP网络编程从入门到精通[M].北京:清华大学出版社.2006. [2] 刘振岩.基于.NET的Web程序设计[M],电子工业出版社,2006. [3] 谭晶晶. 基于ASP的个人博客系统设计与实现[J].软件导刊,2013-05,第12卷第5期:82-84. [4] 李浩. PHP个人博客系统的设计与实现.科学之友[J],2012-11:143-144. [5] 徐吟晖. 基于WEB开发的视频博客的设计与实现[D/OL].复旦大学,2013-11-07. [6] 朱如龙. SQL Server数据库应用系统开发技术[M].北京机械工程出版社,2004-2-13. [7] 金雪云,汪文彬,陈文臣. https://www.sodocs.net/doc/1512704945.html, 2.0简明教程[M],清华大学出版社,2009-3. [8] 金雯岚. Ajax技术在博客系统中的应用[D].大连:大连海事大学,2008-6. [9] 朱珊虹,石庆民.基于DIV+CSS的个人博客网页设计应用研究[J].新乡学院信息工程学院,2011(04). [10] 朱印宏,邓艳照,DIV+CSS网站布局从入门到精通[M],石油工业出版社.2011-1-1 [11] 吴晓艳, 陈明明.基于.NET的校园博客系统的设计与实现[J].教育技术的创新、发展与服务——第五 届教育技术国际论坛论文集(下册).2006-10-01 [12] 曾东,曾文权.Web开发技术-ASP[M].清华大学出版社,2007. 4.进度安排 注:一式4份,系部、指导教师各1份、学生2份:[毕业设计(论文)]及答辩评分表各一份

个人博客管理系统 毕业设计论文

个人博客管理系统论文 前言 博客(Blog)的全名应该是Web log,中文意思是“网络日志”,后来缩写为Blog,而博客(Blogger)就是写Blog的人。从理解上讲,博客是“一种表达个人思想、网络链接、内容,按照时间顺序排列,并且不断更新的出版方式”。简单的说博客是一类人,这类人习惯于在网上写日记。 博客(Blog)是继Email、BBS、IM之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,是代表着新的生活方式和新的工作方式,更代表着新的学习方式。具体说来,博客(Blogger)这个概念解释为使用特定的软件,在网络上出版、发表和张贴个人文章的人。 简言之,Blog就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。 一个Blog其实就是一个网页,它通常是由简短且经常更新的帖子所构成,这些张贴的文章一般都是按照年份和日期倒序排列。Blog的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人构想到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。许多Blogs是个人心中所想之事情的发表,个别Blogs则是一群人基于某个特定主题或共同利益领域的集体创作。 随着Blog快速扩张,它的目的与最初的浏览网页心得已相去甚远。目前网络上数以千计的Bloggers发表和张贴Blog的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组以及BBS和论坛更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具。 Blogger即指撰写Blog的人。Blogger在很多时候也被翻译成为“博客”一词,而撰写Blog这种行为,有时候也被翻译成“博客”。因而,中文“博客”一词,既可作为名词,分别指代两种意思Blog(网志)和Blogger(撰写网志的人),也可作为动词,意思为撰写网志这种行为,只是在不同的场合分别表示不同的意思罢了。 最早,是由Jorn Barger在1997年12月提出博客这个名称。但是在1998

校园网设计毕业论文

前言 网络应用的发展 目前,全球已掀起一股信息高速公路规划和建设的高潮,作为其雏形,国际互联网(Internet)上相连的计算机已近达数千万台,全球有数亿人在Internet 上进行信息交换和各种业务处理。Internet上积累了大量信息资源,这些资源涉及人类面对和从事的各个领域、行业及社会公用服务信息。成为信息时代全球可共享的最大信息基地。由于计算机网络技术和通信技术的飞速发展,人们对信息的要求越来越强烈,“网络就是计算机”的说法被全世界普遍接受。各国纷纷宣布建设本国的信息高速公路,全球信息一体化局面已指日可待。 我国自1993年与Internet连通以来,已建成了四大主干信息网:中国公众信息网ChinaNET,中国金桥网ChinaGBN,中国教育科研网CERNET和中科院网CASNET。全国各大中城市的网络节点相继开通。广东省已经建立了面向本地服务的公共信息网。Internet显示出诱人的商业前景,被国人称为"第二国道的建设。 随着信息技术的飞速发展,中小学校园网的建设已经逐渐提到议事日程上来。当前由于网络、数据库及与之相关的应用技术不断发展,尤其国际互联网(Internet)和内部网(Intranet)技术的广泛应用,世界正在迈入网络中心计算(NetworkCentricComputing)时代。人们传统的交互和工作模式正在改变。处在不同地理位置的人们可以共享数据,使用群件技术(GroupWare)进而能够协同工作;多媒体数据的存储、传输、应用技术的不断成熟;以上这些计算机技术的发展对学校传统的计算机业务系统产生影响,使用户能更方便、更直观的使用系统,也使系统的性能更完善、功能更强大。 Internet的发展带动了全世界的信息产业的发展,也为现代学校应用程序结构提供了一个新的计算模式,这种计算模式能真正适应学校发展的需要,使学校的计算机应用提高到一个新的水平。将Internet技术应用到学校内部,并建立基

Adobe Premiere Pro视频处理论文毕业设计

视频处理 [摘要]:视频是对现实世界的真实记录,具有表现事物细节的能力,适合呈现一些对学习者比较陌生的事物.它的信息量比较大,具有更强的感染力. 本文探讨了数字视频技术在多媒体课件制作中的应用,着重从数字视频采集与压缩、数字视频编辑两方面进行了阐述。 [关键字]:多媒体数字视频处理非线性编辑视频转换字幕设计运动效果音频处理 Adobe Premiere Pro既是一个独立的产品,也是新推出的Adobe Video Collection中的关键组件,它是一个功能强大的影视作品专业编辑软件。 Premiere Pro 软件是革新性的非线性视频编辑应用程序,其强大的适时视频和音频编辑工具可让你对制作的各个方面进行精确地虚拟控制。利用Premiere Pro新增的Adobe字幕工具、基本的DVD制作工具、工具强大的音频工具以及MPEG编码工具,它进一步完善了包括扑捉、编辑直至最终输出整个数字视频编辑过程的全部功能,增强型用户窗口、新型专业编辑工具中内置跨平台的多种支持。 Adobe Premiere Pro提供了更强大、高效的增强功能和先进的专业工具,包括尖端的色彩修正、强大的新音频控制和多个嵌套的时间轴,并专门针对多处理器和超线程进行了优化,能够利用新一代基于英特尔奔腾处理器、运行Windows XP的系统在速度方面的优势,提供一个能够自由渲染的编辑体验。 视频转换是指一个片段结束时,播放图像转换为另一个片段。视频转换分为:视频之间的直接转换和特殊效果视频转换;视频转换的方法是一个片段以某种效果逐渐地换为另一个片段。Premiere Pro 提供了多达近百种的典型视频转换效果,虽然每个转换都是唯一的,但是控制图像的视频转换却有多种方式。两素材间最常用的视频转换方式就是硬切,从一个素材到另一个素材的直接变换。 在影片中加入说明性的文字以帮助观众理解影片的内容,这对于游记类的影片尤为重要,有的时候在拍摄影片的现场由于某种原因没有加入同步的解说,在后期制作的时候可以通过添加字幕来补充这一拍摄过程中的缺憾,还可使制作出来的影片更加完整。 要得到一幅图像的运动效果可以在拍摄的过程进行操作,但如果进入了后期的视频处理时,还需要获得某个图像的运动效果,有些人选择补拍的方式,这样常常会遇到实际的困难导致无法进行实景补拍工作;现在许多视频处理软件都可以通过控制图像的运动效果完成此操作。我们可以通过Premiere Pro 对视频素材进行多种运动效果的添加,设置素材的移动、旋转、变形和放大多种实际运动效果。 声音是视频作品不可或缺的一部分,很多节目都是视频和音频的合成。有些节目在后期编辑的时候,根据剧情都要配上声音效果,叫做混合音频。当节目播放的时候,视频和声音以同样的速度播放,实现了图像和声音的同步。对音频素材的利用,是制作影视作品过程当中相当重要的一个组成部分。 一、创建新项目: 1、启动Premiere Pro,在打开的窗口中单击[新建项目]按钮; 2、在弹出的[新建项目]窗口中设置项目的保存位置; 3、在[新建项目]的左侧窗口中选中“Standard 32KHZ”;

毕业设计---个人博客系统设计与实现

毕业设计(论文)中文摘要

毕业设计(论文)外文摘要

目录 1 绪论 ......................................................... - 1 - 1.1博客概况.. (1) 1.1.1 博客的产生............................................ - 1 - 1.1.2 博客的现状............................................ - 2 - 1.2博客的发展、需求与前景 (2) 1.3本论文任务概述 (2) 1.4本论文章节安排 (3) 2 系统设计与实现 ............................................... - 3 - 2.1需求分析.. (3) 2.1.1 功能需求.............................................. - 3 - 2.1.2 项目计划安排.......................................... - 3 - 2.2系统开发环境. (4) 2.2.1开发环境简介 .......................................... - 4 - 2.2.2 Visual Studio 2008开发环境简介 ....................... - 5 - 2.2.3 SQL Server 2005数据库简介 ............................ - 5 - 2.3相关技术简介. (5) 2.3.1 C#语言简介............................................ - 5 - 2.3.2 https://www.sodocs.net/doc/1512704945.html, 简介.......................................... - 6 - 2.3.3 https://www.sodocs.net/doc/1512704945.html, 简介.......................................... - 6 - 2.3.4 Silverlight技术简介 .................................. - 7 - 2.3.5 WCF简介 .............................................. - 7 - 2.3.6 jQuery库简介 ......................................... - 8 - 2.4系统设计与实现.. (8) 2.4.1 分层架构核心思想...................................... - 8 - 2.4.2 实体介绍.............................................. - 9 - 2.4.3 数据库设计........................................... - 10 - 2.4.4 实体类的设计与实现................................... - 12 - 2.4.5 接口设计............................................. - 12 - 2.4.6 IoC 容器及依赖注入机制的设计......................... - 14 - 2.4.7 数据访问层的实现..................................... - 17 - 2.4.8 业务逻辑层的实现..................................... - 24 - 2.4.9 表示层的实现......................................... - 26 - 2.4.10 视频模块的实现...................................... - 28 - 3 系统功能演示 ................................................ - 30 - 3.1系统功能演示 (30) 3.2小结 (36)

基于Android的日历系统的设计与实现毕业设计(论文)

华北电力大学本科毕业设计(论文) 毕业设计(论文) ` 题目基于Android的日历系统 的设计与实现 二○一四年六月

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

图书管理系统的设计与实现

毕业论文 中文摘要 图书管理系统是智能办公系统(IOA)的重要组成部分,因此,图书管理系统也以方便、快捷的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工作人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。采用SQL Server2005数据库作为后台数据库、Visual C#编程语言作为前台开发工具,通过对数据库技术进行了较深入的学习和应用,主要完成书目检索、读者管理、借阅管理、图书管理、用户维护、系统维护等系统功能。系统运行结果证明,本文所设计的图书管理系统可以满足学生和教师借阅者、图书管理员、图书总管理员三方面的需要,达到了设计要求。 关键词图书管理系统设计信息https://www.sodocs.net/doc/1512704945.html, SQLServer2005

目录 第1章导论 (2) 1.1 系统调研与可行性分析 (1) 1.1.1 现状调查 (1) 1.1.2 可行性分析 (1) 1.1.3 软件开发计划 (2) 1.1.4 https://www.sodocs.net/doc/1512704945.html,2.0和SQL Server 2005 概述 (2) 第2章系统分析 (5) 2.1 系统功能模块 (5) 2.1.2 模块框架图 (6) 2.2 系统ER图 (7) 第3章系统详细设计 (8) 3.1 开发运行环境 (8) 3.2 数据库设计 (8) 3.3 实现数据库 (9) 第4章主要功能模块设计 (13) 4.1 程序主界面 (13) 4.2 书目检索模块 (13) 4.3 读者管理模块 (20) 4.4 图书管理模块 (24) 第5章系统测试 (34) 结论 (34) 致谢............................................. 错误!未定义书签。参考文献......................................... 错误!未定义书签。

相关主题