直播流程分析

一、了解直播

热门直播产品

映客,斗鱼,熊猫,虎牙,花椒等等

直播效果图


image

1、聊天
私聊、聊天室、点亮、推送、黑名单等;
2、礼物
普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等;
3、直播列表
关注、热门、最新、分类直播用户列表等;
4、自己直播
录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管理员对用户等;
5、房间逻辑
创建房间、进入房间、退出房间、关闭房间、切换房间、房间管理员设置、房间用户列表等;
6、用户逻辑
普通登陆、第三方登陆、注册、搜索、修改个人信息、关注列表、粉丝列表、忘记密码、查看个人信息、收入榜、关注和取关、检索等;
7、观看直播
聊天信息、滚屏弹幕、礼物显示、加载界面等;
8、统计
APP业务统计、第三方统计等;
9、超管
禁播、隐藏、审核等;

二. 一个完整直播app原理

直播原理:把主播录制的视频,推送到服务器,在由服务器分发给观众观看。

直播环节:推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)

三 .一个完整直播app实现流程

1.采集、2.滤镜处理、3.编码、4.推流、5.CDN分发、6.拉流、7.解码、8.播放、9.聊天互动

image

四 一个完整直播app架构

image

直播流程

1.采集
对于采集Android要做机型适配
2、前处理
直播前美颜效果,功耗大的,会导致摄像头掉帧。
3、编码
采用硬编,软编码720P,硬软编码兼容性问题,分辨率,帧率,码率找平衡点
4、传输
自己做不现实,交给CDN服务商吧,假设2W PCU大约每月带宽费用100万左右,因为清晰流畅的720p要1.5mbps左右。CDN只提供了带宽和服务器间传输,发送和接收端的网络连接抖动缓冲还是要自己写的。不想要卡顿,必然要加大缓冲,会导致延迟高,延迟高影响互动性,要做权衡。
5.解码
也肯定要硬解码,目前手机普遍支持硬解了,只是android上还是有兼容性大坑要填。
6.渲染
这个难点不在于绘制,而在于音画同步,目前几个直播做得都不好。
此外音频还有几个坑要填,比如降噪,音频编码器的选择,各种蓝牙耳机,各种播放模式的适配等,如果你想做主播和观众连线聊天,还有个回声消除问题。

拉流流程

1、建立socket
2、握手
3、建立连接,连接App
4、设置window size
5、createStream 建立流
6、play
7、设置chunk ,改chunk值为客户端上传值,拉流可不设置
8、读取流数据

RTMP推流拉流

一、介绍

RTMP 是 Real Time Messaging Protocol (实时消息传输协议) 的首字母缩写。
该协议基于 TCP, 是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。
推流:为将直播内容推送至服务器的过程; 拉流:为服务器已有直播内容,用指定地址进行拉取的过程

RTMP 地址规则: 第一种(比较常见): rtmp://域名或 ip:端口(如没有,则默认是 1935)/应用名/串流名称 第二种(比较少见): rtmp://域名或 ip:端口(如没有,则默认是 1935)/串流名称
实列地址:rtmp://push.test.com/appname/streamname
等同于:rtmp://push.test.com:1935/appname/streamname

常见的 rtmp 地址填写有两种方式: 比如拿 Mshow 的一个推流地址来当示例: rtmp://mcs.rtmp.yy.com/newpublish/1606_1606_1301014348_881_0?transcode=1&secret=e2f5 8f5472df414378744ed5f6400c2e&t=1526459992 第一种:一行填写完,比如 Mshow: 第二种:分成两行填写,比如 OBS、Mshow:
注:分成两行填写是以最右边的斜杠为分隔符来分割为两行的。

二、RTMP 推流失败原因及解决方法:

