【流媒体测试】推流学习笔记
创始人
2024-06-03 07:36:43
0

流媒体协议RTSP、RTMP
 RTSP+RTP主要用于IPTV,原因是传输数据使用的是UDP,在网络环境比较稳定的情况下,传输效率是比较高的;
 RTMP主要用于互联网音视频传输,它使用的是TCP传输,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。

UDP与TCP比较:
UDP:无连接协议,也称透明协议,也位于传输层。
1) TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。
2) TCP提供可靠的传输(有序,无差错,不丢失,不重复); UDP提供不可靠的传输。
3) TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。
4) TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制和流量控制机制。

在这里插入图片描述

1 推流

推流框架
将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步播放。
在这里插入图片描述

1.1 实时推流
1)队列:音频包和视频包放到同1个队列
需要队列的原因:编码后直接把包推流,网络信号不好的时候,会被阻塞

  • 队列如何设计?
    生产者消费模型、现线程安全

2)如果网络拥塞,比如拥塞2秒
如果2秒没有推送任何数据包,那队列攒了2秒的数据。如果攒积数据太多,drop数据。检测到I帧,停止drop。

3)队列大小控制
积累1秒数据,能不能drop数据,要2秒才考虑去drop数据。

4)延迟:主要队列数据积累
在这里插入图片描述

  • 推流队列
    网络拥塞的时候会积攒数据,网络好的情况队列不会有缓存的。
    在这里插入图片描述
    推流端积攒数据,可以在推流端drop数据,音频做变速,视频drop非I帧
  • 流媒体服务器的缓存队列
    服务器->拉流端 网络不好的时候采集积攒数据,才会导致延迟。网络好的时候快速往拉流端发。
  • 拉流队列
    在这里插入图片描述

问题:拉流2秒信号不好,没有拉到数据,网络恢复后,500ms拿到2秒数据:正常速率播放,延迟1.5秒。
解决方式:改变速率播放(技术难)或drop数据(技术简单)。

5)队列时间统计
push->pop
获取
back_pts front_pts
计算队列里面数据包持续的时间
如果出现回绕怎么办,通过 帧间隔*包数量 去做矫正
ffmpeg接口阻塞的问题

RTMP Darren推流
流媒体服务器:单个tcp通道,音频、视频、控制数据都是同一个通道

拉流:
客户端RTMP
PC web HTTP-FLV webtrc
手机web HLS(延迟比较)
TS TS

1个人推流,多个人拉流
1)某个拉流卡顿是否会阻塞其他人:不会

拉流卡顿,服务器里面队列会被循环覆盖,服务器可以设置拉流大小的。

每个客户端的队列,拷贝的码流是浅拷贝,类似share_ptr智能指针内存引用计数。

2)如果客户端不出现网络卡顿,那服务器不会缓存多少数据,如果出现了卡顿服务器缓存数据不会太少。

卡顿5秒>流媒体缓存5秒>网络恢复后 客户端是很快收到5秒的数据 ->客户端缓存了5秒数据->如果正常速度播放,延迟会有5秒
(1)丢掉一部分数据,比如4秒
(2)变速播放

3)读写数据周期
读取数据的周期
在这里插入图片描述

read:
每次读取1帧数据,读5帧要用户态/内核切换5次
每次读取5帧数据,只需要切换1次

写数据的周期
比如攒积10帧数据再write,可以减少cpu占用率

4)服务器延迟

在这里插入图片描述
(1)读写数据周期
(2)拉流队列的缓存
(3)gop cache queue

检测到最新的I帧就更新gop cache

gop cache开启的情况下,工牌 queue才有数据
比如gop2秒
开启:I P … P P I PP…P I
1)第2个I最理想的情况:指cacheI帧,刚好拉取到I帧
2)最糟糕,刚好错过I帧,等到I帧才有画面(可能要等2秒)
3)如果客户端队列数据超过阈值(最大延迟1秒),缓存队列那就只能最多缓存1秒的数据,变速播放加快数据消耗

2 测试延迟

推流->流媒体服务器转发SRS->拉流
在哪里会产生延迟?
1)推流端、采集数据延迟、编码延迟、推流延迟
(1)采集延迟:8k 2048个采样点 耗时间隔0.256秒=256毫秒(一般是23.3ms)
(2)编码延迟:不要插入b帧,使用zero latency配置
(3)推流:数据就是实时采集的,有数据马上推出去
检测指标
队列里面:音频帧数量、视频数量,能持续播放的时长
码率分析
推流码率—编码码率
1mbps----2mbps
---- 降低码率 1mbps
卡的比较:优先发送音频包

2)流媒体服务器转发

在这里插入图片描述

(1)怎么转发数据
各自有独立的队列,生产者(推流),消费者(拉流)
队列是有大小,比如最大缓存30秒。如果超过30秒的数据,覆盖旧数据。
(2)服务器有可能延迟
socket read读取数据是需要切换用户态/内核态的切换
20ms读取一次数据,200ms读取一次数据,延迟就比20ms读取一次大

3)拉流端
5秒后用户网络恢复正常
200ms内拉取5秒的数据

