前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >直播系统介绍

直播系统介绍

作者头像
职场亮哥
发布2020-10-10 15:43:13
1.9K0
发布2020-10-10 15:43:13
举报
文章被收录于专栏:职场亮哥

演示

本地演示:ffmpeg/obs + livego + mpv

  1. 推流选择ffmpeg或者obs
  2. 流媒体服务直接使用livego
  3. 播放使用mpv

推流截图:

拉流截图:

livego

代码语言:javascript
复制
git clone https://github.com/gwuhaolin/livego.git
go build livego.go  # 编译
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build livego.go  # 编译成linux环境下的可执行文件
./livego

流地址

代码语言:javascript
复制
rtmp推流:rtmp://127.0.0.1:1935/live/taylor
rtmp拉流:rtmp://127.0.0.1:1935/live/taylor
hdl拉流:http://127.0.0.1:7001/live/taylor.flv
hls拉流:http://127.0.0.1:7002/live/taylor.m3u8

如果使用ffmpeg推流

代码语言:javascript
复制
ffmpeg -re -i ~/Documents/Taylor\ Swift\ -\ You\ Belong\ With\ Me.mp4 -c copy -f flv rtmp://localhost:1935/live/taylor

视频流

直播系统组成

直播流协议

RTMP

Rtmp规范1.0:https://suncle.me/2018/03/09/rtmp%E8%A7%84%E8%8C%831-0/

Rtmp规范1.0 en:http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/en/devnet/rtmp/pdf/rtmp_specification_1.0.pdf

  1. RTMP协议是应用层协议,基于下层的传输层协议TCP
  2. 要建立一个有效的RTMP Connection链接,首先要握手。但是实际使用过程中对握手数据校验不严格
  3. Adobe公司
  4. 低延迟,内容延迟可以低于3秒
  5. 需要编解码
  6. 几乎所有的稳定推流协议都是RTMP

HDL

HDL协议中封装格式使用的是FLV,HDL又叫做HTTP-FLV

  1. 基于HTTP
  2. 低延迟,内容延迟可以低于3秒
  3. 需要编解码

HLS

Http Live Streaming。

  1. 苹果公司
  2. 基于HTTP
  3. HTML5可以直接播放,不需要编解码,需要在服务端切片,有Stream Segmenter的概念
  4. 格式:
    1. m3u8:索引文件,以m3u8为后缀。用文本方式对媒体文件进行描述,由一系列标签组成
    2. ts:传输流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。
  5. 延迟较高,一般在10秒左右

使用情况

对于正常的直播场景,多数都是推流使用Rtmp协议,拉流使用HLS协议

参考:

  1. SRS的C++版本:https://github.com/ossrs/srs
  2. SRS的Golang版本:https://github.com/gwuhaolin/livego
  3. 云直播系统架构与实施:https://blog.csdn.net/qiansg123/article/details/80124296
  4. UCloud:http://blog.ucloud.cn/archives/699
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 演示
    • livego
      • 流地址
      • 视频流
      • 直播系统组成
      • 直播流协议
        • RTMP
          • HDL
            • HLS
              • 使用情况
              相关产品与服务
              云直播
              云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档