中国工程论文网
代写工程论文
当前位置:工程论文网 > 系统工程论文 > 基于FFmpeg的高清实时直播系统工程设计与实现

基于FFmpeg的高清实时直播系统工程设计与实现

时间:2018-07-01 00:31来源:www.e-lunwen.com 作者:lgg 点击:
本文是一篇系统工程论文,系统工程不同于一般的传统工程学,它所研究的对象不限于特定的工程物质对象,而是任何一种系统。
本文是一篇系统工程论文,系统工程不同于一般的传统工程学,它所研究的对象不限于特定的工程物质对象,而是任何一种系统。它是在现代科学技术基础之上发展起来的一门跨学科的边缘学科。(以上内容来自百度百科)今天为大家推荐一篇系统工程论文,供大家参考。
 
第一章 绪论
 
1.1 课题研究背景
认识世界,是改造世界的基础,而在改造世界过程中,知识经验的积累与信息资源的共享是促进人类社会稳步向前发展的主要途径。在早期的人类社会,知识的传递以语言、文字、绘画、手势等简单形式作为主要载体,其传播范围较窄、内容单一且及时性低下等因素制约社会发展。之后进入现代社会,知识积累的载体与传播平台随着科技的发展而愈发变得丰富。在现代社会中,互联网作为高效、即时、较广传播范围的交互平台,始于 1969 年美国的阿帕网,经过四十多年的高速发展,逐步成为推进经济发展与社会进步的重要力量。而多媒体作为一种丰富的信息表现载体,随着网络技术发展而产生多种变形,流媒体就是其在网络环境下的一种特殊衍生形式,因为拥有优良的网络适应性而越来越受到人们的关注,并在网络应用与社会生活中扮演着举足轻重的角色。如今,网络直播已经发展成为流媒体技术一大重要应用领域,因具有内容丰富、信息获取便捷等诸多优点而成为生活娱乐与工作中不可缺少的一部分。根据外文文献记载,最早的网络直播出现在 1995 年的 7 月 17 日,当时来自苹果计算机公司的 DavidB.Pakeman 与企业家 Michael Dorf 在 7 月 17 日至 7 月 22 日推出了麦金托什纽约音乐节,此活动引来纽约市超过 15 家俱乐部的音频网络直播。1996 年 10 月 31 日,英国摇滚乐队 Caduseus 在英国威尔士,从晚上 11 点到 12 点通过网络播放了他们一小时的音乐会,这是第一个实时流媒体和同步直播视频,全球二十多个国家可以在线观看。国内最早成气候的直播平台是YY直播,可以说是国内网络视频直播行业的奠基者,早在2005年,原来专注于即时网络语音通信的YY语音和专注于陌生人视频社交的9158开始发展 PC 端的直播聊天室,同时,六间房由视频网站转为 PC 端的秀场直播,成为早期直播平台的起步标志。2010 年,YY 直播经过商业转型发展成为虎牙直播,与此同时,受美国 Twitch TV 与 Justin.TV 分离而独立成立直播平台的影响,在随后几年中,国内各种投资纷纷涌入到直播这个行业内,从 2015 年第二季度开始,国内的直播行业驶入了发展的快车道,从 YY 直播、斗鱼直播,发展到映客直播,越来越多的商业巨头涌入到网络直播行业中。截至到 2016 年 5 月,国内直播上线的平台已经超过 130 多家,行业潜在经济规模超过了 520 亿人民币。并且,观看网络直播的国内用户达到了 3.14亿,占全国网民总数的 51.7%,并且这个规模还在持续上涨中。
.........
 
