12

golang实现直播和点播功能

 2 years ago
source link: https://studygolang.com/articles/31635?fr=sidebar
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

golang实现直播和点播功能

也许会了 · 2020-11-17 19:32:42 · 6311 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2020-11-17 19:32:42 的文章,其中的信息可能已经有所发展或是发生改变。

1.概述

      刚开始做直播的时候,还是有些懵逼的,毕竟什么推拉流,什么格式协议完全不懂的,还有第三方的接口也是层出不穷,其实简单的说一下,如图(腾讯直播Api里面盗取的)

0bbc85321806051b1055b707831161ff.png

其实所谓的推流就是主播的客户把我们要的播放内容按特定的流程存放于服务器,当然这里面展示的是腾讯云,完后经过通讯云的转码再让观众去观看(拉取),建议不是很明确基础的小伙伴去了解一下,理解起来还是很方便的.腾讯云传送门

而我们今天使用的不是腾讯,而是用golang写好的开源项目livego,livego传送门

2.livego

       说实话,文档挺少的,估计是作者工作忙吧,我这里也是简单的使用,不过要提一个小小的bug,估计是go版本的问题,在go1.10中,有一处错误,返回的是2个数值,但是那里只写了一个(具体哪里我也记不清楚了"")

 剩下就直接开干,搭建好环境以后,启动服务:执行livego二进制文件启动 livego 服务就可以了

3.OBS

这个是直播标配吧,流程我就不说了,我就说我遇到的坑,如图:

da439fec59191b076a115f7e02ca6afa.png

当我设置推流的时候,确实不知道流名称是什么,查了半天以及试验的好久才明白,如果说你得 连接地址是rtmp://106.12.5.245:1935/live/push,而在livego中的live.cfg又是这样的:

14c7e5d6030cd0e5295efb3cb137ffd2.png

里面appname的live是要和rtmp://106.12.5.245:1935/live中的live相同的,假如说我appname的值是livego,那么我的推送地址必须得是:rtmp://106.12.5.245:1935/livego,而流名称是随便填写的,只要不为空就行,比如我这里面填写的是push,那么接下来我拉取的页面就是:

rtmp://106.12.5.245:1935/live/push

http://106.12.5.245:7001/live/push.flv

http://106.12.5.245:7002/live/push.m3u8

本文来自php中文网的golang教程栏目:https://www.php.cn/be/go/


有疑问加站长微信联系(非本文作者)

280

本文来自:简书

感谢作者:也许会了

查看原文:golang实现直播和点播功能

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK