zoukankan      html  css  js  c++  java
  • 流媒体服务新手入门教程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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    《刀塔传奇》
    SSH端口转发
    objective-c与c++的差异
    mysql 远程连接速度慢的解决方案
    maven
    automapper 自动映射 集成asp.net Core2.1
    swagger 集成asp.net Core2.1
    asp.net Core 跨域配置
    处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    SharedPreferences
  • 原文地址:https://www.cnblogs.com/xdao/p/mediastream_01.html
Copyright © 2011-2022 走看看