查看原文
其他

直播流测试解密

转转QA 转转QA 2022-11-09

作者|伊星宇

什么是直播

一句话:服务端推流,客户端拉流,两者结合,变成直播

实现流程

第1步:通过摄像头,话筒采集主播的视频和音频信息;

第2步:本地通过代码,根据房间号,生成推流地址;

第3步:本地OBS直播软件,将音频和视频封包,通过推流地址传递给腾讯云媒体服务库;

第4步:观众进入直播间,前端获取房间号,根据房间号去平台server端获取播流地址;

第5步:获取到播流地址后,前端调用腾讯云接口,获取实时直播流信息;

第6步:观众可以看到直播画面了。

推流

推流也就是英语中的publish/push,或者up streaming。这个指的是主播端把本地采集的语音视频流推送到媒体服务器。

1、直播码

也叫房间号,推荐用随机数字或者用户ID,注意一个合法的直播码需要拼接BIZID前缀
2、txTime

何时该URL会过期,格式是十六进制的UNIX时间戳,一般会将txTime设置为当前时间24小时后过期

3、txSecret

防盗链签名,防止攻击者伪造您的后台生成推流URL

由上面的三部分组成的地址,就符合腾讯云标准URL,就可以实现推流。

视频协议详解

1、RTMP协议

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播产品都采用了这个协议

2、WebRTC协议

WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准

3、UDP协议

有些直播应用会使用UDP做为底层协议开发自己的私有协议,因为UDP在弱网环境下的优势通过一些定制化的调优可以达到比较好的弱网优化效果

如何获取推流地址

OBS

OBS(Open Broadcaster Software)是一个免费的开源的视频录制和视频实时流软件。其有多种功能并广泛使用在视频采集,直播等领域。

OBS开播流程

1、设定直播核心参数(括号内为经典版):

  • 输出-视频比特率(编码-最大比特率):1500~3000

  • 视频-输出分辨率(影像-压缩分辨率):1280*720(720p)

  • 视频-常见FPS值(影像-FPS):30

2、布置画面:

添加内容——OBS主界面【来源】框内部,“鼠标右键”可以添加来源,主要使用游戏捕获(游戏源)、窗口捕获(窗口源)、视频捕捉设备、图像和文本。

游戏捕获(游戏源)主流游戏注意事项:

(1)英雄联盟——进入王者峡谷后再捕捉,不要捕捉游戏大厅,他俩是两个程序;

(2)Steam和TX游戏——勾上“反作弊兼容模式”;

(3)手游投屏或模拟器——使用游戏捕获黑屏时可以尝试使用窗口捕获。

  • 画面位置调整——选中某个“来源”,可在预览窗口中拖动上下左右位置。

  • 画面前后顺序——右键某个“来源”,可以通过排序-上移/下移来调整来源的前后位置,防止遮盖。

3、填写推流码(直播码):

什么是推流码(直播码)?这是直播平台提供给主播的独立密码,每个主播都不同,正是不同的密码才能把你的直播内容对应到你的直播间内。

以下将介绍获取后如何填入OBS中。

OBS Studio: 设置-流-流类型(自定义)-填入URL和流名称

4、OBS 经典版: 

设定-广播设定-模式(直播流)/串流服务(Custom)-填入FMS URL和串码流

注意:URL以rtmp://开头;之所以把填入推流码放置在最后一步,是因为不少平台推流码更新极为频繁,过早录入后可能会失效,如果推流失败,可以刷新重填。

5、开始直播:

OBS Studio:主界面“开始推流”

注意事项

  1. 直播与双开游戏无异,请确保电脑性能充足

  2. 直播需要占用上传带宽速度,请确保2Mbps的上传速度

  3. 推流码请前往各自直播平台后台获取,每次直播前刷新一条

拉流

拉流指服务器已有直播内容,用指定地址进行拉取的过程。

往期精彩回顾

转转交易系统基于动态代理的测试框架设计

欢乐送小程序自动化探索实践

Beetle双活实践

人人都谈用例管理与持续集成

生成可视化数据构造工具,我只用了5分钟

数据驱动过程改进

论测试方法带来的成就感

日志插桩工具快速搞定接口测试

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存