流媒体服务新手入门教程01--什么是流媒体服务及m7s介绍
什么是流媒体服务?
流媒体是指采用流式传输的方式传播多媒体文件。比如现在常见的直播应用抖音、快手以及视频网站,它们的背后都是流媒体服务支撑着。
和播放硬盘上的视频文件不同,流媒体在播放前不会下载整个文件,只是将当前数据发送给客户端。流媒体数据流随时传送随时播放,只是在开始时有些延迟,至于如何减少延迟,我在接下来的文章中会继续分析。
为什么需要流媒体服务?
边下边播
在2000年左右的时候,看电影一般还得下载到本地硬盘,很少有能直接在线用网页播放的,而现在直播应用大放异彩,这里面不仅仅有web服务的进步,还有流媒体服务发展的功劳。
减轻设备端的压力
想一下,那些主播用手机做直播的时候,虽然有很多人同时观看,但是他的手机并不卡,这是什么原因呢?
因为观众并不是直接通过网络观看主播的直播,而是通过了流媒体服务。流媒体服务在主播和观众之间搭建了一条高速公路。
后期处理
比如对视频做分析(包括美颜、AI人脸识别等)、存储、事件等。
所以流媒体服务不仅仅是实时直播,它还是各种后期应用的前提条件,掌握好流媒体开发,更能升职加薪。
常见的开源流媒体服务
市面上常见的比较稳定的开源流媒体服务主要有下面几种
- nginx-rtmp-module 基于nginx,配置简单,功能也比较简单,主要应用于提供hls在线播放,很多盗版视频网站都是基于这个方案
- srs 功能强大,支持http接口和回调,我司项目第一版便是基于此
- zlmediakit 功能强大,同样支持http接口和回调和srs不相上下
- m7s 新兴的流媒体服务功能强大,支持http接口,暂时不支持http回调,但是特别方便二次开发,我司项目第二版便基于m7s
为什么选择m7s
虽然srs和zlmediakit 都提供了http回调接口,但是它们都是采用的C/C++ 方案,不方便二次开发,基于回调能够实现的功能又达不到我们的需求。
m7s采用golang开发,虽然没有提供http回调接口,但是作者一开始就才用了插件的设计,方便用户进行二次开发。另外m7s对外暴露了核心数据结构,可以很方便的获取内部数据,便于业务处理。
这里是m7s官网插件的截图,下一篇,我将分析m7s的内部设计。
另外欢迎大家加入m7s微信群,共同探讨进步
作者:半山
出处:http://www.cnblogs.com/xdao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架