腾讯云直播开发日记(三) 聊天室-直播转码-连麦混流

腾讯云直播开发日记(三)

直播的时候,用户还是需要和主播互动的,我们当前的互动就只有刷礼物,那没钱说礼物怎么搞? 不得让他们吹水? 所以我们需要做一个聊天室, 这个话自己也能做, 系统上线迫在眉睫,工作刻不容缓,所以我们一致决定使用最强能力

因为我们是先有的社交后有的直播, 所以直播和社交的并不是同一个厂商, 我们的IM相关是网易的, 但是开发思路都一样, 也给大家说一下.

IM应用场景介绍

因为就是tcp长连接, 所以基本功能大家都能想象出来, 例如常见的: 加好友, 群聊, 点对点聊天等等, 根据这些我们再进行相关扩展

单聊

点对点聊天,支持的消息类型包括文字、图片、语音、视频、地理位置、文件、通知、提示、智能对话机器人、自定义消息。同时提供离线消息、漫游消息、多端同步、云端历史记录、消息推送能力。像这个还是比较有意思的

群聊

建立一个群, 群里有不同角色, 大家一顿瞎聊, 查看群成员然后交友

聊天室

聊天室是一种比群组组织更加松散的形态,用户可以随意进出聊天室,一般来说也没有太固定的组织形态。典型的应用场景例如娱乐直播、教育直播内的多人聊天。 我们的直播 看来就需要这个了

直播接入聊天室

聊天室肯定要是需要标识符的, 我们需要将直播间和聊天室关联, 那么 进入直播间 = 进入聊天室 创建直播间 = 创建聊天室 关闭直播间 = 关闭聊天室 直播间聊天 = 聊天室聊天

我们可以在live_room增加一个im_room_id, 这样的话就可以完成吹水功能, 流程和大家简述一下:

一个直播间可以对应一个聊天室群,把聊天室和直播间绑定,主播开播之后,视频推流开始,同时IM接入,主播就是这个聊天室群的群主(或者管理员),可以禁言所有用户,也可以全体禁言,同时直播间中的所有交互,都可以使用IM来做交互,比如直播间水友聊天、用户进入直播间、用户在直播间购买了某些商品等等,都可以通过前后端配合定义各种消息类型(json格式的等等),如果是普通的直播间聊天,那么直接前端给IM服务发消息,不用经过我们自己的app,减少交互带来的服务器压力,客户端收到消息直接显示为弹幕。但是比如某用户进入直播间这种,就可以通过服务端给IM服务发一条消息,这个消息的内容就是和前端定好的消息类型,比如消息是json格式,其中有个type表示这个消息是干嘛用的,比如某用户进入直播间、某用户在直播间购买了某个商品、某用户关注了直播间等等。这样基本上直播就正常使用了,视频活动和聊天功能都得到解决。

再说一个场景: 例如斗鱼直播和虎牙直播, 冲的越多就对应等级越高, 进来还有出场动画, 那这个我们能不能利用我们讲的知识实现了呢? 博主就不细说了, 相信大家都明白了

IM基本就这么些, 看看文档结合业务开发应该是比较轻松的

直播转码

直播转码就是看播端可以调:标清、高清、原画 这种就是转码,就是看播视频的码率问题, 按分钟收费

文档地址:

https://cloud.tencent.com/document/product/267/20385
https://cloud.tencent.com/document/product/267/32834

如果要配置转码,首先进入腾讯云直播控制台,在左边菜单栏进入:功能模版 -> 转码配置 进去之后根据自己需要配置转码模版,模板名称 配置成简写的英文,方便在拉流地址后面拼接,配置好模版之后,点击云直播控制台的:域名管理`` 选择你们的拉流域名,点进去之后,在上面有个:模版配置点击去在右上角点击编辑,在弹出的窗口中选择你配置的转码模版并进行配置,注意这里配置之后会在你的域名里面延时生效

