- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于树莓派高清视频播放器设计与实现
基于树莓派高清视频播放器设计与实现
【摘 要】树莓派卡片电脑是研究物联网,智能机器人等领域的天然开发板,基于树莓派的高清视频播放终器的设计与实现具有很强的实践参考价值。介绍了树莓派的软硬件研发环境及其发展,给出了基于树莓派设计实现高清视频播放器的软硬件设计及移植开发环境,并基于树莓派移植了高清视频解码模块,实现了基于树莓派的高清(720P及1080P)视频的播放系统。经测试,该系统性能卓越,实用创新性强。
【关键词】树莓派;高清视频;视频播放器;物联网;H264;AAC
0 引言
体积如名片大小的树莓派是基于ARM控制器和Linux系统的单板机电脑,它具有计算机主机的所有功能和接口,如USB,RJ45, SD-IO,HDMI及GPIO接口等,广泛支持基于Linux 的发行版和Windows 10的操作系统[1]。树莓派体积小巧,具有可扩展性强,社区广泛等优势,它是研究物联网,智能机器人等领域的良好的、天然的原型开发平台。树莓派自2012年首版在英国发布至今,深受全球计算机爱好者的热烈研究,来自全球的计算机软硬件爱好者们基于树莓派开发了众多的创新功能,如机器人飞行器,家庭自动化,天气预报站,超级电脑,有声书籍播放器等等[2]。
随着高清视频资源的日益丰富和用户对高清视频播放需求的越来越多,高清视频终端播放器的设计和开发面临着越来越多的需求和挑战, 如:更小巧便携、更强的处理能力等。本文基于B型树莓派,搭建了基于其上的软件移植开发环境,利用其强大的GPU视频处理能力,开发移植了H264高清视频解码模块,成功实现了基于其上的720P和1080P高清视频播放器。
本文共分为三个部分:第一部分高清播放器系统分析与设计,介绍了树莓派的软硬件开发环境及其演进,及基于树莓派的高清视频播放器系统架构及设计;第二部分详叙了本系统高清音视频解码模块在树莓派环境中的移植;最后总结了本系统的性能测试数据。
1 高清播放器系统设计
1.1 树莓派硬件开发环境及演进
2012年英国树莓派基金会宣布树莓派平板电脑正式发布,第一代树莓派分为A型和B型两款,二者硬件配置略有不同,主要体现在B型有512MB内存而A型有512MB内存。2015年2月,树莓派基金会宣布推出二代树莓派卡片电脑B型,在硬件配置上又进一步升级,比如CPU由700MHz的单核心升级到900MHz的四核心,内存由512MB升级到1GB以及支持更多的外设扩展接口等。
1.2 树莓派软件开发环境及演进
第一代树莓派基于Linux系统,典型的如Raspbian,ARCH Linux ARM等。随着树莓派社区的壮大, 树莓派已被越来越多的操作系统支持。据2015年2月报告显示,Windows 10 和 Android平台已证实支持树莓派,其它典型的如FreeBSD,WebOS,Debian Linux等操作系统均已支持树莓派。完整的支持树莓派的操作系统列表参见[3]。
树莓派基于ARM系列CPU系统,应用软件可移植环境强,GNU/Linux工具链已经较好的支持树莓派系统软件开发移植。成熟的支持树莓派开发的编程语言有:C及C++,Python,Java,Golang等语言。典型的集成开发环境有KDevelop, Bluej IDE, Eclipse及Visual Studio等。
基于树莓派的高清视频播放器软件开发环境如下:
1)操作系统: Raspbian OS
2)编译及调试器: GCC, G++及GDB
3)集成开发环境: Eclipse IDE for C/C++
1.3 树莓派高清视频播放器系统设计
基于树莓派的高清视频播放器系统主要设计为三个模块: 高清音视频数据输入模块, 音视频数据解码模块及音视频输出渲染模块。系统架构逻辑模块设计如图1所示。
音视频数据输入模块(I)-典型的音视频数据支持H264编码视频数据及FAAC编码音频数据, 数据封装格式支持mp4及MPEG Transport Stream (TS)格式[4];数据源读取可支持本地MP4封装格式,及支持从网络端读取TS封装格式;输入模块(I)与OMXPlayer播放器模块(P)间采用生产者-消费者模型,设计并发队列Queue(Q)作为二者之间数据通信模型;视频解码模块(V)与音频解码模块(A)为消费者。功能上数据输入模块解封装音视频数据包,并标记时间戳T,后分别放入并发队列Q。
OMXPlayer播放器模块(P)-基于开源OMXPlayer模型移植,分别采用基于FFmpeg向树莓派移植的高清视频解码模块(V)和基于FAAC向树莓派移植的音频解码模块(A)。功能上播放器模块读取并发队列音视频数据,分别解码后输出
文档评论(0)