- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于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.没有统一的插件管理机制。典型的播放器对于不同的媒体类型会有不同的插件,两个媒体播放器会实现各自不同的
文档评论(0)