1.2 直播技术发展现状
尽管国内直播行业起步较晚,但是由于网络信息交互的及时性,以及国内巨额的行业投资加持,国内直播系统中的技术发展与国外接近一致。目前较为成熟的直播系统实现通常采用客户端加服务器模式,主要实现流程是由直播软件捕获并生成音视频数据,在对数据进行编码处理后传输到服务器,最后经过服务器推送到用户窗口进行播放。尽管技术逻辑都类似,但不同直播系统采用的音视频编码与流媒体服务器都不尽相同,因此产生较大的实现效果差异。通常,画面质量是最直接的感官体验。直播软件所采集的原始音视频数据的观看质量最好,但是由于原始信号的信息量巨大,对网络传输带宽造成了极大的浪费,因此在对音视频传输前,往往要经过编码压缩处理。在音视频处理技术中,编码技术占据了重要的地位,在相同码率帧率情况下,采用优秀的编码器将会获得更高的视频质量。为了使视频编码统一规范,从 1988 年开始,国际电讯联盟(International TelecommunicationUnion)的视频编码专家组(VCEG)与国际标准化组织(International StandardizationOrganization)的运动图像专家组(MPEG)完成了 H.26x 和 MPEG-x 系列的视频编码标准,用于满足各种不同的应用场景需求[1]。其中 H.26x 标准主要用于实时网络视频通信,侧重于网络传输编码。而 MPEG 标准则主要用于视频的存储、广播、流媒体应用等,扩展性、灵活性较好。我国的音视频编解码技术标准工作于 2002 年 6 月开始,并于 2005年完成了第一个自主知识产权的视频编码校准 AVS(Advanced Vusial System),其压缩效率比 MPEG-2 增加了一倍以上,其编码性能已经基本接近于 H.264[2]。
.......
 
第二章 音视频编码技术与 RTMP 传输协议简介
 
2.1 视频颜色空间介绍
根据颜色的定义得知,其本质是通过人类大脑、眼睛与生活经验对光所产生的一种视觉反应,通俗解释就是,颜色是人通过大脑对光的一种主观感觉。而颜色空间,是基于坐标系统和子空间上对彩色的一种说明表述。因此可以通过三种单色光的混合,来模拟出人眼所能感知到的几乎任何的颜色,这就是三基色原理,而所谓的三原色也便是由人类生理因素造成的。颜色空间有很多种,常见的有 RGB、CMY、YUV 等。其中 CMY 是工业印刷所采用的颜色空间,它与 RGB 相对应,不同的是,RGB 是源于发光源混合相加,而 CMY是依据无源物体对光的吸收与反射进行相减混合。此外,CMY 源自油墨染料的三基色:青(Cyan)、品红(Magenta)和黄(Yellow)的首字母缩写。现如今的 PAL 彩色电视标准中所采用的便是 YUV 颜色空间。其显示原理基于对人眼视觉成像分辨敏感度的研究模型,对图像的色彩差别与亮度差别进行对比分析,结果显示人眼对亮度的敏感度较高,对色彩的敏感度相比而言较低,因此使用 Y 来表示视频图像的亮度信息,通过 U 和 V 表示视频图像的色差信息[7]。对人眼敏感度较高的亮度信息 Y 进行图像细节表示,对敏感度相对较低的色度 U 和 V 进行着色渲染。通常较为常见 YUV 颜色空间格式有 Y:U:V=4:4:4、4:2:2、4:2:0等不同比例。
.......
 
2.2 高清 H.264 视频编码研究
视频编码,是将如 RGB 或 YUV 原始视频像素数据进行压缩工作,在经过编码压缩后视频序列整体的数据量将会被大幅降低,通常情况下,如果一个视频序列在不经过编码压缩而进行存储传输,其占有的数据空间与网络带宽将会非常的大。因此,视频编码标准的制定具有重大的意义。其次,各种视频编码标准的应用面与侧重点各不相同,下表显示目前较为主流的视频编码标准。由表可见,有两种新推出的视频编码方案:VP9 与 HEVC,但是目前两种编码标准由于研发阶段较长,因此还没有达到一定的实用性与普及程度。而且, MPEG 系列视频标准对本地文件存储功能有着良好的支持特性,而 H.26x 系列视频标准则体现出对于网络传输特性的侧重。因此,高清实时网络流媒体直播系统通常选用较为常见的 H.264视频编码标准。
.......
 
