1877 年,爱迪生发明留声机,用锡箔筒捕捉了第一缕声波。随后,黑胶唱片、磁带录音机、八轨盒式磁带机、卡式磁带、激光唱片(CD)等相继问世。
每一次介质的变革,都带来了音质的提升和便捷性的增强。时光流转,进入 21 世纪,数字音频播放器和流媒体服务的兴起,彻底改变了人们享受音频和视频的方式。
这个时代,播放体验已成为衡量产品质量的关键。影响这一体验的两大核心因素——网络传输质量与播放器性能。播放器是离用户最近的一端,一个优秀的播放器 SDK 对提升播放体验来说事半功倍。
播放器属于音视频闭环中不可或缺的一环,七牛云作为国内领先的一站式场景化智能音视频 APaaS 服务商,在音视频领域拥有多年的技术积累。继推出开源播放器 QPlayer1 后,七牛云启动了 QPlayer2 播放器的自研工作,同时,QPlayer2 播放器也可以和七牛云其他产品进行组合,形成一套开之即用的解决方案,如视频直播/点播方案。
关于 QPlayer2
七牛云 QPlayer2 是一款面向未来的跨平台播放器 SDK,除了基本的播放能力外,还引入目前最前沿的技术能力,同时在用户的接入上,提供了扩展插件,让客户能更便捷的实现播放器上层的相关业务逻辑。除了常规的 iOS/Android/Windows 端 SDK,目前也推出了适配鸿蒙 HarmonyOS NEXT preview 版(注:preview 版为预览版,仅支持部分功能,其他功能将陆续开放)。
QPlayer2 核心能力
QPlayer2 提供了基础的播放能力,包括但不限于:
媒体资源组成形式:一个媒体资源支持多 url,比如一个音频 url 和一个视频 url 组成一个媒体资源,提升拉流速度和解封装速度。
播放协议和视频类型:支持 http/https/rtmp/srt 等多样的播放协议,以及 flv、m3u8、mp4、flac、wav 等多种视频类型。
多种解码方式:除了软解/硬解/自动解码方式外,新增混解方式,提升硬解首帧速度。
变速播放:支持在变速播放时保持音调恒定。
清晰度无缝切换:提供通用的清晰度切换方案,即便在 Gop 未对齐的状况下也能够实现无缝转换。
精准 seek 和关键帧 seek:支持基于时间的精准 seek 操作以及基于关键帧的 seek 功能。
指定起播位置:准许从指定的位置开启播放进程。
起播方式设置:能够选择起播播放或者起播暂停,起播后首帧渲染出来就停止画面。
预加载:预先加载点播视频,增进首帧的体验效果。
SEI 数据回调:所有解码方式都支持。
纯音频/视频播放:支持仅有单音频流或者单视频流的视频播放。
APM 埋点上报:用于整体大盘的性能监测。
截图:支持截图操作并能自动转换为 JPEG 格式,利于展示或存储。
静音:提供针对视频的静音功能,且不影响系统声音。
此外,音频和视频处理环节通过 PerTransformer 和 CanvasRender 模块实现了预处理和渲染的灵活性,能够应对包括色盲模式、VR 视频播放等在内的多种视觉处理需求。
QPlayer2 架构设计
好的架构设计可以让产品的工程更加灵活、可维护、易读。这些特点最终会体现在产品的稳定性、灵活性、易用性上。
QPlayer2 的架构设计注重模块化和可扩展性,采用功能点扩展槽,在拉流、解封装、解码、音频处理、视频渲染等环节能灵活添加新功能。架构中,数据流向清晰,从输入流到渲染输出,每个模块都有明确的职责。例如,解码器可扩展以支持新格式,音频和视频预处理模块允许添加特殊效果。
QPlayer2-core 类集中管理所有功能,简化播放器实例管理,让开发者专注于业务逻辑开发。
QPlayer2 接入成本
QPlayer2 最少仅需 10 行代码即可完成基本的播放器布局和功能实现。同时,QPlayer2 还提供了统一的播放器接口,简化了开发者的学习过程,实现接入成本的优化。
音视频技术的革新从未停止,未来播放器会怎样演进,值得期待。