这里配置完成之后,相当于你的腾讯云直播服务里面已经有了你配置的转码模版,然后在你生成拉流地址的时候,把上面配置的 模板名称 拼接到拉流地址后面,拼接方式为:播放地址_转码模板名称
比如你配置了一个高清模板,模版名称为:hd
原来的播放链接是:http://playxxx.com/live/123456.flv
转码后的播放链接是:http://playxxx.com/live/123456_hd.flv

这样基本就完成了看播转码

连麦\混流

我们经常看直播就会发现, 主播是可以和主播进行视频互动, 这个操作我们就叫做混流.

文档

如何实现连麦:https://cloud.tencent.com/document/product/267/8108
云端混流:https://cloud.tencent.com/document/product/267/8832
连麦混流方案:https://github.com/tencentyun/qcloud-documents/blob/master/product/%E8%A7%86%E9%A2%91%E6%9C%8D%E5%8A%A1/%E7%A7%BB%E5%8A%A8%E7%9B%B4%E6%92%AD/to-del/%E8%BF%9E%E9%BA%A6-%E5%8D%87%E7%BA%A7%E6%96%B9%E6%A1%88(Android).md

如何实现多路混流

选择连麦方案

这个图应该很明确的说明了连麦混流的2个方式,混流其实就是把两个推流的画面混在一起,生成一个叠加的画面,然后用户就可以同时看到两个主播的直播, 需要购买连麦包

连麦
  • 客户端混流

支持的样式灵活,可以平滑的处理连麦画面切换, 需要获取两个推流地址, 然后操作, 服务端的话可以给客户端返回需要混流的流地址, 跟服务端没啥大关系

  • 服务端混流

服务端混流,其实就是拿到连麦的两个人的推流流id,然后调用混流的Http接口,腾讯云会把你传过去的参数解析,然后把两个流混成一个流,混好之后的视频流会输出到你指定的流的输出流上面,就实现了服务端混流。

我们选择了客户端混流, 客户端混流灵活, 对连麦异常断开处理比较友好, 博主只是个后端菜狗, 所以就没法描述更多客户端细节了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/54119.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直播推流拉流概念介绍

先上图 推流,指的是把采集阶段封包好的内容传输到服务器的过程。介绍一下目前有主流的推送协议,以及各自的优缺点。 RTMP RTMP是Real Time Messaging Protocol(实时消息传输协议)的缩写,是Adobe公司为Flash/AIR平台和…

做直播拉流 , 准备的一些资料,亲测有效

知识性的内容 比较详细的说了说推流的过程 : https://www.jianshu.com/p/447df915984e 推流拉流的:https://www.jianshu.com/p/e516a5b31480 对比 hls 和 rtmp的:http://www.samirchen.com/ios-rtmp-vs-hls/ 直播原理:https:/…

使用软件实现直播推流

rtmp媒体服务器:这里使用srs :https://github.com/ossrs/srs 首先clone到本地,进入到trunk目录: git clone https://github.com/ossrs/srs.git cd srs/trunk ./configure 最后执行:make 执行成功后,就…

直播平台入门到精通-推流拉流

推流:将直播内容推送至服务器的过程 拉流:为服务器已有直播内容,用指定地址进行拉取的过程 推流与拉流示意图 推流码: RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。 一种设计用…

玩转引流新思路——小程序直播

前言: 说到直播相信大家对它都不陌生,作为近几年的热门娱乐模式,逐渐渗透到现在的各行各业,它能够更全面地传递商品信息,可以通过聚集的人气去营造团购氛围,能够去打造用户的应用场景,增强粉丝…

Python实现推流直播

Python实现推流直播 首先给出展示结果,大体就是检测工业板子是否出现。采取检测的方法比较简单,用的OpenCV的模板检测。 大体思路 opencv读取视频将视频分割为帧对每一帧进行处理(opencv模板匹配)在将此帧写入pipe管道利用ffmpeg进行推流直播 中间遇…

直播-拉流和推流概述

拉流(播放) 根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据; 解析二进制数据,从中找到相关流信息;根据不同的封装格式(如FLV、TS)解…

网红直播辅助推流设备(可同时多平台推流直播)

