推流端

推流端一般使用的软件是OBS推流工具。这个工具就不多赘述了,用得实在很广泛。

当然了,对于开发者而言,肯定需要的是FFmpeg 和 opencv了,FFmpeg是做音视频编码推流,opencv当然是用来实现美颜。

流媒体服务

流媒体服务就是实时视频的中转站。

流媒体服务一般而言:nginx,srs,red5等等,这个系列的后续教程会主要涉及nginx和srs。

不论是定制开发还是购买直播源码,功能的实现始终都是重点。直播源码虽然本身具备了一定的直播平台功能,但是很多运营级的营销功能还是需要单独进行开发的。

若想实现此开源流媒体服务器,我们需要考虑诸多关键约束和能力。

首先就是该平台需要具有一定伸缩性,也就是足够的弹性。互联网业务可以从局部扩展到很大的领域,如果我们使用开源方案则需要清晰意识到如果业务规模变大之后,现有资源与经验能否支撑起如此大规模的服务运行,这需要很多开发者的维护与云厂商的支持。如果没有开源平台和云厂商的支持,那么我们只能自主搭建平台并部署服务器。对于很多企业来说,他们不可能有能力和资源开展这么多业务,所以开源方案至关重要。

开源的前提是必须要有云计算的支持,现在能看到的CDN,包括阿里云和腾讯云等其实都支持RTMP、FLV、HLS,并且现在也开始支持WebRTC,在此基础上扩充生成了诸多商业落地应用,具备大规模应用的能力。我们自己基于开源方案搭建平台并将其对接到CDN上,即可妥善解决弹性问题。如果没有云服务的加持,开源平台的价值也无从谈起。

低延迟是我们需要注意的第二点。现在视频发展的一大趋势是低延迟,例如TCP类的协议其延迟可达3~5秒,这不仅仅是TCP协议本身所致。而像HLS切片、播放器延迟、编码延迟等都可能会提高延迟至8~10秒甚至更多。WebRTC通讯场景延迟一般小于一秒甚至可达400毫秒。常见的语音沟通场景延迟高于400毫秒就需要人工对两个人的讲话进行同步。

第三点是搭建的服务平台需要具备较为出色的易用性。如Red5、NGINX-RTMP、CRTMP、Wowza、AMS、Helix等。还有一项关键是协议之间的互通,一个业务可能需要基于多个协议,打通其中的隔阂至关重要。若想快速部署该方案,以上三点至关重要。

(1)我们的实时音视频中的核心技术之一是webrtc,实时音视频应用的爆发,也使得webrtc(web real-time communication,网页实时通信技术,技术成为了人们关注的焦点。(2)WebRTC,是一个支持网页浏览器进行实时语音对话或视频对话的API,我们的实时音视频主打的就是“低延时通话”

(3)您指的视频流是指视频数据的传输,例如,它能够被作为一个稳定的和连续的流通过网络处理。您想表达的是“直播”类产品吧,直播产品与实时音视频的可见区别是延时高

Logo

音视频技术社区,一个全球开发者共同探讨、分享、学习音视频技术的平台,加入我们,与全球开发者一起创造更加优秀的音视频产品!

更多推荐