RTSP播放器开发过程中需要考虑哪些关键因素

简介: 好多开发者,在自研或者选择市面上的播放器的时候,除了常规的播放功能,还有很多点值得关注,如延迟、资源占用、网络异常处理、多实例支持、长时间运行稳定性等。以下是我们开发直播播放器过程中,考虑的部分关键因素(以Windows平台RTSP直播播放为例,如需下载demo源码,可以到 Github 下载):

好多开发者,在自研或者选择市面上的播放器的时候,除了常规的播放功能,还有很多点值得关注,如延迟、资源占用、网络异常处理、多实例支持、长时间运行稳定性等。以下是我们开发直播播放器过程中,考虑的部分关键因素(以Windows平台RTSP直播播放为例,如需下载demo源码,可以到 Github 下载):


1. 低延迟:大多数RTSP的播放都面向直播场景,所以,如果延迟过大,严重影响体验,所以,低延迟是衡量一个好的RTSP播放器非常重要的指标,目前大牛直播SDK的RTSP直播播放延迟比开源播放器更优异,而且长时间运行下,不会造成延迟累积;


2. 音视频同步处理:有些播放器为了追求低延迟,甚至不做音视频同步,拿到audio video直接播放,导致a/v不同步,还有就是时间戳乱跳等各种问题,大牛直播SDK提供的播放器,具备好的时间戳同步和异常时间戳矫正机制;


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都播放出来,体验非常不好,所以实时静音功能非常必要,开源播放器不具备实时静音功能;


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播放器,设计的时候,更多考虑的应该是如何做的更灵活、稳定,单纯的几个接口,很难满足通用化的产品诉求。


相关文章
|
Linux Android开发 编解码
VLC播放RTSP视频延迟问题
之前写过一篇关于在Linux平台上编译Android平台上VLC播放器源代码的文章,vlc这款播放器非常优秀而且是开源的,它的核心是开源视频编解码库ffmpeg。而且这款播放器还支持RTSP协议,这个主要是用开源的live555来实现的,live555这个库以后还需要认真研习。
5706 0
|
数据可视化 安全 物联网
通义千问14B开源!内附魔搭最佳实践
9月25日,阿里云开源通义千问140亿参数模型Qwen-14B及其对话模型Qwen-14B-Chat,免费可商用。Qwen-14B在多个权威评测中超越同等规模模型,部分指标甚至接近Llama2-70B。阿里云此前开源的70亿参数模型Qwen-7B等,一个多月下载量破100万,成为开源社区的口碑之作。
|
12月前
|
存储 云安全 安全
云标准:云计算标准
云计算标准涵盖基础设施、服务、安全、应用等多个方面,旨在提高系统的互操作性、可靠性和安全性。标准分为国际、区域、国家、行业和企业五个层次,由中国ISO、TC260、TC28等组织制定,如GB/T 29194-2012、GB/T 31168-2014等,为云计算技术的发展提供支持。
707 5
|
JavaScript Java 测试技术
基于springboot+vue.js的无人超市管理系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的无人超市管理系统附带文章和源代码设计说明文档ppt
259 0
|
Ubuntu Python
python3安装clickhouse_sqlalchemy(greenlet) 失败
如果上述方法仍然无法解决问题,建议查阅相关错误信息和官方文档,以获取更详细的帮助。确保你的Python环境和依赖库都在最新版本,有时问题可能会因为版本不兼容而导致安装失败。
487 0
|
边缘计算 虚拟化 云计算
虚拟化技术:云计算发展的核心驱动力
虚拟化技术:云计算发展的核心驱动力
2103 1
|
机器人 BI
伙伴客户案例|阿里云RPA携手中电金信赋能大型保险企业业务发展(二)
RPA全称机器人流程自动化(Robotic Process Automation),是一种新兴的“数字劳动力”,可以替代或辅助人完成规则明确的重复性劳动,大幅提升业务流程销量,实现企业业务流程的自动化和智能化,从而降本增效。目前,RPA解决方案的应用场景几乎涵盖了所有行业,包括银行、保险、制造、零售、医疗、物流、电子商务甚至政府和公共机构。
伙伴客户案例|阿里云RPA携手中电金信赋能大型保险企业业务发展(二)
|
存储 UED 异构计算
浅析Relaxed Ordering对系统的影响对PCIe系统稳定性的影响
我们介绍了PCIe TLP的排序机制原理,也可以看到Relaxed Ordering也是PCIe一个优化性能的利器。在很多PCIe系统中,PCIe设备也基本是默认打开的Relaxed Ordering这个机制的特性,以保持达到最高的性能。 但是,小编想说下,对Relaxed Ordering的意见是,酌情看是否适合自己的系统,Relaxed Ordering并不是通用的优势。在不适合自己情况,使用Relaxed Ordering将是一场灾难。
|
JavaScript
vue3 axios接口封装
vue3 axios接口封装
392 0
|
Web App开发 Android开发 iOS开发
Charles浏览器抓包配置
Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容,需要打开系统代理设置。 Ie浏览器和360浏览器,默认使用windows代理,可以直接进行抓包
802 0
Charles浏览器抓包配置