1、地址填写错误
A、一般常见的错误是填写两行时,分割错误或直接填写成一行; 解决方法:参照上面正确的填写方式。
B、推流地址填写成拉流地址,目前大部分直播平台的推流地址和拉流地址都是不一样的, 极个别是一样的; 解决方法:填写前跟 RTMP 地址商沟通清楚需要填写的是推流地址,而不是拉流地址;
C、填写非 rtmp 的流地址; 解决方法:参照上面正确 RTMP 地址的填写方式进行填写。
D、地址长度被限制,填写内容被截断;
解决方法: 检查填写的地址长度是否和原来地址一摸一样, 部分推流 app 或者软件会提示能 填写多长的 RTMP 地址。
目前 Mshow 的 RTMP 推流地址已经进行了优化,长度一般在 126 左右,满足常见软件 RTMP 地址长度的要求。
2、网络问题
A、推到服务器的媒体流码率超过当前推流所在环境的网络上传带宽; 解决方法: 开播前用 http://www.speedtest.cn/http://www.speedtest.net 测试下当前的网络 带宽,然后再根据情况升级带宽或降低推流码率;
B、电脑使用的 DNS 服务器解析不了推流地址里的域名(编码器推流也类似); 解决方法:使用 ping mcs.rtmp.yy.com 命令,如无法 ping 通,说明 DNS 服务器无法解析,可 网络搜索电脑所在地区的 DNS 服务器 ip,然后填写到电脑中;还可以试试谷歌公开的 DNS 服务器 ip:8.8.8.8,或国内公开的 DNS 服务器 ip: CNNIC:1.2.4.8 和 210.2.4.8 南京信风:114.114.114.114 和 114.114.115.115(公共版),114.114.114.119 和 114.114.115.119(反木马版),114.114.114.110 和 114.114.115.110(校园版或绿色版) 阿里巴巴/中国万网:223.5.5.5 和 223.6.6.6 百度:180.76.76.76 OneDNS:112.124.47.27 和 114.215.126.16 DNS 派:101.226.4.6 和 218.30.118.6(电信),123.125.81.6 和 140.207.198.6(联通)
C、网络运营商限制或路由器限制了某些端口,导致推流失败; 解决方法:win7 以上系统需要在【控制面板->程序和功能->打开或关闭 windows 功能】里打 开 telnet 客户端: 然后在命令行输入:telnet mcs.rtmp.yy.com 1935,如果有提示错误,说明端口被禁用,请联 系网络运营商或设置路由器开放 RTMP 默认端口 1935,或更换无此限制的网络;

3、推流限制
A、流媒体服务器限制指定 ip 才可以推流,需要添加推流 ip 白才可以推流(比较少见, 一般是在 RTMP 地址里附带权限验证是否可推流); 解决方法:Mshow 内置推流地址已经附带权限验证,无 ip 限制;
B、推到服务器的音视频编码格式不被支持,导致服务器拒绝接收; 解决方法:Mshow 支持的 RTMP 流里带的视频编码为 H.264,音频编码为 AAC-LC、AAC-HE v2(EAAC+)、MP3 共 3 种,音频采样率要求为 44100,不支持 48000,需要设置源编码器的音 频采样率为 44100;不支持其他音视频编码格式;

三、RTMP 拉流失败原因及解决方法: 可使用常见支持播放 RTMP 流的播放器进行播放(比如 VLC、PotPlayer 等),如提示无法播放, 要么服务器没有推流,要么网络有问题,可按照下面各种解决方法进行排查:

1、地址填写错误
A、拉流地址为错误地址,不能被正确解析; 解决办法:参加上面正确地址填写格式填写;
B、填写非 rtmp 的流地址; 解决方法:参照上面正确 RTMP 地址的填写方式进行填写。
C、拉流地址填写成推流地址,目前大部分直播平台的推流地址和拉流地址都是不一样的, 极个别是一样的; 解决方法:填写前跟 RTMP 地址商沟通清楚需要填写的是拉流地址,而不是推流地址;
D、拉流地址为内网地址,不能被互联网上拉流服务器识别; 解决方法:Mshow3.0 及以上的新版本已经支持拉内网 RTMP、RTSP 流,旧版本不支持内网 拉流,请确认你使用的 Mshow 版本,如想用此功能,请升级到新版本。
2、网络问题
A、网络运营商或流媒体的服务器出口路由器限制了某些端口,导致拉流失败 (比较少 见); 解决方法:可采样【telnet 服务器 ip 地址 RTMP 端口】方式判断,如有限制,进行相应设 置或解除限制;
B、直播内容的服务器和 Mshow 的拉流服务器的各自网络运营商之间网络不通(比较 少遇到); 解决方法:可以联系 Mshow 官方技术人员和内容商进行沟通确认,Mshow 支持的网络 运营商有电信、联通、移动等;或者更换直播内容的服务器的网络。
C、网络使用高峰期,网络拥塞,导致拉流超时; 解决方法:将直播内容的服务器部署到网络带宽比较充裕、网络速度比较好的机房, Mshow 的拉流服务器都分散处于各个核心机房,带宽充裕,网络速度比较好。
3、拉流限制
A、直播内容的流媒体服务器限制指定 ip 才可以拉流,需要添加拉流 ip 白才可以 拉流;(一般有限制时,商会提前要求加拉流 ip 白) 解决方法:如遇到这种情况,请联系 Mshow 官方客服获取;
B、直播内容的流媒体服务器的音视频编码格式不被拉流服务器支持,导致解码失败; 解决方法:Mshow 支持的 RTMP 流里带的视频编码为 H.264,音频编码为 AAC-LC、AAC-HE v2(EAAC+)、MP3 共 3 种,音频采样率要求为 44100,不支持 48000,需要设置源编码器的音 频采样率为 44100;不支持其他音视频编码格式;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容