第三章 基于 FFmpeg 高清实时直播系统总体设计.....22
3.1 基于 FFmpeg 高清实时直播系统需求分析........22
3.2 系统总体框架设计 .....25
3.3 本章小结....... 30
第四章 高清实时直播软件功能实现.............. 29
4.1 直播软件开发环境搭建............ 29
4.1.1 FFmpeg 编译移植 .............. 29
4.1.2 VS2010 下的快速配置....... 30
4.2 基于 FFmpeg 的音视频数据采集实现 ............... 32
4.3 基于缓冲策略的音视频解码................. 36
4.4 音视频编码实现......... 44
4.5 本章小结....... 47
第五章 高清实时直播服务器搭建与数据传输实现.... 48
5.1 基于 Nginx 流媒体服务器搭建............. 48
5.2 音视频同步与网络传输实现 .................54
5.3 本章小结 .......58
 
第六章 高清实时直播系统测试
 
高清实时直播系统在实现完成之后,需要对各项功能进行测试与评价。并且通过不断的测试,才能更新并且纠正系统在实现上的错误与不完善的地方,系统内部的某些参数和变量也是在不断修改中达到实际效果最佳的数值。因此,本章将会对直播系统的系统功能、网络延时、音视频传输质量等进行系统性的测试。
 
6.1 界面设计与实现
在直播软件主界面中,主要包括直播软件菜单栏、直播画面视频反馈窗口区、输入输出与编码设置窗口区、实时编码速率曲线图展示窗口区与直播音视频属性查看窗口区等。直播软件主界面如图 6.1 所示。系统菜单栏功能,是直播器各项功能的集合。1. 开始直播菜单。是不可弹出菜单,其事件响应函数的功能是根据直播设置菜单内的参数,或者提供默认参数开启直播进程。包括视频采集进程、音频采集进程、音视频编码传输进程、本地文件存储、界面窗口显示等功能。2. 直播控制菜单。弹出后提供两个子菜单,包括暂停直播与结束直播。3. 编码信息菜单。提供各项音视频特征参数,包括分辨率、像素格式、比特率、帧率等关键信息窗口化整合展示功能。4. 直播设置菜单。提供直播进程开始前各项参数的自定义设置功能,通过参数配置,实现对不同计算机软硬件环境以及网络情况的优化调整。5. 文件系统菜单。提供直播媒体数据本地储存功能,包括音频、视频、封装音视频文件,方便用户日后查阅回看。6. 关于菜单。直播软件的版本号显示与软件的说明。
...........
 
结论
 
网络直播技术的发展不仅丰富了人们的文化生活,而且在一些特殊场合有着重要的作用。然而随着直播系统大规模应用,其在实现中的一些不足逐渐显露出来,因此,为了克服现有直播系统中存在的若干问题,本文设计实现了一套高清实时直播系统,在对系统进行测试后表明,在直播画质与音效、直播实时性与客户端的便捷性等方面均有不同程度的提高。论文在此基础上主要进行了以下几方面的研究和工作:
1. 论文首先通过实际使用各种直播系统,并翻阅大量资料,深入了解目前直播系统中存在的一些弊端。再结合这些问题的特点与存在的原因,明确了对现有直播系统提升与改进的方向。
2. 接着对高清实时直播系统实现过程中所采用的关键技术做了研究概述,包括视频颜色空间、高清 H.264 视频编码标准、AAC 高级音频编码原理、FFmpeg 音视频处理技术与 RTMP 流媒体传输协议,之后便提出了高清实时直播系统的总体设计方案。
3. 完成对 FFmpeg 源码的移植编译、裁剪与 VS2010 开发环境下的快速配置工作,同时详细研究了 FFmpeg 对音视频的处理逻辑流程,并根据高清实时直播系统的需求对FFmpeg 处理流程进行优化改造。
4. 对于采集速率过高而引起计算机高负载与缓冲数据溢出等问题,通过加入采集速率控制功能,使音视频观感与系统处理效率达到最优平衡。并且根据人眼对亮度信息较敏感的特性,对视频数据做了 YUV 颜色空间转换。
5. 针对音视频编解码过程中出现的抖动与数据丢失问题,设计实现了音视频解码数据缓冲区。并且利用临界区资源完成了对多线程间的同步工作,同时使用 SDL 技术对视频解码数据进行了反馈显示。
..........
参考文献(略)
 
(责任编辑:gufeng)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
栏目列表
点击提交代写需求
点击提交代写需求
点击提交代写需求
推荐内容