好多开发者,在自研或者选择市面上的播放器的时候,除了常规的播放功能,还有不少点值得关注,如延迟、资源占用、网络异常处理、多实例支持、长时间运行稳定性等。如下是咱们开发直播播放器过程当中,考虑的部分关键因素(以Windows平台RTSP直播播放为例,如需下载demo源码,能够到 Github 下载):html
1. 低延迟:大多数RTSP的播放都面向直播场景,因此,若是延迟过大,严重影响体验,因此,低延迟是衡量一个好的RTSP播放器很是重要的指标,目前大牛直播SDK的RTSP直播播放延迟比开源播放器更优异,并且长时间运行下,不会形成延迟累积;git
2. 音视频同步处理:有些播放器为了追求低延迟,甚至不作音视频同步,拿到audio video直接播放,致使a/v不一样步,还有就是时间戳乱跳等各类问题,大牛直播SDK提供的播放器,具有好的时间戳同步和异常时间戳矫正机制;github
3. 支持多实例:大牛直播SDK提供的播放器支持同时播放多路音视频数据,好比4-8-9窗口,大多开源播放器对多实例支持不太友好;算法
4. 支持buffer time设置:在一些有网络抖动的场景,播放器须要支持buffer time设置,通常来讲,以毫秒计,开源播放器对此支持不够友好;服务器
5. TCP/UDP模式设定、自动切换:考虑到好多服务器仅支持TCP或UDP模式,一个好的RTSP播放器须要支持TCP/UDP模式设置,如连接不支持TCP或UDP,大牛直播SDK可自动切换,,开源播放器不具有自动切换TCP/UDP能力;网络
6. 实时静音:好比,多窗口播放RTSP流,若是每一个audio都播放出来,体验很是很差,因此实时静音功能很是必要,开源播放器不具有实时静音功能;ide
7. 视频view旋转:好多摄像头因为安装限制,致使图像倒置,因此一个好的RTSP播放器应该支持如视频view实时旋转(0° 90° 180° 270°)、水平反转、垂直反转,开源播放器不具有此功能;性能
8. 支持解码后audio/video数据输出:大牛直播SDK接触到好多开发者,但愿能在播放的同时,获取到YUV或RGB数据,进行人脸匹配等算法分析,开源播放器不具有此功能;设计
9. 实时快照:感兴趣或重要的画面,实时截取下来很是必要,通常播放器不具有快照能力,开源播放器不具有此功能;视频
10. 网络抖动处理(如断网重连):稳定的网络处理机制、支持如断网重连等,开源播放器对网络异常处理支持较差;
11. 长期运行稳定性:不一样于市面上的开源播放器,大牛直播SDK提供的Windows平台RTSP直播播放SDK适用于数天长时间运行,开源播放器对长时间运行稳定性支持较差;
12. log信息记录:总体流程机制记录到LOG文件,确保出问题时,有据可依,开源播放器几无log记录。
13. 实时下载速度反馈:大牛直播SDK提供音视频流实时下载回调,并可设置回调时间间隔,确保实时下载速度反馈,以此来监听网络状态,开源播放器不具有此能力;
14. 异常状态处理、Event状态回调:如播放的过程当中,断网、网络抖动、等各类场景,大牛直播SDK提供的播放器可实时回调相关状态,确保上层模块感知处理,开源播放器对此支持很差;
15. 关键帧/全帧播放实时切换:特别是播放多路画面的时候,若是路数过多,所有解码、绘制,系统资源占用会加大,若是能灵活的处理,能够随时只播放关键帧,全帧播放切换,对系统性能要求大幅下降。
总的来讲,不管是基于开源播放器二次开发,仍是全自研,一个好的RTMP播放器或RTSP播放器,设计的时候,更多考虑的应该是如何作的更灵活、稳定,单纯的几个接口,很难知足通用化的产品诉求。