如何选择适合音频播放器.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何选择适合音频播放器

UCLoud中国云三强: 如何选择适合音视频播放器前言近年来,随着HTML5技术普及、移动设备迅猛增长和流量资费不断下降,视频已成为人们了解世界、获取知识的主要途径之一。现在音视频播放器已随处可见,但这个过程到底如何实现?播放器的原理又是什么?或者是作为生产者,应该依据哪些标准来选择适合自己的播放器?UCloud将基于多年的实践经验,为客户做出相应解答或建议。播放器功能架构首先来看常规播放器的功能架构:(图:常规播放器结构图)应用层:UI/统计/DRM(数字版权保护)/多码率/弹幕/广告等。底层:数据接收模块/解复用模块/音视频解码、滤镜、渲染模块/字幕/应用层结合功能:DRM、多码率/统计等。播放器的功能比较多,本文就不再一一赘述,下面将重点讲解多媒体引擎模块。多媒体引擎作为播放器的核心部分,多媒体引擎主要负责音视频数据的加载、处理和展现。以FFmpeg为例,它的基本运作流程如下图所示:(图:多媒体播放流程图)我们详细了解一下每个环节:1.数据接收(Source)作为数据入口,这里的文件可以通过本地文件(File://协议开头)输入,也可以通过网络协议(如HTTP、RTMP、RTSP等)输入。在找到对应的传输协议之后,FFmpeg会根据协议特性与本机或服务器建立连接并获取到流数据。?2.解复用(Demux)通过对文件的特征码分析,可以找到文件的封装格式,如常见的MP4、FLV、TS、AVI等。根据封装格式的标准对其拆封,可以得到编码的音视频数据,一般称之为“packet”。?3.解码(Decode)解码器初始化时,利用之前源数据分析获得的音视频信息,分别设置对应的音频解码器和视频解码器。目前互联网中比较常见的音频编码方式有AAC(Advanced Audio Coding)、MP3,视频编码方式有H.264、H.265。对packet分别进行解码后,音频解码获得的数据是PCM(Pulse Code Modulation,脉冲编码调制)采样数据,一般称为“sample”。视频解码获得的数据是一幅YUV或RGB图像数据,一般称为“picture”。?4.音视频同步(Synchronizing)音视频解码时是两个独立线程,因此获得的音视频数据是分开的,并无任何关联。理想状态下,音视频按照自己固有频率渲染输出就能达到音视频同步的效果。但是在现实中,断网、弱网、丢帧、缓冲、音视频不同的解码耗时等情况都会妨碍实现同步,很难达到预期效果,所以要保证视频内容和音频内容对得上,必须做音视频同步。?5.音视频渲染(Render)经过音视频同步调整之后,需要把sample和picture分别输送给声卡和显卡,这部分工作建议由成熟的库来完成。常见的音频库有SDL、OpenAL/OpenAL ES、DirectSound、ALSA(Advanced Linux Sound Architecture)、OSS(Open Source System)等;视频库有SDL、OpenGL/OpenGL ES、DirectDraw、FrameBuffer等。?经过以上5个步骤,基本的播放流程就完成了。各平台视频技术概况要实现全平台覆盖的播放器,自然少不了技术支撑。这里主要讨论Web、Android、iOS上的音视频技术,讲述一部分音视频常用方案。一、Web-HTML5技术语言:JavaScript,HTML/CSS使用环境:所有可以支持HTML5 Video标签的终端浏览器(PC Windows/Mac/Linux/Unix、Android、iOS)即可播放视频,目前覆盖率已达95%。(图:Video element覆盖率)相关方案:1.video标签从代码示例来看,HTML5的Video标签非常简单易用,controls= controls 可以使用浏览器默认的播放器UI(不同浏览器UI不一样),如果不对controls赋值,则可以通过CSS和Video消息来实现自定义UI及控制。 2.MSE(Media Source Extensions)Media Source Extensions (MSE) 是一个主流浏览器支持的新Web API,而且是W3C标准,允许JavaScript动态构建 video 和 audio 媒体流。它定义了对象, 允许JavaScript传输媒体流片段到一个HTMLMediaElement。 通过使用MSE,可以动态地修改媒体流而不需要任何插件。这使前端JavaScript可以做更多事情, 比如可以在JavaScript进行转封装、处理,甚至转码,因此像ABR(Adaptive Bitrate)、hls.js、dash.js、

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档