文档详情

基于Gstreamer框架的smooth streaming协议的插件开发.doc

发布:2017-01-25约3.32万字共57页下载文档
文本预览下载声明
基于GStreamer的Smooth Streaming插件开发 目录 第一章 绪论 1 1.1 课题研究的意义 1 1.2 国内外研究现状与趋势 2 1.3 课题研究的主要内容 3 第二章 相关背景知识 4 2.1 GStreamer媒体框架概述 4 2.1.1 GStreamer媒体框架基本概念 4 2.1.2 GStreamer的工作原理 4 2.1.3 GStreamer框架中的关键技术 5 2.2 H.264视频编解码技术 9 2.2.1 H.264视频编解码技术简介 9 2.2.2 H.264的分层结构 10 2.3 AAC音频编解码技术 11 2.3.1 AAC音频编码基本概念 11 2.3.2 AAC系统的框架 12 2.3.3 AAC音频文件格式的种类 12 2.4 流媒体服务器 14 第三章 流媒体传输协议 15 3.1 RTP/RTCP传输协议 15 3.1.1 RTP协议的基本概念 16 3.1.2 RTP协议的数据报头格式 17 3.1.3 RTCP协议 18 3.1.4 RTCP数据包格式 18 3.2 HLS传输协议 19 3.2.1 HLS协议组网结构 20 3.2.2 HLS协议实的直播编码器 20 3.2.3 HLS分段生成策略及m3u8索引文件 21 3.3 Smooth Streaming传输协议 22 3.3.1 Smooth Streaming传输协议的概念 22 3.3.2 Smooth Streaming协议的通信机制 22 3.3.3 Smooth Streaming协议的数据结构 25 第四章 基于GStreamer的Smooth Streaming协议的插件开发 27 4.1 socket通信协议设计实现 27 4.1.1 socket的概念 27 4.1.2 socket的分类 27 4.1.3 socket的设计过程 28 4.1.4 非阻塞socket的设计过程 28 4.2 HTTP通信协议设计实现 29 4.2.1 HTTP相关概念 29 4.2.2 HTTP通信协议的特点 29 4.2.3 HTTP的URL格式分析 30 4.2.4 HTTP通信协议设计 30 4.3 环形缓存设计 32 4.3.1 环形缓存的基本结构 33 4.3.2 环形缓存的工作原理 33 4.3.3 环形缓存的设计过程 34 4.4 Smooth Streaming通信协议设计实现 35 4.4.1 Smooth Streaming通信协议设计流程 35 4.4.2 Smooth Streaming通信协议设计过程 36 4.5 基于GStreamer的Smooth Streaming协议的插件设计 38 4.5.1 Smooth Streaming协议的source元件设计 39 4.5.2 Smooth Streaming协议的sink元件设计 41 4.5.3 Avplayer底层接口 44 第五章 测试结果 45 5.1 测试实例设计 45 5.2 实际设计问题点解决方法 46 5.2.1 Avplayer初始化失败 46 5.2.2 实现手动智能切换码率 46 5.3 测试结果仿真图 47 第六章 总结 50 参考文献 51 第一章 绪论 1.1 课题研究的意义 Internet在过去短短的十几年时间里经历了飞跃的发展,无论是在学习、工作还是生活中我们越来越多的利用互联网获取和传输信息。互联网在最初兴起时,由于条件和技术的限制,只是处理一些简单的文本数据,现在随着网络技术和多媒体技术的不断发展以及网络技术和多媒体技术结合应用的不断深入,在互联网上传播图形、图像、音频、视频已经越来越广泛了。 自从1991年由托瓦兹提出Linux的内核原型后,以应用为中心、计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积和功耗严格要求的微型嵌入式系统已经被广泛地应用在各个行业领域中。但是嵌入式系统在多媒体方面的应用远远落后于其他操作系统,主要体现在以下几个方面: 1.没有一套完整的、可用的库。对于那些想在应用程序中嵌入视频剪辑的 Linux 开发人员来说,他们必须要用粗略的 hacks来运行外部的视频播放器,因为没有一套可用的库提供给开发人员来创建可定制的播放器。 2.缺乏统一的媒体库接口。在Linux系统中并没有一套有效的机制可以提供对于音频和视频数据过滤和效果处理,更没有制定在视频或音频数据中添加滤波器或特殊效果的任何规定。因此,针对不同的媒体格式文件,Linux开发人员需要定制不同的媒体库接口,这样给开发工作带来极大的困扰。 3.没有统一的插件管理机制。典型的播放器对于不同的媒体类型会有不同的插件,两个媒体播放器会实现各自不同的
显示全部
相似文档