摘录

雪上霜 · · 2547 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang实现直播和点播功能

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

image

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

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

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

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

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

image

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

                                  ![image](https://upload-images.jianshu.io/upload_images/7898366-cf35e9d408bc0429?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

里面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

另一个

livego

go 实现直播服务

服务器部署

chmod 755 server.sh
./server.sh &(依赖go环境,有些情况需要用vim 打开 set ff=unix 然后:wq)
或者直接执行 ./LiveGoServer (不依赖go环境)

本地部署

直接执行 LiveGoServer.exe

use

采用vue+webpack实现ui
所有在config里
日志在logs里
http://localhost:8080/ (视频直播)
http://localhost:8080/camera (录视频)(由于chrome的安全限制,建议在firefox下打开录视频页面)

使用效果

[图片上传失败...(image-886b05-1589721115424)]

交流使用

交流群:337937322
项目地址


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

本文来自:简书

感谢作者:雪上霜

查看原文:摘录

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

2547 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传