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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    06 is和==的区别 encode()编码 decode()解码
    05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用
    03 编码 int ,bool,str的常用操作 主要讲str
    01 基本数据类型 变量 if语句
    04 列表的增删改查 常用方法 元祖 range
    02 while循环 格式化输出 运算符
    多校2 Harmonious Army hdu6598 网络流
    P3159 [CQOI2012]交换棋子 网络流
    P2172 [国家集训队]部落战争 最大流
    P2402 奶牛隐藏 网络流
  • 原文地址:https://www.cnblogs.com/xdao/p/mediastream_01.html
Copyright © 2011-2022 走看看