1. 多平台推流需求 许多刚入行的小主播,不知道哪个平台适合自己,也不知道哪个平台的流量最好,因此都很希望能同时在多个平台尝试,鸡蛋分开放到多个篮子是最安全的。这就催生了多平台推流的需求。 2. 软件方案 在百度上搜索多平…

微信直播如何引流获客?

微信作为国内最大的社交平台,拥有巨大的流量,很多商家因此想通过微信直播进行引流获客。但是对于不同的行业,不同的领域的商家来说,直播引流获客的方式也不同,如创客匠人平台打通微信直播渠道,通过多种工具…

H5直播之从推流服务搭建到视频直播

最近视频直播比较火,发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP,移动 WEB 端目前以 HLS 为主,PC端则以 RTMP 为主实时性较好,接下来将围绕这两种视频流协议来展开H5直播主题分享,下面通过本文给大家分享HTML5视…

chatgpt赋能python:Python中连接函数的使用

Python中连接函数的使用 在Python编程中,连接函数是一个非常重要的部分。连接函数主要是用来连接字符串和序列。它可以把多个字符串或序列合并成一个字符串或序列。本篇文章将介绍Python中连接函数的基本用法。 连接字符串 使用加号()可以…

chatgpt赋能python:Python内连接介绍

Python内连接介绍 Python是一种高级编程语言,因其简单易懂、易于学习、高效易用而备受欢迎。内连接是Python编程中的一个重要概念,其可以用于连接两个或更多数据集,极大地方便了数据的处理和分析。 Python内连接是指通过相同的列将两个或更…

chatgpt赋能python:Python连接Hive:深度剖析

Python连接Hive:深度剖析 简介 近年来,数据分析和处理在企业中扮演着越来越重要的角色。因此,数据仓库系统(如Hive)的需求也越来越迫切。对于数据分析工程师和开发人员而言,Hive提供了一种基于Hadoop的SQ…

chatgpt赋能python:Python如何连接数据库?

Python如何连接数据库? Python作为一种高级编程语言,已经被广泛应用于数据科学和Web开发。连接数据库是Python的一项重要功能,可以使我们的代码访问各种数据源来收集、分析和存储数据。在这篇文章中,我们将介绍Python如何连接各种…

【VMware workstation】虚拟机/主机互相ping不通的问题排查

环境:主机 Windows10 VMware workstation pro; 虚拟机 Windows XP 参考:VMware虚拟机和主机互相ping不通排查以及解决 workstation下载:感谢原作者!截止到目前是可用的 问题描述 虚拟机无法上网,主机与虚拟机互相pi…

免费主机 虚拟主机 香港虚拟主机

免费主机 虚拟主机 香港虚拟主机http://zhuji.zzhinan.com/

虚拟呼叫中心运营管理平台压力测试

今次将以实际的案例来说明,asterisk 的并发量,通过对比发现asterisk 1.8 性能比asterisk1.4 版本高了很多。 普通4线程的CPU,2G 内存,Asterisk 1.8 运行100路并发,系统负载最大负载也只有到1,但是Asterisk …

host-only模式,主机能ping通虚拟机,虚拟机无法ping通主机解决办法

一、问题描述 今天配环境发现VMware下的虚拟机处于host-only模式时:主机能ping通虚拟机,虚拟机无法ping通主机。 二、解决办法 1、打开控制面板—->Windows防火墙——>允许应用或功能xxx 2.勾选“文件和打印机共享” 然后点确定。

为什么VM虚拟机ping得通主机,但主机ping不通虚拟机?

云计算这门课程要搭建hadoop集群环境,我就按着老师得要求,在我win 10里的VMware中安装了Ubuntu。 确认安装Hadoop,然后两台机子还要互ping。之前的步骤顺风顺水,到这一步就出现问题了。我主机ping不通虚拟机,但是Ubun…

VMware 主机与虚拟机ping不通问题

VMnet1:是host-only,也就是说,选择用VMnet1就相当于VMware提供了一台虚拟机,仅虚拟机和真实系统连接,虚拟机可用与真实系统共享文件,但是虚拟机无法访问外网 VMnet8:是网络地址转换&#xff08…