FMUSER更轻松地传输视频和音频!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷兰语
sq.fmuser.org ->阿尔巴尼亚人
ar.fmuser.org ->阿拉伯语
hy.fmuser.org - >亚美尼亚
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄罗斯语
bg.fmuser.org - >保加利亚
ca.fmuser.org ->加泰罗尼亚语
zh-CN.fmuser.org ->中文(简体)
zh-TW.fmuser.org - >中国(繁体)
hr.fmuser.org ->克罗地亚语
cs.fmuser.org ->捷克
da.fmuser.org ->丹麦语
nl.fmuser.org - >荷兰
et.fmuser.org ->爱沙尼亚语
tl.fmuser.org ->菲律宾
fi.fmuser.org ->芬兰语
fr.fmuser.org - >法国
gl.fmuser.org ->加利西亚语
ka.fmuser.org ->乔治亚
de.fmuser.org ->德语
el.fmuser.org - >希腊
ht.fmuser.org ->海地克里奥尔语
iw.fmuser.org ->希伯来语
hi.fmuser.org ->印地语
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰岛语
id.fmuser.org ->印尼语
ga.fmuser.org ->爱尔兰
it.fmuser.org - >意大利
ja.fmuser.org ->日语
ko.fmuser.org ->韩文
lv.fmuser.org ->拉脱维亚
lt.fmuser.org - >立陶宛
mk.fmuser.org ->马其顿语
ms.fmuser.org ->马来语
mt.fmuser.org ->马耳他语
no.fmuser.org - >挪威
fa.fmuser.org ->波斯语
pl.fmuser.org ->波兰语
pt.fmuser.org ->葡萄牙语
ro.fmuser.org - >罗马尼亚
ru.fmuser.org ->俄语
sr.fmuser.org ->塞尔维亚语
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亚
es.fmuser.org ->西班牙语
sw.fmuser.org ->斯瓦希里语
sv.fmuser.org ->瑞典语
th.fmuser.org - >泰国
tr.fmuser.org ->土耳其语
uk.fmuser.org ->乌克兰语
ur.fmuser.org ->乌尔都语
vi.fmuser.org - >越南
cy.fmuser.org ->威尔士语
yi.fmuser.org - >意第绪语
我们分享了如何在许多在线和离线场合下优化直播效果,并详细说明了每个部分延迟和卡顿现象少的原因以及相应的优化原理。 实际上,音频和视频的实时广播系统是一个复杂的工程系统。 为了实现非常低延迟的实时广播,需要进行复杂的系统工程优化并非常熟悉各种组件。 在这里,我们分享一些简单且常用的调整技术。
编码优化
1.确保启用了最低延迟设置的编解码器。 编解码器通常具有低延迟优化的开关,尤其是对于H.264。 许多人可能不知道H.264解码器在显示某个视频帧之前通常会对其进行缓存。 对于QCIF分辨率视频(176×144),它通常缓存16帧,对于720P视频,它缓存5帧。 。 对于第一帧的读取,这是一个很大的延迟。 如果您的视频未使用H.264进行编码和压缩,请确保未使用B帧。 这也将对延迟产生更大的影响,因为视频中B帧的解码取决于之前和之后的视频帧,这将增加延迟。
2.编码器通常具有由代码控制引起的延迟,通常称为初始化延迟或视频缓冲区检查器VBV的缓冲区大小,它被视为编码器和解码器位流之间的缓冲区,而不会影响视频质量。 您可以将其设置得尽可能小以减少延迟。
3.如果仅优化第一个打开延迟,则可以在视频帧之间插入更多关键帧,以便客户端可以在接收视频流后尽快对其进行解码。 但是,如果需要在传输过程中优化累积延迟,请使用尽可能少的关键帧,即I帧(GOP变大)。 在确保相同视频质量的条件下,I帧越多,比特率越大,所需的传输越多,网络带宽越多,则意味着累积时延可能越大。 此优化效果在具有二级延迟的系统中可能并不明显,但在具有100 ms或更短延迟的系统中将非常明显。 同时,尝试使用AAC-LC编解码器对音频进行编码。 尽管HE-AAC或HE-AAC V2具有较高的编码效率,但编码时间较长,并且由较大音量的音频产生的传输延迟将影响视频流的传输。 说影响较小。
4.不要使用视频MJPEG的视频压缩格式,至少要使用不带B帧的MPEG4视频压缩格式(简单配置文件),甚至最好使用H.264基线配置文件(X264还具有“调谐零延迟”的优化开关) )。 这种简单的优化可以减少延迟,因为它可以以较低的比特率对全帧速视频进行编码。
5.如果使用FFmpeg,请减小“ -probesize”和“ -analyze duration”参数的值。 这两个值用于视频帧信息监视和监视持续时间。 这两个值越大,对编码延迟的影响越大。对于现场直播场景中的视频流,甚至不需要设置分析后的参数。
6.固定速率编码CBR可以在一定程度上消除网络抖动的影响。 如果可以使用可变速率编码VBR,则可以节省一些不必要的网络带宽并减少某些延迟。 因此,建议尽可能使用VBR进行编码。
传输协议优化
1.尝试使用RTMP代替基于HTTP的HLS协议在服务器节点和节点之间进行传输,以减少总体传输延迟。 这主要是针对最终用户使用HLS进行播放的情况。
2.如果最终用户使用RTMP播放,请尝试在靠近推送端的接收节点处进行代码转换,以使传输的视频流小于原始视频流。
3.如有必要,您可以使用自定义的UDP协议来代替TCP协议,从而消除了在弱网络链接下进行重新传输的需要,从而减少了延迟。 其主要缺点是基于UDP协议的定制协议的视频流的传输和分发不够通用,并且CDN制造商支持标准传输协议。 另一个缺点是可能由于数据包丢失(缺少关键帧解码参考)而导致模糊或模糊,这要求协议定制方基于UDP执行数据包丢失控制。
传输网络优化
1.我们介绍了实时流网络。 它是一种新型的节点自组织网状传输网络,适用于国内多运营商网络条件下的传输优化,也适用于许多海外直播需求。
2.将当前GOP缓存在服务器节点中,并与播放器配合以优化视频打开时间。
3.服务器实时记录流到每个链路的每个视频流的二级帧率和比特率,并实时监控比特率和帧率的波动。
4.客户端(流媒体和播放)通过查询服务器(每5秒)以准实时的方式获取当前的最佳节点,并使当前有故障的节点和线路以准实时的方式脱机。
流,播放优化
1.检查发送系统随附的网络缓冲区的大小。 系统可能会在发送数据之前对数据进行缓冲。 此参数的调整还需要找到一个平衡点。
2.回放端的缓存控制也对视频的第一次打开延迟产生更大的影响。 如果仅优化了第一个打开延迟,则在缓存为0的情况下,可以在数据到达时立即对其进行解码。 但是,在网络环境较弱的情况下,为了消除网络抖动的影响,还必须设置一定的缓存。 因此,有必要在实况广播的稳定性和第一打开延迟的优化之间找到平衡,并调整优化的缓冲器大小的值。
3.播放器的动态缓冲策略,它是上述播放器的缓存控件的改进版本。 如果仅在0高速缓存和固定大小高速缓存之间进行选择以找到余额,则最终将选择固定大小的高速缓存。 这对亿万移动互联网终端用户是不公平的。 他们的不同网络条件决定了这一点。 固定大小的缓存并不完全适合。 因此,我们可以考虑一种“动态缓冲策略”,该动态缓冲策略在播放器开启时使用很小或什至为零的缓存策略,并根据下载第一个视频所需的时间来确定下一个时间片的缓存大小,而播放在此过程中,将实时监视当前网络,并实时调整播放过程中缓冲区的大小。 这样,可以实现极低的第一次开启时间,并且可以最大程度地消除由网络抖动引起的影响。
4.动态比特率回放策略。 除了动态调整缓冲区大小的策略外,网络信息的实时监视还可以用于在回放过程中动态调整比特率,在网络带宽不足时降低用于回放的比特率,并降低延迟。
以上是我们在低延迟优化中的一些技巧。 实际上,当我们优化低延迟时,我们不仅关注“低延迟”,而且尝试在确保其他条件不会影响用户体验的同时实现低延迟。 因此,其内容涉及越来越多的主题。 实时视频的优化还包括所有方面,在这里仅共享我们已经实践过的部分。 随着实践的积累,我们将分享更多用于实时视频甚至在线和离线点播的优化技术。
|
输入电子邮件以获取惊喜
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷兰语
sq.fmuser.org ->阿尔巴尼亚人
ar.fmuser.org ->阿拉伯语
hy.fmuser.org - >亚美尼亚
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄罗斯语
bg.fmuser.org - >保加利亚
ca.fmuser.org ->加泰罗尼亚语
zh-CN.fmuser.org ->中文(简体)
zh-TW.fmuser.org - >中国(繁体)
hr.fmuser.org ->克罗地亚语
cs.fmuser.org ->捷克
da.fmuser.org ->丹麦语
nl.fmuser.org - >荷兰
et.fmuser.org ->爱沙尼亚语
tl.fmuser.org ->菲律宾
fi.fmuser.org ->芬兰语
fr.fmuser.org - >法国
gl.fmuser.org ->加利西亚语
ka.fmuser.org ->乔治亚
de.fmuser.org ->德语
el.fmuser.org - >希腊
ht.fmuser.org ->海地克里奥尔语
iw.fmuser.org ->希伯来语
hi.fmuser.org ->印地语
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰岛语
id.fmuser.org ->印尼语
ga.fmuser.org ->爱尔兰
it.fmuser.org - >意大利
ja.fmuser.org ->日语
ko.fmuser.org ->韩文
lv.fmuser.org ->拉脱维亚
lt.fmuser.org - >立陶宛
mk.fmuser.org ->马其顿语
ms.fmuser.org ->马来语
mt.fmuser.org ->马耳他语
no.fmuser.org - >挪威
fa.fmuser.org ->波斯语
pl.fmuser.org ->波兰语
pt.fmuser.org ->葡萄牙语
ro.fmuser.org - >罗马尼亚
ru.fmuser.org ->俄语
sr.fmuser.org ->塞尔维亚语
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亚
es.fmuser.org ->西班牙语
sw.fmuser.org ->斯瓦希里语
sv.fmuser.org ->瑞典语
th.fmuser.org - >泰国
tr.fmuser.org ->土耳其语
uk.fmuser.org ->乌克兰语
ur.fmuser.org ->乌尔都语
vi.fmuser.org - >越南
cy.fmuser.org ->威尔士语
yi.fmuser.org - >意第绪语
FMUSER更轻松地传输视频和音频!
联系我们
分类目录
订阅电子邮件