音(yin)視(shi)頻(pin)在(zai)現在(zai)的(de)社會中(zhong)無處不在(zai),視(shi)頻(pin)直(zhi)播已經成(cheng)為大家(jia)生活或娛樂的(de)必需品了,那么(me)音(yin)視(shi)頻(pin)卡(ka)頓給(gei)我們的(de)體驗會造(zao)成(cheng)影響,那么(me)造(zao)成(cheng)音(yin)視(shi)頻(pin)卡(ka)頓的(de)原因(yin)都有哪(na)些昵(ni)?
一、設備原因
此處設備主要是指用(yong)戶端的(de)軟硬(ying)件配置。在直(zhi)播(bo)的(de)傳輸過程(cheng)中,會對視頻(pin)進行編解(jie)碼,高清(qing)視頻(pin)往(wang)往(wang)會給(gei)硬(ying)件帶來解(jie)碼壓力,由于解(jie)碼造成的(de)卡頓尤(you)為明顯。如果手機(ji)/電(dian)腦(nao)硬(ying)件配置低,或播(bo)放軟件版本(ben)過低 ,編解(jie)碼的(de)速度就會降(jiang)低,就可能造成視頻(pin)播(bo)放卡頓的(de)情(qing)況。
解決方案:
(1).提高直播軟(ruan)件(jian)的兼容性(xing)和(he)容錯率,升級硬(ying)件(jian)和(he)軟(ruan)件(jian)設備(bei),或設置(zhi)多種清(qing)晰度供用戶自(zi)行調(diao)整;
(2).使用硬編硬解方(fang)案,充分利(li)用GPU 加速,降低視頻碼率,選擇流暢或(huo)者標清畫質進行視頻播放(fang);
(3).增大播(bo)放器緩沖(chong)區,緩解(jie)因網絡或解(jie)碼不穩定引起的卡頓(dun)。
二、視頻(pin)源本身的數(shu)據(ju)丟失
有些視頻(pin),在(zai)使(shi)用播發(fa)器播放的時候,會出現一(yi)卡一(yi)卡的問題,那么可(ke)以多試幾(ji)個播發(fa)器,如果(guo)都卡頓,那么就是視頻(pin)源問題。
解決方案:
(1).增(zeng)加視(shi)頻(pin)源(yuan)的錄(lu)制標準;
(2).減少視頻源錄制干擾;
三、視頻流
音視(shi)頻時間戳不(bu)同(tong)步,在直(zhi)播中,音視(shi)頻流在進(jin)行(xing)編碼后(hou)會(hui)有固定(ding)的時間戳,經網絡(luo)傳輸(shu)到達(da)用(yong)戶端后(hou),視(shi)頻幀會(hui)按照時間戳排序成像,如果時間戳不(bu)同(tong)步,會(hui)影響畫面渲染,導致畫面解(jie)析時出現錯(cuo)亂(luan),前后(hou)畫面銜接會(hui)出現不(bu)連續甚至花屏的現象。
解決方案:
我們可對推流器的(de)源碼進(jin)(jin)行研究,把(ba)讀取(qu)到的(de)每一(yi)幀音(yin)頻(pin)、視(shi)頻(pin)的(de)時間戳進(jin)(jin)行查(cha)閱、分析,然后(hou)通過程序干涉推流器或者流媒體服務器,矯正邏輯值,使音(yin)畫(hua)同步。
視頻流參數配置問題(ti):
根據人眼的(de)(de)視(shi)覺(jue)暫留原理,美妙的(de)(de)畫面張數必須達到一定的(de)(de)數值,人眼的(de)(de)觀看才是連續有(you)效地。如(ru)果視(shi)頻(pin)(pin)(pin)的(de)(de)幀率(幀率即美妙的(de)(de)畫面張數)設置過(guo)低,或視(shi)頻(pin)(pin)(pin)流(liu)(liu)的(de)(de)編(bian)碼方式與傳輸服(fu)務器有(you)不(bu)兼容的(de)(de)情況,部(bu)分(fen)音視(shi)頻(pin)(pin)(pin)數據出現(xian)了解析錯誤甚至(zhi)無(wu)法解析的(de)(de)情況,也會出現(xian)視(shi)頻(pin)(pin)(pin)流(liu)(liu)播(bo)放(fang)卡頓的(de)(de)問題。
解決方案:
(1).設置合理(li)的碼率,幀率,分辨率,關(guan)鍵幀間隔,音視頻(pin)編碼格式等參數(shu);
(2).盡量遵循標準的視(shi)頻編碼(ma)方案,流媒體傳輸協議(yi),對視(shi)頻流進行采集,編碼(ma),播放(fang)等操作。
四、網絡環境
如(ru)果主播端網絡環境較差時,會導(dao)致(zhi)推(tui)流端上行不穩定,如(ru)果是觀(guan)眾播放端的(de)網絡存在波動(dong)問題,需要定位一下是大面積的(de)觀(guan)眾卡頓還(huan)是局(ju)部觀(guan)眾卡頓。
解決方案:
(1).使用 speedtest 進行測速,判斷終端的網絡速度;
(2).用戶 ping 播放域名,查看解析到的(de)服務(wu)器節點(dian),判斷自身IP 到服務(wu)器之間(jian)是否有延遲(chi)過大或(huo)者丟包的(de)情況出現。
五、服務器
現在很多直(zhi)播平臺大多選擇(ze)CDN廠商進行直(zhi)播底層業務(wu)(wu)支撐,當直(zhi)播觀看人數并(bing)發較大時,就(jiu)會(hui)給服務(wu)(wu)器負載造成壓力,帶寬數據(ju)量大,傳輸緩慢,就(jiu)會(hui)導致(zhi)卡頓(dun)。
解決方案:
聯系 CDN 廠商進行(xing)線路(lu)排查,選擇更適(shi)合的(de)服務線路(lu);也(ye)可以通過播放器(qi)打(da)點上報,統(tong)計所有客戶端的(de)整(zheng)體(ti)卡頓率情況,分地區(qu)做一些線路(lu)和資源的(de)調整(zheng)和優化。
————————————————
版(ban)(ban)權(quan)聲明(ming):本文為CSDN博主(zhu)「Geek.Fan」的原(yuan)創(chuang)文章,遵(zun)循(xun)CC 4.0 BY-SA版(ban)(ban)權(quan)協議(yi),轉載請附上原(yuan)文出處鏈接及本聲明(ming)。
原(yuan)文鏈(lian)接(jie)://blog.csdn.net/fanyun_01/article/details/113483328