鐠猴拷閻炴稏鍎插﹢涓�2闁汇劌瀚幁顐f媴閹剧粯瀵㈤柍銉︽煛閳ь剚姊归崼锟犳嚊閿濆應鍋撳鍛樊闂佽姤顭終闁挎稑鑻妶浠嬪触閸涘﹥鏆柟闈涚С缁ㄣ劑宕℃繝鍌氼潬闁稿⿵鎷�鐠猴拷闁哄棙鍨垫禍锝夋嚃閻樺搫鍓柡鍕尭閸ゎ參姊婚鈧。浠嬫晬鐎圭挶fespace闁烩晛锕﹂弫鎾绘嚕鐏炶棄绨诲ù锝囧У婢э箓鏌呴悩韫樊閹兼潙鍢查妶浠嬪灳濠婂棗浜栭柍銉︾箖閳ь剨鎷�鐠猴拷濡絾鐗曢崹閬嶅箑瑜忛~鏍儘閺冣偓閸ㄦ岸寮稿⿰鎰獥闁告牗銇為崥顐も偓瑙勭箖閻忔岸鎮介悢鍝勨挅缂佷胶鍋熺划锟犳煀閸涘﹥鏆柛鐘插殫IE婵炲矁宕甸弸鐔煎极閸喓浜�鐠猴拷缂佸鍨甸鐔煎箮閵堝牆鈧粙寮ㄩ懡銈嗘闁挎稒宀稿▔锟�4闂佹彃绉垫慨銏ゆ嚃濠靛浂妲荤紒顕€鈧稓鑹惧☉鎾亾闂婎剦鍋嗗▓鎴﹀磻閵夈儳鏆旈梺顐㈠€风粭澶屸偓鐟扮秺閺佸﹥娼婚敓锟�鐠猴拷閻熸瑱缍侀弨锝夌叕椤愶絾缍忕紒鐙呯磿閹﹪寮弶鍟冾參宕濋崠锛勭獥lifespace閻忓繐绻楅幗鎴︽嚈閹殿喗鎶勯柣銏㈠枙瀵宕濋埡鈧紞妯尖偓鍦仧楠炲洨绮旈幋婵愬妳闂婎剦鍋呭ḿ妤冪不閿涘嫭鍊�鐠猴拷濠碘€冲€风紞宥囩矓閹存繍鍔呴梻鍕Х椤㈠懘鎳橀崒锔惧惞濞戞挾绮晶锔藉緞閳哄啫濮ч柟瀛樺姇閸ㄥ酣鎯冮崟顔肩亰闁谎勫劤閻g偟鐥€圭姷婀哥紒淇卞灪濞叉悂鎳楃捄鐑樻妱濞存粌妫滆濞戞搫鎷�鐠猴拷闁哄嫬妫滈崥妯荤▔椤撶偞绂囬悹褍鍚€缁楁繂鈽夊☉宕囩獥缁惧彞绀侀悽顐﹀及椤栨艾鏋庨柡浣哄瀹撲線鎯冮崟顒佷粯濞达絽鍟块悺銊╁磼閵娿倗鐭欓悹鎰舵嫹鐠猴拷濠碘€冲€风紞宥嗘櫠閻愭彃绻侀柛蹇撶Ф閺屽懘宕濆☉宕囧惞婵箍鍊涢崵鏇㈠磹瀹ュ懍娣柧鏂款儑濞呇呭垝婢跺ǹ鍋ㄩ柦鈧妷銉ユ倠闁哄鍎埀顒佺矊婵亪寮ㄩ悜鈹惧亾閿燂拷鐠猴拷Canalys閻犲鍟伴悥娲晬濮橆偉鍘柛銉﹀灊缁辨帗绋夊顒夊殸濞存粌绨肩粭鍌涚閹寸姵鐣遍梻鍥e亾婵懓鍊风划娑㈡倿閺堢數绉甸弶鈺嬫嫹鐠猴拷濠⒀呭仜缁犳瑧鎼鹃敓锟�30% 闁告绨肩拹鐔哥▔婵犲懐娈�2023闁归潧顑嗗┃鈧柛鎴︾細閹伙綁鏌岃箛姘4000濞戞挸娲崕锟�鐠猴拷缂佹劒鑳堕悧顒佸緞濮樿翰鈧秹鏌屽鍥т化闁瑰灈鍋撻柡鍫嫹 婵炴惌浜濋悿鍡涘矗閹存繄顏撮柛蹇嬪妽閺屽﹦绮诲Δ鈧慨蹇曠磾閹寸姷鎹曢柟鍨С缂嶆梻鍖栭懡銈囧煚鐠猴拷闁煎浜濋崹婊堟儑鐎n厸鈧粓鏁嶉悢璇差伕闁哄绮岄妵鍥嵁閸涱厼顤€闁告垵绮癛濠㈣泛鐡ㄥΟ澶愭煥閳ь剟宕鐐獥闁哄秴娲╅崵锟�15濞戞挸娲よぐ锟�鐠猴拷闁告绨肩拹鐔哥閹寸儐鍔€鐎殿喖绻愯ぐ鍌滄暜閸愨晜鐓€濞戞挴鍋撳ù鐙呯秬閸ゆ粓鎯嶉弬鍨€婚悽顖氬暙缁憋繝寮悧鍫濈ウ閹煎瓨寮竌ussDB鐠猴拷闁稿繈鍔庨幃鍡欑箔椤戣法顏遍悗纭咁啇缁辨帗绋夋径瀣昋D-OLED闁煎墽貌antone闁告瑥鐭佹竟濠呫亹閳哄倹缍€濠电偘娴囬鑽ゆ嫚閿燂拷鐠猴拷婵炴潙顑呯紙閬嶆煀濮濆瞼妲哥紒鎯ф啞閳ь剙绨肩粻鐐烘偨閿燂拷鐠猴拷3999闁稿繐鍟抽幑锝夋晬娴g懓顫戦柛娆戝Т閻棝骞嶇€n偅绨歮oto razr 40缂侇垵顕ч崹顏勵潰閿濆懐纭€闁告瑦鍨电粩锟�鐠猴拷閻犳劗顣槐鎺旀閵忕姴鍤柟鎭掑妼閸ょ挆OUGH濞戞挸顦靛Σ绫咶express Type A閻庢稒锚閸嬪秹宕¢敓锟�鐠猴拷闁告绨肩拹鐔奉潰閿濆懐纭€闁告瑦鍨电粩鐑藉疾閾忓湱鏆嗛柛蹇嬪妼閸樻粓鎳曢弮鈧敮鎾箣濡吋娈i柛娆欐嫹6婵炲棝绠栭崳鍝ュ閸涱喗鐓€闁告繐鎷�鐠猴拷闁艰鲸鏌ㄨぐ鍌滅矓閹达絾鍣eù婊冾儔閺嗛亶鎷曢埄鍐╊潠濞寸姴顑戠槐鐗堬紣閸曨噮鍚€闁归潧顑嗗┃鈧☉鎾磋壘婵喖寮甸鍛檷濞戞挶鍊曢崟鐐濮橆剦鏉婚梻鈧敓锟�鐠猴拷婵炴潙顑呯紙閬嶆煀濮濆瞼妲哥紒鎯ф啞閳ь剙绨肩粻鐐烘偨閿燂拷鐠猴拷闁煎灚宕橀鍡樼閹辨亯geOne闁稿繈鍎甸埀顒€顢媋rtner DDoS缂傚倹鎹佽闁哄倽顫夐、宥囨暜閸屾碍绨氶柟绋挎搐瀹曪拷鐠猴拷闁告绨肩拹鐑礳eanStor Pacific闁告帒妫楃粩宄邦嚕韫囨挾鎽犻柛灞诲姀楠炲粩O500婵帗绮庨鍥ㄧ▔閳э拷鐠猴拷閻忓繐绻掗懗宀勫矗閹存繄顏�2023妤犵偟绻濈粩瀵糕偓娑崇到鐎瑰磭鎷归姀鈥承撻柨娑欑婢瑰嫭绂嶈箛搴ょ闁烩晛鐗炵槐婵嬪礆閳哄倿绱熷☉鎾筹攻鐎癸拷鐠猴拷闁艰鲸姊归崗鍌涚▔婵犱胶顏遍悹鎰╁灩閸曢箖鎷冮妷锔芥毆闁告巻鏅滄Η搴ㄥ矗鐏炶棄钃熷☉鎾愁儐缁拷 闂傚牊鎵汣闁衡偓鐠哄搫寮抽柛妤冨У閻︻喗娼婚敓锟�40%鐠猴拷濞达絽鐤囬崗妯伙純閺嶎煈鍎F闁炽儲绮撻妶濂哥嵁濞村鍋撳┑瀣當濠㈠墎鈪礔28mm F2.8 STM婵繐绲界槐锟犲矗閹存繄顏�鐠猴拷缂佷究鍨归崙褰掑矗閹存繄顏撮弶鐐额嚙闂冣偓闁搞劌顑呴崣蹇涘疾椤栨熬绱i柛銉у仱閻撹埖绔熸稉鐕�-S2000 闁哥儐鍠曢悳锟�2990闁稿骏鎷�鐠猴拷闁烩偓鍔屽鎼佹媼閿濆嫮鐨戦梻鈧崹顔兼倯CEO闁绘粌顑嗛弸鍐╃椤掑﹦绐楅柛蹇嬪姂濞间即寮悧鍫燁仭闁哥喎妫旂粭鐔煎礆濞戞瑦鐓€闁哄啯婀归崬顒勫礆閻楀牊闄�鐠猴拷濞戞搩鍘奸崣纰〦CS濞存粍鍨甸柦鈺呭矗閹峰瞼绠剧紓渚囧幒缁椾線鐛壕瀣GlobalData Leader閻犲洤瀚锟�鐠猴拷闁告劕鎳忛悧鎶藉极娴兼潙娅ゅ☉鎾规〃缁楃喖鎮剧仦鐐粯濡ゅ倹锕槐鎵恗pere闁告瑦鍨电粩锟�192闁哄秶顎僐M濠㈣泛瀚幃濠囧闯閿燂拷鐠猴拷Gartner闁挎稒淇洪崥妯兼媼椤栨瑧闅橀柤鍓aaS闁靛棔绔糝M濠㈣埖鐭柌婊呮導濞戭澀澹曢柛銉ㄦ閸炲绮璺伇
您现在的位置:首页 >> 新•资讯 >> 正文
一只视频程序猿的移动直播SDK初体验
发表时间:2016年6月6日 15:04 来源:新科技 责任编辑:编 辑:麒麟

