一、推流架构推流SDK客户真个模块首要有三个,推流收集端、行列控制模块、推流端。其中每个模块的首要流程以下,本文的首要目标就是拆分推流流程, 1.1 收集端视频收集:经过Camera收集视频。 音频收集:经过麦克风收集音频。 视频后处置:美颜、滤镜、贴纸、翻转等殊效。 音频后处置:重采样、3A处置等。 视频编码:支持硬编码和软编码,同时支持H264和HEVC编码,出格要留意编码的特别情况。 音频编码:AAC编码 收集真个很多功用都是平台相关的,相机收集、编码等Android和iOS上处置都纷歧样。特别是Android平台,很多机型和芯片,固然会有一些特别的情况需要兼容下,这个前面我们会具体描写的。 1.2 行列控制行列控制模块是推流SDK很是重要的控制模块,推流SDK就是一个很简单的“生产者——消耗者模子”,收集端是生产者,推流端是消耗者,收集端收集的是当地数据,推流端和办事端交互,一般情况下都是推流端会出现提早,像弱网情况下推流端消耗必定会很慢,可是收集端速度并不会慢下来,假如没有行列控制这个降压阀,那很大都据就会聚积在行列中,当地数据不竭聚积,终极致使OOM。 行列控制应当若何控制? 视频的数据比音频大很多,所以行列控制主如果视频基准,音频随着视频响应丢帧。 编码以后视频行列巨细设备为60,在推流的进程中,发现视频的行列已满,需要抛弃行列最前面的一帧,然后再入队新的一帧,音频行列也要同步操纵,对应时候点的音频数据也要丢掉。 1.3 推流端推流采用的是RTMP协议,RTMP是Adobe公司开辟的,算是究竟上的产业标准,全称是Real Time Messaging Protocol,虽然实时性要比HLS好一点,可是也还有几秒左右的提早。它的底层是基于TCP协议。 RTMP协议的建连流程以下: RTMP建连需要商量两件工作:
首先,客户端发送 C0 暗示自己的版本号,不必等对方的答复,然后发送 C1 暗示自己的时候戳。办事器只要在收到 C0 的时辰,才能返回 S0,表白自己的版本号,假如版本不婚配,可以断开毗连。办事器发送完 S0 后,也不用等什么,就间接发送自己的时候戳 S1。客户端收到 S1 的时辰,发一个晓得了对方时候戳的 ACK C2。同理办事器收到 C1 的时辰,发一个晓得了对方时候戳的 ACK S2。 推流的进程,就是将 NALU 放在 Message 里面发送,这个也称为 RTMP Packet 包。Message 的格式就像这样。 一定要记着音频和视频的头部要零丁发送,在发送视频头部的视频,需要将NALU肇端标识符去掉,RTMP不需要它们。 三、技术要点3.1 声音处置在收集完声音以后,需要对音频停止3A处置,即声学反响消除(AEC)、布景噪声抑制(ANS)、自动增益控制(AGC),3A处置在声音前期处置中很是重要,在推流场景的声音处置中利用非常普遍。
反响消除(AEC)是指在二线传输的两个偏向上同时候、同频谱地占用线路,在线路两个偏向传输的信号完全混在一路,本端发信号的回波就成为了本端信号的干扰信号,操纵自适滤波器可抵消回波以到达较好的接收信号质量,即为反响消除。 反响消除的道理就是操纵接收到的音频与当地收集的音频做对照,增加反向的人造反响,将远真个声音消除。
布景噪声抑制(ANS)指的是将声音中的布景噪声识别并停止消除的处置。 布景噪声分平衡噪声和瞬时噪声,平稳噪声频谱稳定,瞬时噪声频谱能量方差小,操纵噪声的特点,对音频数据增加反向波形处置即可消除。 今朝,对于平稳的噪声已经有很多种简双方式可以成功抑制,可是生活中常见的一些瞬态噪声却仍然缺少好法子。 瞬态噪声的配合特点就是突发性极强,在时域上呈振荡虚弱的形式,延续时候在十几毫秒至上百毫秒不等;在频域上散布很宽,瞬态噪声的频谱根基上是和一般语音的频谱混叠在一路,很难停止抑制。
自动增益控制(AGC)首要用于调剂音量幅值,进步语音通讯系统在带噪声情况中的性能。 人们一般扳谈的音量在 40-60dB 之间,低于 25dB 的声音听起来很费劲,而跨越 100dB 的声音会让人感应不适,AGC 的感化就是将音量调剂到人接管的范围。 音频响度及麦克风拾音控制是保证音视频相同质量的重要技术手段,一般来说,音频标准、传输条件、报酬失误等身分都能够致使音频信号之间出现声音突变大概响度纷歧致的情况,这时辰就需要对音频信号放大或缩小以获得自然清楚的语音通讯。 3.2 视频处置相机收集的原始数据首先要停止帧处置,主播凡是会利用一些殊效,例如美颜、滤镜等,这些城市在视频帧后处置流程中展开,帧处置以后才会停止编码处置。 H264和H265编码还有点分歧。 H264头部由SPS和PPS组成,SPS是序列参数集,包括一个图像序列的一切信息,如图像尺寸、视频格式等;PPS是图像参数集,包括一个图像的一切分片的相关信息,如图片范例、序列号。 H264的码流结构以下: 肇端码 + SPS + 肇端码 + PPS + 肇端码 + SEI + 肇端码 + I帧 + 肇端码 + P帧 + ...... H265头部除了SPS和PPS之外,还有一个VPS,VPS是视频参数集。 H265码流结构以下: 肇端码 + VPS + 肇端码 + SPS + 肇端码 + PPS + 肇端码 + SEI + 肇端码 + I帧 + 肇端码 + P帧 + ...... 其中H264和H265的码流范例有两种,一种是Annexb格式,另一种是MP4格式,利用最普遍的还是Annexb格式,本文首要以Annexb为例。 肇端码只是起到朋分的感化,并不是有用的视频数据,肇端码也有两种:
可是图像编码中也有能够出现00 00 00 01和00 00 01,出现这类情况怎样办?
这样在编码的进程中就不会出现混淆了。 3.3 推流控制上文也说了在收集端和推流段实在是经过一个行列控制的,收集端收集当地的视频和音频,然后编码好了放入行列中,推流段从行列中取出视频和音频然后按照特定的格式发送到办事端。相当于收集端是往水池中注水,推流段是放水。 收集端是很快的,推流段是受限于收集的,假如收集状态比力好的情况下,可以到达一个较好的平衡,可是一旦收集变差,行列就会出现聚积,我们不成能让行列无穷聚积,需要设备一个行列阈值,固然行列已满,需要将行列华夏本的数据抛弃,将新数据入队。这样就会出现丢帧,这时辰推流段可以适当下降码率下降丢帧的几率。 3.4 支持FLV-HEVCflv 是不支持H265的,需要手动点窜FLV支持H265编码息争码的剖析,固然也需要拉流段支持FLV-H265。 斟酌到有些小伙伴想进修音视频常识点,但不晓得从哪起头动手,下面小编整理了份《音视频进修笔记》供大师停止参考进修,里面是从入门到进阶的一个进程笔记。 音视频低级入门音视频低级入门主如果打仗Android多媒体展现相关的API,经过零丁的罗列和利用这些API,对Android音视频处置有一个根基的表面,虽然常识点相对来说是比力散的,可是点成线、线成面,根基的根本把握了,经过进修Android音视频焦点的API将音视频的流程串联起来,这样对于音视频的领会和控制就不但仅范围于最外层的API了,而是可以经过相对底层的方式来加深对Android 音视频开辟的认知。
音视频中级进阶:OpenSL ES 进修 |
0.引言本篇文章主要讲解RTSP推流实战,整体推流流程与RTMP推流流程类似。如果对于RTSP
随着视频号直播的不断完善,美颜、抽奖、推流直播等功能纷纷上线,【附近的直播和人】
很多人直播间没有人,就是因为搞不懂抖音直播间推流机制。不明白推流机制就找不到正确
思路:opencv读取视频 — 将视频分割为帧 — 将每一帧进行需求加工后 — 将此帧写入pi
500强直播策划,策划过多起直播。经常会遇到需要全平台推流的情况,但是OBS的原生软件
#头条文章养成计划#根据我400多天创作的亲身体验,文章推荐的时间比较长,而微头条的
#头条创作挑战赛#头条推流的机制是怎样的?在头条写作了31天,小编一直被这个问题困扰
Open Broadcaster Software(简称 OBS)是一款好用的第三方开源程序直播流媒体内容制
写在前面本文将介绍以下内容:什么是推流?将介绍推流常见的协议RTMP,HLS等。怎么用f
头条直播换到西瓜后台啦! 推流还是一样方便快捷! 功能更多更
最近有很多同学问我视频号推流直播怎么做,这种三两句话回答不清楚,今天特意写了详
推流:将直播内容推送至服务器的过程拉流:为服务器已有直播内容,用指定地址进行拉取
我是依伊,一个全职写作的创作人,点击右上角关注,为你分享【新媒体写作变现】和【个
用OBS作为电脑直播推流,是很多人使用的一款开源软件。我们使用OBS时,它默认的是只能
你是否也遇到过辛辛苦苦拍了视频,但结果却还不如跳舞的小姐姐?为什么别人随便拍的视
专业直播操盘手必须掌握的OBS推流直播技能私域直播母東東,业绩增长分分钟Hello,各位
想在直播间中直播游戏,那就需要用到2个东西,分别是推流码和obs软件。那抖音直播推流
缘起: 最近工作比较忙、文章也没怎么更新,不过最近 一段时间过来问我视频号问题的朋
随着近几年互联网技术高速发展,人们对社交形式多样化的需求不断增加,从一开始的文字
直播目前处于一个风口期,很多直播开始跨平台跨地域直播,如何实现异地直播,跨平台直
声明:本站内容由网友分享或转载自互联网公开发布的内容,如有侵权请反馈到邮箱 1415941@qq.com,我们会在3个工作日内删除,加急删除请添加站长微信:15314649589
Copyright @ 2022-2044 杭州共生网络 www.gongshengyun.cn Powered by Discuz!