-
1、使用Thinkphp集成North_PHP_SDK_Demo后报错,端口问题,错误代码如说如下2、更换计算机后好用了,成功获取了token。神奇,感觉是系统问题的样子错误代码======get access token===== Fatal error: Uncaught NorthApiException [error_code=1011, error_desc=The input port is not right, please check it, httpStatusCode=400, httpReasonPhase=Bad Request, httpMessage=null] thrown in F:\phpStudy\PHPTutorial\WWW\North_PHP_SDK_Demo\extend\North_PHP_SDK\client\NorthApiClient.php on line 193
-
一路走过来终于把如何使用php sdk梳理好了,我把期间遇到的问题列出来,希望以后的人不会走弯路。1、背景我已经按步骤设置了转码模板,选择的是hls和2.64的模式用于加密;同时上传了视频,同时转码成功了;最后我设置好了防盗链的白名单和加密设置里面的秘钥url。我先后设置了两个域名www.a.com、www.b.com。2、坑第一、由于需求,需要将a域名改为b域名,同时将ab两个域名加入了防盗链,于是乎我就将获取秘钥的url从www.a.com改为www.b.com,在此情况下,奇怪的事情,我点击现在域名下面的播放链接在手机上能播放,但是我b域名下的里程序并没有将key写进存放key的文件里。 查找过程,将播放页面视频放入pc的web上查看网络连接,发现视频请求秘钥的链接还是请求的a域名的秘钥地址,经过漫长的寻觅,终于发现原来上传视频转码时已经将秘钥地址写入了m3u8,因此,我又重新设置了当前b域名下的秘钥地址,并重新上传转码,在查看网络请求时已经改为了b域名下的秘钥地址,所以一定要注意,一旦更改了获取秘钥的地址,一定要重新上传转码一次才能正常请求。第二、在设置防盗链时的白名单和空referer时给了我极大的困扰,点击后面的灰色问号,显示的是https能访问,并没有提http可以访问,在此情况下,我先后将域名加了证书,发现加证书的访问不能进行,而http是可以访问成功播放的。这里我总结的是,https应该是可以访问的,前提是你要设置好自己服务器的443端口的访问以及各种配置和转码都要是https统一才行,我采用的方法是都没有采用https,统一为http能成功,我们在理解华为云的文档时要注意了,希望以后能更明确一些。第三,在开发之前,我始终没有理解到我们在系统中设置的获取秘钥key是什么时候可以调用,通过我在pc端查看请求时才知道,js会根据请求的m3u8去解析里面的秘钥地址,会带上token一直请求直到请求成功这个地址,在这这里租户系统可以获取这个token进行验证。
-
下载phpdemo算是跑起来了,现在就要考虑租户系统如自身验证token的问题了。1、先介绍下我的代码目录2、文件执行的时序图和流程图2、代码demotest.php<?php function curl_request($url,$post='',$cookie='', $returnCookie=0){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); if($post) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post)); } if($cookie) { curl_setopt($curl, CURLOPT_COOKIE, $cookie); } curl_setopt($curl, CURLOPT_HEADER, $returnCookie); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return curl_error($curl); } curl_close($curl); if($returnCookie){ list($header, $body) = explode("\r\n\r\n", $data, 2); preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches); $info['cookie'] = substr($matches[1][0], 1); $info['content'] = $body; return $info; }else{ return $data; } } if(empty($_GET['token'])){ die('您非法访问'); } $param=array( 'token'=>$_GET['token'] ); $result=curl_request("http:/xxxxxx/ckparams.php",$param); if (!empty($result)){ $vodRsp = json_decode($result,false); $status=$vodRsp->status; $code=$vodRsp->code; if($code!=='1001'){ echo "非法访问".$code; } }else{ echo '请求参数错误'; die; } $urlToken=$status; ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="chrome=1,ie=edge"> <!--[if lt IE 9]> <script src="http://media-cache.huaweicloud.com/video/hwplayer/0.0.6/lib/video-js-5.20.5/ie8/videojs-ie8.min.js?ttl=82052934"> </script> <![endif]--> <script src="http://media-cache.huaweicloud.com/video/hwplayer/0.0.6/dist/hwplayer.js?ttl=82052934"></script> </head> <body> <video controls id="test" width="480" height="300" class="video-js vjs-default-skin vjs-big-play-centered"> </video> <script> hwplayerloaded(function () { var player = new HWPlayer("test",{ width: 480, height: 300, controls: true },function(){ alert(1111); }); player.src( { src:'https://613.cdn-vod.huaweicloud.com/asset/65252102f1de7c4011c969dc803f2e58/play_video/<?php echo $urlToken;?>/index.m3u8', type: "application/x-mpegURL" } ); player.play(); }); </script> </body> getkey.php <?php function convertUrlQuery($query) { $queryParts = explode('&', $query); $params = array(); foreach ($queryParts as $param) { $item = explode('=', $param); $params[$item[0]] = $item[1]; } return $params; } function getToken(){ $url ='https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $url = parse_url($url); $param_arr =convertUrlQuery($url['query']); return $param_arr['token']; } function curl_request($url,$post='',$cookie='', $returnCookie=0){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); if($post) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post)); } if($cookie) { curl_setopt($curl, CURLOPT_COOKIE, $cookie); } curl_setopt($curl, CURLOPT_HEADER, $returnCookie); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return curl_error($curl); } curl_close($curl); if($returnCookie){ list($header, $body) = explode("\r\n\r\n", $data, 2); preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches); $info['cookie'] = substr($matches[1][0], 1); $info['content'] = $body; return $info; }else{ return $data; } } $keyTokenCheck=getToken(); //file_put_contents("token.txt",$keyTokenCheck); if(empty($keyTokenCheck)){ die; } $param=array( 'token'=>$keyTokenCheck ); $result=curl_request("http://xxxxxx/ckplaytoken.php",$param); if(!empty($result)){ $rs=json_decode($result,false); $code=$rs->code; $status=$rs->status; if($code!=='1001'){ die; }else{ $key=file_get_contents("key.map"); if($key){ echo $key; }else{ /** * 查询媒资密钥 */ require './cloudvod/vod/service/AssetService.php'; require './cloudvod/vod/model/QueryAssetCiphersReq.php'; $req = new QueryAssetCiphersReq(); $req ->setAssetId('34345345345'); $rsp = ""; try { $rsp = AssetService::QueryAssetCiphers($req); $rspp=json_decode($rsp->getBody()); $finalKey=base64_decode($rspp->dk); file_put_contents("key.map",$finalKey); echo $finalKey; } catch (Exception $e) { echo $e; } } } } ckparams.php <?php function checkAccessToken(){ //查询传过来的token是否在表中存在,且为0,表明已经合法 //userid、accessPageToken、playUrlToken,status,playStatus 0,1主要核对表中的token的status状态0不对,1正确, return true; } if(checkAccessToken()){ $result=array( 'code'=>'1001', //这了自己改 'status'=>md5('234567') ); }else{ $result=array( 'code'=>'1002', 'status'=>"访问非法.." ); } //将md5的id加固定456字符串存入playUrlToken中 //更改这个token对应的status,最后改变status位1,表明此次完毕 echo json_encode($result); ?> ckplaytoken.php <?php //将传过来的32位token,在表中查找,存在且为0,表示合法 $result=array( 'code'=>'1001' ); //返回之前将playStatus改为1 echo json_encode($result); ?>3、坑和期间可能出现的问题、待续
-
对于代码方面主要涉及到如下的代码:1、web端自动获取核对的秘钥接口如图这个url的主要代码结合文档可以如下,主要使用到了php的json转数组函数和base64_decode函数:<?php /** * 查询媒资密钥 */ require './cloudvod/vod/service/AssetService.php'; require './cloudvod/vod/model/QueryAssetCiphersReq.php'; $req = new QueryAssetCiphersReq(); $req ->setAssetId('0718d0ac557e702f2cff78df3021fcf8'); $rsp = ""; try { $rsp = AssetService::QueryAssetCiphers($req); $rspp=json_decode($rsp->getBody()); echo base64_decode($rspp->dk); } catch (Exception $e) { echo $e; } ?>2、前端播放器的代码,代码可以参考音视频管理-》管理,查看示例代码,直接黏贴过来:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="chrome=1,ie=edge"> <!--[if lt IE 9]> <script src="http://media-cache.huaweicloud.com/video/hwplayer/0.0.6/lib/video-js-5.20.5/ie8/videojs-ie8.min.js?ttl=1828668305"></script> <![endif]--> <script src="http://media-cache.huaweicloud.com/video/hwplayer/0.0.6/dist/hwplayer.js?ttl=1828668305"></script> </head> <body> <video controls id="test" width="480" height="300" class="video-js vjs-default-skin vjs-big-play-centered"> </video> <script> hwplayerloaded(function () { var player = new HWPlayer("test",{ width: 480, height: 300, controls: true },function(){ //播放器加载完成执行的逻辑 }); player.src({ src: "https://613.cdn-vod.huaweicloud.com/asset/0718d0ac220exxxf2cff78df3021fcf8/play_video/11111111111111111111111111111111/add626b8dxxxx46d63498048f3cba3_1_1280X720_1500_0.m3u8", type: "application/x-mpegURL" }); }); </script> </body> 3、phpsdk的引入,在下载sdk解压后,为了减少require_once引入而发生错误,建议根据实际的情况将里面的相对路径改为绝对路径,改的方法很多,可以通过变量等方法。根据华为的开发文档,在init.php文件中填写自己的ak、sk、projectid。 4、以上相关的代码,是没有考虑到租户系统认证的token的代码,这个将在下一篇进行介绍。
-
(转自https://developer.huawei.com/ict/forum/thread-47429.html 感谢@夏佳伙伴的分享)一、PHP调用北向接口认证。证书可以参看:https://bbs.huaweicloud.com/forum/thread-13234-1-1.html 该帖laravel框架guzzle调用示例:备注:client.pem可以使用上贴中密钥和证书的生成二、本地搭建ssl服务器接收平台推送消息(windows环境)1、检查apache的bin目录下是否有openssl2、配置文件中开启ssl在httpd.conf文件中打开下列两项#LoadModule ssl_module modules/mod_ssl.so#Include conf/extra/httpd-ahssl.conf3、自建CA、签发服务端证书a、在apache配置文件夹目录相继建立以下文件夹和文件b、生成CA私钥(在demoCA目录下执行相关命令)openssl genrsa -out cakey.pem 1024c、利用CA的私钥产生CA的自签署证书openssl req -new -x509 -days 365 -key cakey.pem -out cacert.pem -config ..\openssl.cnfd、生成服务器的私钥openssl genrsa -out server.key 1024e、 生成服务器证书签署申请openssl req -new –out server.csr -key server.key -config ..\openssl.cnff、.利用CA为网站服务器签署证书openssl ca -in server.csr -out server.crt -cert cakey.pem -keyfile cacert.pem -config ..\openssl.cnfg、配置服务器ssl访问()配置文件如下:h、利用外网端口代理到本地电脑上实现外网可访问本地网站i、将自建的CA根证书配置到OceanConnection后台即可
-
获取PHP可执行文件,可至官网下载。安装执行文件。Windows操作系统下,将下载的压缩包解压到指定的安装目录。Linux操作系统下需进入已解压文件目录,通过运行./configure --prefix=安装路径进行环境初始化,通过后执行make命令进行编译,最后通过make install完成安装。将PHP的根目录下的php.ini-development或者php.ini-production复制一份并改名为php.ini,作为PHP的配置文件,打开php.ini,修改需要加载的扩展文件。安装PHP开发工具。
-
9月4号后就没有更新,能尽快处理下不?
-
sudo apt-get updatesudo apt-get install nginxsudo killall apache2usrshare/nginx/html,我们将其修改为/var/www,当然可以根据个人习惯灵活更改。etcnginx/sites-available/default文件root /usr/share/nginx/html;root /var/wwwindex index.html index.htm;index index.html index.php index.htm;sudo service nginx restartvarwww目录下新建index.html文件,写入一些测试文字。sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xslsudo apt-get install mysql-server mysql-clientsudo apt-get install phpmyadminsudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadminvarwww,链接名为phpmyadmin的文件,指向/usr/share/phpmyadminsudo apt-get install spawn-fcgietcnginx/fastcgi_params文件,增加下面一行fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;etcphp5/cgi/php.ini文件,将下面一行取消注释cgi.fix_pathinfo=1;etcnginx/sites-available/default文件,我们之前修改的目录地址是/var/www,将1234567891011 #location ~ \\.php$ { # fastcgi_split_path_info ^(.+\\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; #} location ~ \\.php$ { # fastcgi_split_path_info ^(.+\\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; }sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pidspawn-fcgi: child spawned successfully: PID: 11775etcrc.local文件,添加下面一行/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pidsudo service nginx restartvarwww目录下新建index.php文件测试运行,发现已经可以运行PHP文件了。phpmyadmin便可以轻松加愉快地访问了。来源: Ubuntu Linux配置Nginx+MySQL+PHP+phpMyAdmin详细步骤
-
有人的地方就有江湖。有江湖的地方就有厮杀。程序员之间的厮杀,从未停止过!最近程序员鄙视链,刷屏了~ 我相信程序员的内心是这样的: 不是说好了的吗?PHP是世界上最好的语言!翻翻知乎上的讨论:写java的看不起php程序员!用c++的看不起php程序员!会python的看不起php程序员!php拉低了程序员水平!哼! 哼!你敢说C不好?会有人告诉你C语言是计算机世界的基石,地球离开C不行你敢说C++不好?轮子哥第一个不愿意,带着他的五十万信徒给你解释什么叫做 C++ PRIMER 5th强势审校你敢说Java不好?阿里大牛跳出来说整个马云帝国都是建在Java基础上你敢说C#不好?知乎几个大V会拉几篇看不懂的quora文章来告诉你C#在海外发展的多好多好你敢说PHP不好?说就说呗,没人站出来!为什么没人站出来?主要原因是PHP程序员大多在接私活很忙呐!很难接私活的JAVA,C#程序员才会在论坛,qq群,瞎BB!你们说是不是??不过小编最后要说:对于一个真正好的程序员来说,用什么样的编程语言可能决定了技术的学习方向,但是最终,任何语言都仅仅是表达思想的载体。独孤求败的最终境界,摘叶飞花皆可为剑。
-
转码服务的费用包括预付费和按需付费两种方式。预付费适合大批量转码的用户,通过购买转码套餐包,价格更优惠。按需付费更加灵活,根据实际的转码时长,按量扣费。转码套餐包购买转码的套餐包,一次性预付费后,从套餐包内扣除转码时长,具体价格及优惠折扣如下表所示: 说明:1. 套餐包和具体的区域绑定,购买的套餐包只能在绑定的区域使用,不能在非绑定区域使用。2. 计费时优先使用套餐包中的额度,该额度使用完后,按需付费。3. 套餐包使用规则说明:1)套餐支持叠加购买,套餐包的额度为购买之日起12个月内的转码时长。您可以购买多个“有效时长”为12个月的套餐包。12个月到期后,对应的套餐包额度会做清零处理;2)套餐不支持升级、降级。4. H264三种格式HD(分辨率1920 * 1080)、SD(分辨率1280 * 720)和LD(分辨率1280 * 720)转码时长按照3:1.5:1进行折算,即1倍的H264 HD转码时长折算成3倍的H264 LD转码时长,1倍的H264 SD转码时长折算成1.5倍的H264 LD转码时长。套餐包中时长是转码输出分辨率为LD时的时长。例如H264转码为HD的视频时长有10分钟,会扣除套餐包30分钟时长。按量付费您可以根据所需的转码时长,按量付费。· 计费规则:根据不同服务,分为普通转码、高清低码、倍速转码三种计费标准,按照转码输出文件的时长进行计费。· 费用计算公式:转码费用 = 输出文件时长 * 转码单价。· 输出文件时长:对于每个转码输出文件,按分钟计费,文件时长精确到小数点第两位,第二位根据第三位四舍五入。· 计费周期:按小时计费,实时扣费。 计费说明如下表:说明:1. 如需使用倍速转码服务,请提工单申请2. 输出规格按输出视频分辨率的长边或短边属于输出规格划定的范围进行判定,方式如下:以输出SD (1280 x 720) 规格为例,输出视频的长边大于1280且输出视频的短边大于720,该输出视频属于HD规格。输出视频的分辨率长边不大于1280或短边不大于720则属于SD规格。3. 同时开启高清低码和倍速转码的转码单价=高清低码单价+倍速转码单价-标准转码单价如需了解更多
-
11.11之前,先来这里!华为云普惠,超值“6+1”华为云普惠季,11.11提前引爆,震撼全场 11.11一天太短了,来华为云,科技普惠助你上云,狂欢采购30多天,每一个精彩都不会错过。华为云普惠季活动,是华为云在2018年重要的客户服务举措,邀请客户共同体会云计算带来的科技震撼,共同利用科技力量推动社会进步,分享科技红,共同搭乘科技巨舰,驶向未来。 普惠季全攻略,超值“6+1”福利多多,诚意满满。 第一波福利~~1折秒杀云基础产品活动期间每天11点11分,都会推出3+1款基础云产品1折秒杀:3款云服务器产品+1款数据库/安全/域名产品。云基础服务四件套,凑齐就可以轻松搞定通用云服务。快来试试运气做一个条“云锦鲤”吧。①主机折扣为1.1折,秒杀时间10.15-11.20:1C1G 3个月 21.11元2C4G 3个月 61.11元4C8G 3个月 111.11元②数据库产品,秒杀时间 10.15-11.192C4G 100G 主备,1个月,224.元③漏洞扫描产品1折,秒杀时间11.20-11.24专业版一次,9.9元④域名0.18折,秒杀时间11.25-11.30com/net/cn 1.1元 第二波福利~~~~注册就送价值万元产品红包,雨露均沾,人人不落空注册送11111元礼包,共12张代金券3张新购券(价值9336元),3张续费/升级券(价值1725元),6张域名产品券(价值50元)可用于云服务器、数据库、主机安全、CDN、存储等爆款云产品,快来领券享福利吧! 第三波福利~~~~~买主机就送大礼,价值2065元!6件产品等你领,教你用,保安全还巨省钱!买主机>0元,云监控服务、主机安全服务1年、华为云学院微认证>500元,云监控服务、主机安全服务1年、华为云学院微认证、1200元(满2000可用)优惠券>1000元,云监控服务、主机安全服务1年、华为云学院微认证、1200元(满2000可用)优惠券、漏洞扫描1次(价值99元)、MySQL 2C4G 1个月(价值491元)此处剧透:赠送的华为云学院微认证课程,分别为《车联网大数据驾驶行为分析》和《一分钟自动化部署》,价值100+元! 第四波福利~~~~消费有礼,Mate20大奖等你拿用户参与活动期间内全网新购消费即可参与抽奖,奖池内含Mate20手机、Mate20优购码、华为M5平板、vmall多张不同面额代金券、华为云无门槛代金券。100%中奖,就怕你不抽! 第五波福利~~~~~消费满额送大礼,买够就送,100%有礼,手机、平板和耳机一个都不少新下单买满6111,可送华为降噪耳机,新下单买满11111元,送荣耀畅玩平板新下单买满61111元,送P20新下单买满111111元,送Mate 20。买满就送,不存在漏奖,有钱就是任性! 第六波福利~~~~16+云产品,百余种规格,最低只需要0.35折 除了可以独享这6波福利以外,如果推荐朋友注册并购买华为云产品,即得10%现金返利,最高可得10000元哦 点击活动链接:http://t.cn/E734pGo,上云就是这么简单~~~
-
由Websof9提供的phpStudy镜像是一个预安装环境,可在ECS上一键安装。phpStudy是一个PHP环境集成包,支持php5.2到7.0多个版本切换,同时支持Apache,Nginx,IIS产品亮点● 基于phpStudy集成包制作,无任何冗余组件,代码纯净、稳定可靠● 支持Apache+Nginx+LightTPD+IIS等Web服务器,支持php5.2/php5.3/php5.5/php7.0自由切换● 全部通过图形化界面实现,配置和管理多个网站、配置域名、管理服务、管理端口等● 内置Websoft9自主研发的9panel运维面板,帮助您快速掌握程序安装和运维工作产品说明phpStudy StackWebsoft9提供的phpStudy适用于在Windows下快速的安装部署PHP应用程序,省去繁琐的配置工作,事半功倍。phpStudy是一个PHP环境集成包,支持Apache+Nginx+LightTPD+IIS等Web服务器,支持php5.2/php5.3/php5.5/php7.0自由切换。全部通过图形化界面实现,配置和管理多个网站、配置域名、管理服务、管理端口等组件phpStudy2017,php5.2/5.3/5.4/5.5/5.6/7.0,mysql5.5.53,Apache2.4.12,Nginx,phpMyAdmin,9panel免费使用
-
从“刷屏”谈起2018年的《中国互联网络发展状况统计报告》指出,网络娱乐类业务已“进入全面繁荣期”,网络直播用户规模的年增长率最高,达到了22.6%,其中游戏直播用户规模增速达53.1%,真人秀直播用户规模增速达51.9%。互动直播从2010年兴起至今,用户量已迅速增长至4亿以上,相当于全国平均每两个网民中,就有一个是直播用户。虽然近几年才爆火,但其实“直播”一直十分贴近人民群众的生活,只不过以前它长这样:图片来源:中央新闻联播网站现在可能长这样:显然,可互动是当前网络直播最明显的特征。互动直播主要形式有:• 泛娱乐直播:主播与观众交流互动,带有较强的情感色彩与社交属性;• 游戏直播:主播通过评论、弹幕等方式与用户实时交互,以游戏内容直播为主;• 垂直直播:目前主要有“电商直播”、“旅游直播”、“财经直播”等形式;• 版权直播:电视直播、活动直播等,属于较为传统的直播类型。无论哪种互动直播形式,“弹幕”总是观众与主播互动的主要方式。既然是互动,就必须要关注实时性和稳定性。一方面,弹幕响应过慢或是无法发出,都会让观众的互动体验大打折扣;同时,由于互动直播间不设人数上限且社交属性强,大量观众集中在短时间内发送弹幕是常态,服务端网络需要经常承受流量洪峰。简单做一个测算单个直播间内100,000观众同时在线,每个观众屏幕的弹幕峰值为50条/秒,则服务端需要推送的弹幕流量为5,000,000条/秒,这样的流量洪峰不仅考验网络的转发能力及带宽,对服务器的CPU和内存也会造成相当大的压力,更不用说现在同时在线人数甚至能到百万、千万级别。要在如此大规模并发的压力下保证流畅的用户体验,目前流行采用内存型数据库这类中间件加速数据读写,其中又以Redis最为流行。比如主播“秀操作”的场景,此时不仅会激起弹幕浪潮,观众还会双击点赞,怒发评论,顺便走一波关注,甚至礼物火箭送起来,这就涉及到短时间内刷新大量用户关注列表、积分,直播间的评论、订阅数等信息。传统数据库将数据存放于磁盘,在高并发情景下,应用会频繁地从磁盘中读写成千上万条数据,这会导致数据库性能大幅下降。相比之下,内存数据的读写速度要高出几个数量级,效率一般能提高10倍以上。同时,Redis还可以作为“缓冲带”,防止瞬间大量的请求冲垮后端数据库。这时一定有同学想问:那Redis的性能与什么相关?Redis本身的调优很重要,同时,中间件的性能与基础设施,也就是云服务器直接相关,云服务器的CPU以及网络转发能力都会直接影响Redis的性能发挥。除了交互实时性,直播流畅度也是用户体验的关键指标。影响流畅度的因素很多,关键在以下3个方面:内容分发网络,也就是CDN的质量;网络传输协议的选择;云服务器端视频转码的效率。第二点对于云平台的用户来说一般是不可见的,而CDN与云服务器则由用户选择。对于CDN,节点数和覆盖面积是关键,覆盖面积足够广阔,才能解决分布不均的终端用户就近接入的问题。对于负责视频转码的云服务器,CPU能力是关键,尤其需要关注单核、多核浮点运算能力。为了提升观影质量、节约带宽成本,直播平台需要应用画面增强、回音消除、窄带高清等技术,其中涉及到的算法,加上多路转码本身的运算量,对云服务器CPU性能提出很大的挑战。在业务高峰期,云服务器CPU利用率经常会冲到90%以上,往往需要通过堆机器来解决。因而转码这一步可能会成为观影流畅度的瓶颈。结论总体来看,云服务器的CPU能力、网络转发能力以及网络带宽是直播行业用户最需要关注的。同时直播行业对计算、网络资源需求量大,成本是另一个考量关键。企业选择云服务器具体实例时,需要综合考虑。得益于处理器平台的升级,华为云C3云服务器能够提供更高效的编解码服务,以强大性能保证码流的稳定输入输出。另一方面,由于配置了较上一代提升80%的带宽资源,华为云C3云服务器可以提供多一倍的连接支持数,让直播平台能够以更低成本覆盖更多观众,综合效能同样获得了200%的提升。“直播业务近几年的发展是井喷式的。当前直播观众基数大,对流畅度、清晰度要求也比较高,我们原有基础设施的编解码能力、网络带宽、网络质量很快达到了瓶颈。我们是抱着很大期望将云服务器升级为C3的,而且也没有失望:平均下来,单台C3支撑的用户数比之前翻了倍,而且对直播画质、流畅度的投诉也呈现下降趋势。”——某直播客户C3已经如此强劲,还可期待更多?随着各类互联网业务用户基数的飞涨,以及人们对体验要求的日益提高,这些业务对云网络转发性能或带宽的诉求日益凸显,典型场景如:电商秒杀、游戏加速、电信转发、视频直播以及大数据等等,比如前不久的世界杯揭幕战,单直播平台收看人数就超过了千万。而就在近日,华为云正式上线公测全新网络增强型系列实例,网络转发性能提升3倍以上,直达千万级!业界领先的网络性能,轻松应对高并发场景,支撑更大规模业务量,同时解决丢包、性能波动问题,带来极致网络体验!本文转自https://bbs.huaweicloud.com/blogs
-
有没有PHP方面的对象存储的资料或者案例
-
有php的么
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签