今早老板召开站会,“移动直播这么火,市面上有一百多个APP,小斌,你下周交个原型APP瞅瞅!”

  小弟心中一万匹草泥马奔过,这玩意儿哪儿是几天就能弄出来的?问候归问候,咱还是赶紧调研吧,端午还约了妹子游泳呢。

  一、 方案选项

  作为公司音视频大神,对流媒体基本概念还是OK的。咱首先看看市面上火热的某客、某椒APP怎么工作的。主播端推流使用RTMP推向流媒体源站,服务器内部通过RTMP协议多级拉流至边缘CDN节点,播放端从边缘CDN节点获取直播内容,大致如下图:

  

  其中上行RTMP推流很普遍了,很多游戏直播都使用obs推RTMP流。

  在整个过程中,涉及很多流媒体的基本概念,先说说GOP。

  GOP即Group of picture(图像组),指两个I帧之间的距离。即几秒有一个关键帧。分析线上主流的移动直播APP,大都在2、3秒之间。

  

  一般的云服务公司都会提供多种协议的拉流方式,优缺点如下:

  l HLS协议,移动h5浏览器支持较好,但是延迟较大。移动端播放前需要产生三个分片,每个分片至少得是一个GOP。一个GOP即使是2秒,也意味着这个环节耗费了6秒的延时。

  l RTMP协议,需要访问1935端口,支持双向互动,实时性很好,PC flash原生支持。

  l HTTP-FLV,不支持双向互动,实时性和RTMP协议一致。

  基于以下几点理由,小弟准备采用HTTP-FLV作为拉流协议:

  1. 国内网络情况的恶劣程度,并不是每个网络防火墙都允许1935包通过。

  2. RTMP协议和HTTP-FLV,实际传输的内容都是相同的FLV,实时性也一样。

  3. RTMP协议握手方式比HTTP复杂。

  确定好了拉流协议,再看看推流侧依赖的参数。

  l FPS,每秒编码传输的视频帧数;

  l 码率,每秒编码传输的音视频比特数;

  l GOP,关键帧间隔;

  l 分辨率。

  在相同码率的情况下,FPS和分辨率越大,视频的图像质量越差。为了平衡主播上行带宽、用户观看下行带宽和图像质量的关系,需要很好处理这几个值。

  二、 SDK下载

  首先,Android/iOS系统上,并不包含RTMP推流组件,这块需要自己开发。系统自带的播放器也不支持flv文件的播放。小弟只能去阿里云、腾讯云、百度云、金山云等大牛云服务公司找解决方案了。把每个帐号都注册一遍,大致情形如下。

  

  其中,腾讯云ILVB实名认证后需要人工审核5个工作日,反正至今没有看到SDK。

  更令人震惊的是,虽然阿里云提供多媒体云服务,但是至今尚未提供移动直播SDK。

  总体来说,开放较好的是金山云,SDK放到了github上,每次change log都很清楚,几乎每周都有更新。 腾讯云就有些犹抱琵琶半遮面,给SDK试用都不痛快。

  三、 SDK功能对比

  拿到SDK,首先对比一下相关功能。其中腾讯云LVB直播只提供了播放SDK,还仅只支持HLS播放,这个方案首先扑街。ILVB互动直播未拿到SDK,暂且不表。这样一来,可供选择的大型云服务商的方案就剩下金山云和百度云。

  移动直播SDK涉及的功能比较多,我先解释一下几个基本功能点:

  l 推流编码,涉及软件编码和硬解编码。相同码率,软编图像质量更清晰,但是耗电更高;

  l 网络自适应,当网络抖动时根据网络情况调整发送速率;

  l 美颜,对主播图像进行美白、液化、磨皮等处理;

  l 混音,当主播聊天时,可以把背景音乐混到音视频里面;

  l 播放视频旋转,可以根据视频宽高,决定横屏还是竖屏播放;

  l 直播重加载,当播放状况不佳时,重新拉流播放。

  为了对比其他方案,做了几张表格。

  Android推流功能列表如下:

  

  从表中可以看到,

  1) 百度云接口还很粗糙,连移动直播必选的美颜功能都不支持,首先淘汰。

  2) 小弟想有噪声抑制功能,但是这些SDK都没有支持,不过令人欣喜的是,金山云支持自定义音频数据处理,可以把自己的噪声抑制代码挂载进去。

  3) 相比而已,金山云的接口较开放。其中金山云SDK支持的功能更丰富些,能满足当前移动直播的要求。

  ios推流功能列表如下:

  

  1) 从表中可以看出,iOS推流功能丰富程度普遍较高,这和市面上主播大量使用iPhone推流有密切关系。

  2) 从特色功能来看,只有金山云支持画中画和美声功能。

  3) 自定义滤镜和原始数据处理,体现了SDK的开放程度,这方面百度云是严重失分的。

  4) 在细节功能上,对声音和美颜的处理,体现了当前SDK对移动直播市场的重视程度。

  Android播放功能列表如下:

  

  iOS播放功能列表如下:

  

  播放端关注点和推流端还有些不一样,播放侧除了考虑功能丰富以外,还需要考虑稳定性、功耗、包大小、开播速度等,静态对比可以作为参考。金山云支持直播重加载,能有效降低播放卡顿率。

  总结一下,通过试用大型云服务商的移动直播SDK,得出以下结论:

  1) 能完全运行起来的是金山云、百度云提供的SDK。腾讯云、阿里云尚未提供真正可用的移动直播SDK。

  2) 从Android/iOS推流功能以及播放功能来看,金山云提供的功能最为丰富。

  3) 百度云提供的推流功能还比较简单,离市面的要求有些距离。

  最后,小斌想说的是:幸好有了靠谱的视频云服务公司,一周做出一款移动直播产品才不是梦,才不会耽误端午约妹子游泳哟。

相关文章
关于我们 | 联系我们 | 友情链接 | 版权声明
新科技网络【京ICP备15027068号】
Copyright © 2015 Hnetn.com, All Right Reserved
版权所有 新科技网络
本站郑重声明:本站所载文章、数据仅供参考,使用前请核实,风险自负。