在这里插入图片描述
在这里插入图片描述
avformat_find_stream_info获取视频流, 查找编码信息,并尝试使用对应解码器去解,检测是否成功。
(1)从buffer读取数据,分析编码,但是对应这部分读取的buffer数据是不扔掉的,读取1秒时长去分析,这个函数被执行了1秒
(2)我们从buffer读取数据,分析编码器,也尝试解码,但是读取来的数据用完就扔掉

av_read frame 获取视频的一帧,获取音频的若干帧
(1)队列数据缓存较多
队列缓存数据多,不用丢掉,使用播放端是需要支持变速播放的功能
起播缓存阈值,这里音频数据达到X毫秒才开始播放。起播越大,越流畅,但是延迟大。

(2)网络抖动->直播是实时流,为什么还要做音视频同步,直播需要时间戳来做音视频同步。

① 网络抖动是指最大延迟和最小延迟的时差。比如你访问一个网站的最大延迟是10ms,最小延迟是5ms,那么网络抖动是5ms。

② 网络抖动原因:

  • I帧较大,占用带宽时间比较长
  • 信号不好的时候,网络拥塞的的时候

③ 解决网络抖动:
做缓存

– 采集端,采集间隔是匀称的,不代表接收端收到帧间隔也是匀称的。
I帧代表jpeg图片(371kb,40ms要能发送出去,37110248/0.04=75980800,约76mb,I帧发送,很容耗时大于>1/帧率)

I P P帧
40ms 40ms
– 接收端
P P I
90ms 80ms 0

  • 视频帧间隔不匀称
  • I帧

网络抖动是指最大延迟和最小延迟的时差。比如你访问一个网站的最大延迟是10ms,最小延迟是5ms,那么网络抖动是5ms

(2)服务器抖动 :读写

经常出现卡顿后,一般是攒积数据缓存

如有侵权,请联系删除。

相关内容

热门资讯

六月二十七日望湖楼醉书 这首诗... 六月二十七日望湖楼醉书 这首诗的写作结构是怎样的?雨前:黑云到入船。雨停:第三句。雨后:最后一句
如果我带着醉意出生,或许我会忘... 如果我带着醉意出生,或许我会忘掉所有的哀伤,这是哪本书上的句子《八百万种死法》,最近电视剧无懈可击之...
优美动人怎么造句孑 优美动人怎么造句孑她的舞姿优美动人,真是让人难以忘怀!
在科学上没有平坦的大道,只有不... 在科学上没有平坦的大道,只有不畏艰险沿着陡峭山路攀登的人,才有希望达到光辉的顶点。这句话的意思。这句...
有什么好看的网王小说?要完结的 有什么好看的网王小说?要完结的四叶三叶草,我的幸福《网王守望幸福《网王——今生无忧》(《夏之纪年》《...
郭达换大米剧本谁写的 郭达换大米剧本谁写的换大米的作者是 郭达和蔡明
园林绿化公司怎么起名 园林绿化公司怎么起名我们是做园林绿化设计、施工管理的自然世界园林绿化公司,新鲜空气园林绿化公司,超时...
命运石之门,谁发信对主人公说你... 命运石之门,谁发信对主人公说你知道的太多了FB指示萌郁发送的(官方资料设定集里写了)FB即是楼下的显...
有关超市开业播放的音乐 有关超市开业播放的音乐请各位关注本问题的大侠们,帮我找一下超市、商场开业时用到的喜庆音乐!谢谢,有追...
现代人物人物苦学成才的故事 现代人物人物苦学成才的故事现代人物人物苦学成才的故事 张恨水先生是我国著名的现代作家。17岁时,他...
是惊的成语,以惊字结尾的成语,... 是惊的成语,以惊字结尾的成语,惊字在后面的成语 第四个字是惊的成语详细〔 胆颤心惊 〕颤:发抖。形...
判断一个女人对你“欲擒故纵”,... 判断一个女人对你“欲擒故纵”,还是“压根没戏”,关键看哪几点?首先知竖,对方给你回消息的语气。如历芹...
自己写的儿童诗 自己写的儿童诗有什么可以帮你的追问:我要自己写的儿童诗,谢谢了!追答:主要是我都不知道有什么要求啊追...
地下城堡2聚火之心有用吗 地下城堡2聚火之心有用吗有用。《地下城堡2:黑暗觉醒》是一款模拟经营与地牢探险游戏高贺轿。游戏中聚火...
在学校如何和老师斗智斗勇 在学校如何和老师斗智斗勇 老师说上课是对牛弹琴时,作为学生的我们应该感到高兴,因为老师说的是事实啊...
神级龙卫男主和谁在一起 神级龙卫男主和谁在一起你好。神级龙卫男主沈浪跟女主白倾雨,苏若雪,柳潇潇最终走到一起了。让我们来看看...
开学以来作文520初中 开学以来作文520初中初一的感觉 似水流年,今天的我们已不再是在草地里玩过家家的小朋友;今天的我们已...
家有黄仙能养两只猫吗 家有黄仙能养两只猫吗可以养的,不犯冲突,猫捉老鼠是老鼠的天敌,养猫后家里的老鼠会少很多。
失忆后的人会不会有恐惧和绝望的... 失忆后的人会不会有恐惧和绝望的心理?我是指那种完全忘记了自己的一切的人。失忆...如果真的全部忘记,...
胡萝卜长期保存方法 胡萝卜长期保存方法胡萝卜放保鲜袋里放冰箱可以放很长时间。