CDN的计费方式有两种,一种是按带宽计费,一种是按流量计费,有些小伙伴在使用的时候对于该选择带宽还是流量计费总是模棱两可,所以,本篇就来说下带宽计费和流量计费的差异和转换方式。 差异 首先通过单位来区分流量和带宽,比如带宽的单位通常是Mbps(兆比特/秒),而流量的单位是MB(兆字节),简单来看,带宽指的是一种传输速度,而流量是一种传输数量。 这里要强调一下上面的两个单位: 带宽单位:Mbps=Mbit/s(bit是比特) 流量单位:MB=MByte(byte是字节) 了解单位以后,我们来做个计算,假如我开通了10Mbit/s带宽,问在100%使用的情况下,一个月(30天)能跑出多少流量? 怎么算呢?按下面的换算方式 (1 MB = 1024 KB) (1 GB = 1024 MB) (1 TB = 1024 GB) 有人可能会这样算: 10Mbps = 10MB/秒,1天能产生的流量=24小时 * 3600秒 * 10MB=843.75GB,一个月的总流量就是24.72T。 问这里算出来的数字对吗?答案是不对,因为10Mbps ≠ 10MB/秒,为什么呢? 再来看下换算: (1 Byte = 8 Bit) 从这个单位换算可以看出,1 Byte = 8 Bits,也就是说,1Bits=0.125Byte, 所以,10Mbps=10Mbit/s=1.25MB,而不等于10MB/秒。 这个时候我们再来算下10Mbit/s带宽,在100%使用的情况下,一个月(30天)能跑出的流量: 10Mbps = 1.25MB/秒,1天能产生的流量=24小时 * 3600秒 * 1.25MB=105.5GB,一个月的总流量就是3.09T。 结论 带宽和流量之间模棱两可的主要原因就在单位上,很多人会误以为10兆(Mbps)的带宽就意味着每秒产生10M流量,但实际上,Mbps的意思是兆比特每秒,而1 Byte(字节) = 8 Bit(比特),反过来 1Bit(比特)=0.125 Byte(字节),由此我们得出: 10Mbps = 1.25MB/秒 在没弄清这个之前,我也是觉得按10Mbps = 10MB/秒来测算带宽对应流量的差距不会很大,但弄清后,你会发现这个差距还是比较大的。 10Mbps = 10MB/秒,1天能产生的流量=24小时 * 3600秒 * 10MB=843.75GB,一个月的总流量就是24.72T。 10Mbps = 1.25MB/秒,1天能产生的流量=24小时 * 3600秒 * 1.25MB=105.5GB,一个月的总流量就是3.09T。 一个是24.72T,一个是3.09T,相差21.63T。 应用 说完它们之间的差异,再来回答一下题目的问题:CDN适合带宽计费还是流量计费呢? 举个例子,假设我有个网站,就一个页面,这个页面上有100M的图片和10G的视频,即这个页面的数据为100M+10G=10.1G,每访问一次这个页面,将产生10.1G的流量。 然后再假设这个网站每天固定有100人访问,那每天产生的流量就是1T,每个月(30天)的流量就是30T,问如果用CDN做加速,是选流量计费还是带宽计费呢? 先来看下融合CDN厂商猫云的报价。 […]
View DetailsChimee是由奇舞团开源的一套H5视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造。Chimee支持MP4、M3U8、FLV等多种媒体格式,同时它也帮我们解决了大部分的兼容性、差异化问题,包括全屏、自动播放、内联播放、直播解码等常见媒体播放需求。 通过便捷的可热插拔的插件开发,能满足业务方快速迭代、灰度发布等要求;让开发者能够更轻松快捷地完成不同业务场景下UI、广告等各种功能需求的开发。 在线演示 免费下载 from:https://www.cnblogs.com/lhb25/p/chimee-h5-video-player.html
View DetailsHLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。 常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的是用 HTTP 渐进下载方法。在这个中 apple 公司的 HTTP Live Streaming 是这个方面的代表。它最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的流.现在见到在桌面也有很多应用了,HTML5 是直接支持这个。 但是HLS协议的小切片方式会生成大量的文件,存储或处理这些文件会造成大量资源浪费。如果要实现数天的时移,索引量将会是个巨额数字,并明显影响请求速度。因此,HLS协议对存储I/O要求相当苛刻。对此,也有公司提出了非常好的解决方案。 新型点播服务器系统,独创了内存缓存数据实时切片技术,颠覆了这种传统实现方法,从根本上解决了大量切片的碎片问题,使得单台服务器的切片与打包能力不再是瓶颈。其基本原理如下: 不将TS切片文件存到磁盘,而是存在内存当中,这种技术使得服务器的磁盘上面不再会有“数以吨计”的文件碎片,极大减少了磁盘的I/O次数,延长了服务器磁盘的使用寿命,极大提高了服务器运行的稳定性。同时,由于使用这种技术,使得终端请求数据时直接从服务器的内存中获取,极大提高了对终端数据请求的反应速度,优化了视频观看体验。 from:https://baike.baidu.com/item/HLS/8328931
View Details这几天由于工作中要搭建视频点播平台,分析了一下当前主流视频网站采用的技术。主要分析了腾讯、优酷、土豆、爱奇艺这几个平台,他们采用的技术却惊人的相似。全都是采用m3u8这样的解决方案,视频分成小段,方便在网络中的快速传输。也能防止非技术人员的下载~~,如果真正意义上的防下载,几乎是不可能的,尤其是基于H5的技术。 虎牙直播用的也是m3u8的解决方案,有一些延迟,不过可以接受。斗鱼用的渐进时流的推送,但直播结束时应该也是可以保存起来的。 不过话又说回来,点播和直播的意义并不防下载,这个防下载还应该以知识产权相关的法律去保障,同时培养公民尊重知识产权。 扯远了,说说m3u8解决方案用的具体细节吧: 1.首先m3u8来自Apple公司的HLS( HTTP Live Streaming 是Apple的动态码率自适应技术)。 2.动态解码,或者说分段可以用开源软件FFmpeg,功能相当强大。网址:http://ffmpeg.org/ 3.播放器就用简单易用的Chimee,免费哦。网址:http://chimee.org/ 当然也可以用收费的flowplayer,都有H5的解决方案。网址:https://flowplayer.com/
View Details参考 ffmpeg常用命令 ffmpeg参数中文详细解释 [总结]FFMPEG视音频编解码零基础学习方法 一、安装 打开https://ffmpeg.zeranoe.com/builds/,该网站中的FFMPEG分为3个版本:Static,Shared,Dev。 前两个版本可以直接在命令行中使用,他们的区别在于:Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。Shared里面除了3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe之外,还有一些Dll,比如说avcodec-54.dll之类的。Shared里面的exe体积很小,他们在运行的时候,到相应的Dll中调用功能。Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文件xxx.h,这个版本不包含exe文件。 这里下载了static版本,是个zip压缩文件,解压到指定目录,去配置环境变量,比如e:\ffmpeg20180919\bin,这样bin下面的ffmpeg.exe就可以在命令行中使用了,可以用ffmpeg -version测试一下: image.png 放一个mp4视频,然后把声音提取到output.acc,用命令测试一下:ffmpeg -i mov_bbb.mp4 -acodec copy -vn output.aac 二、常用命令 主要参数:
1 2 3 4 |
-i 设定输入流 -f 设定输出格式 -ss 开始时间 |
视频参数:
1 2 3 4 5 6 7 |
-b 设定视频流量(码率),默认为200Kbit/s -r 设定帧速率,默认为25 -s 设定画面的宽与高 -aspect 设定画面的比例 -vn 不处理视频 -vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 |
音频参数:
1 2 3 4 5 |
-ar 设定采样率 -ac 设定声音的Channel数 -acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器 -an 不处理音频 |
1. 视频格式转换 (其实格式转换说法不太准确,但大家都这么叫,准确的说,应该是视频容器转换) 比如一个avi文件,想转为mp4,或者一个mp4想转为ts。 ffmpeg -i input.avi output.mp4 ffmpeg -i input.mp4 output.ts 插个号外:某天我在知乎上看到一段视频,想转给微信好友看,怎么操作呢。这里参考如何全自动下载知乎上的视频到本地(注意不要滥用),先打开要观看的视频页面,再F12清空,然后开始播放视频,就能看到类似https://vdn.vzuu.com/SD/49c84c7c-c61a-11e8-8bad-0242ac112a0a.mp4?auth_key=1539832492-0-0-c61c22f39c&expiration=1539832492&disable_local_cache=1这样的字符串,然后用ffmpeg -i "https://vdn.vzuu.com/SD/49c8…" output.mp4即可下载。弄到电脑上,用电脑QQ发送到手机QQ上,在手机QQ上点击选择保存到手机上。然后在微信里选照片就能看到这个视频了(注意视频文件不要超过20M,另外最开始用的不是电脑QQ,而是百度网盘,发现不行……)。 2. 提取音频 比如我有一个“晓松奇谈”,可是我不想看到他的脸,我只想听声音, 地铁上可以听,咋办? ffmpeg -i 晓松奇谈.mp4 -acodec copy -vn output.aac 上面的命令,默认mp4的audio codec是aac,如果不是会出错,咱可以暴力一点,不管什么音频,都转为最常见的aac。 ffmpeg -i 晓松奇谈.mp4 -acodec aac -vn output.aac (-vn 不处理视频 ) 3. 提取视频 我目测有些IT员工,特别是做嵌入式的,比如机顶盒,想debug一下,没有音频的情况下,播放一个视频几天几夜会不会crash,这时候你需要一个纯视频文件,可以这么干。 ffmpeg -i input.mp4 -vcodec copy -an output.mp4 -an 不处理音频 4. 视频剪切 经常要测试视频,但是只需要测几秒钟,可是视频却有几个G,咋办?切啊! 下面的命令,就可以从时间为00:00:15开始,截取5秒钟的视频。 ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy […]
View DetailsVue安装sass的命令: 1、npm install node-sass --save-dev 2、npm install sass-loader --save-dev 在进行第一步的时候,我们会发现用报了下面这个的错,在百度一下问题的时候,发现原因是: 首先要知道的是,安装 node-sass 时在 node scripts/install 阶段会从 github.com 上下载一个 .node 文件,大部分安装不成功的原因都源自这里,因为 GitHub Releases 里的文件都托管在 s3.amazonaws.com 上面,而这个网址在国内总是网络不稳定,所以我们需要通过第三方服务器下载这个文件。 解决方法: 1、首先安装淘宝镜像
1 |
$ npm install -g cnpm --registry=https://registry.npm.taobao.org |
2、 用cnpm重新安装一次 cnpm install node-sass --save-dev cnpm install sass-loader --save-dev 这样就可以把问题解决了(^_^) from:https://blog.csdn.net/lgysjfs/article/details/83039906
View Details首先我们得下载一个druid-1.0.16.jar的包 其次键入命令 java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools your_password 这时候会生成privatekey,publickey,以及password,相关的截图如下 注意1:如果使用的不是druid-1.0.16.jar可能只会生成一个password。 注意2:如果没配置好,可能会报一大推奇奇怪怪的错误,比如:org.springframework.beans.factory.BeanCreationException: Error creatingbean with name 'shiroFilter':…. 配置Druid解密数据库密码 jdbc.type=mysql jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/jesng?useUnicode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=IVpkS/WvZQKLcm4+f7xlLFo5FzxGIj3O1br9TcvLlq2a17mmt0SWe9Qq1hyVKsnbsRdU6FKTItc6vVIF9RRpTw== jdbc.publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKYBLQ067pCDwEfysD6rAIWZD4C2K7BO09NFYMmA+VD4i+28znGk9F3w3uCFp6vYf633rPJpx+hoHU/+9gBIewUCAwEAAQ== 配置Druid解密数据库密码的主要新增的两行配置。 1、<property name="connectionProperties" value="druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${jdbc.publickey}"/> 作用:配置ConfigFilter解密密码 ,注意出的publickey对应 2、<property name="filters" value="config" /> 作用:提示Druid数据源需要对数据库密码进行解密 from:https://www.cnblogs.com/xiaohu1218/p/7791986.html
View Details1.idea 初始配置的tomcat7,配置spring boot项目启动失败,单个controller都启动失败,原因是idea内置tomcat7,会失败 2.idea需要配置tomcat8.然后加载依赖关系 a. idea项目左上角,file-->project structure 配置依赖 b.点击libraries 右侧有一个加号点击然后添加 c.找到tomcat lib文件夹,依赖lib文件夹即可 from:https://blog.csdn.net/qq_33919114/article/details/79232774
View Details发现项目中存在 X-Frame-Options 低危漏洞: 使用 X-Frame-Options X-Frame-Options 有三个值: DENY 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 SAMEORIGIN 表示该页面可以在相同域名页面的 frame 中展示。 ALLOW-FROM uri 表示该页面可以在指定来源的 frame 中展示。 换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。 另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。 配置 Apache 配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中:
1 |
Header always append X-Frame-Options SAMEORIGIN |
配置 nginx 配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:
1 |
add_header X-Frame-Options SAMEORIGIN; |
配置 IIS 配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中:
1 2 3 4 5 6 7 8 9 10 11 |
<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer> |
配置 TOMCAT “点击劫持:X-Frame-Options未配置” 因为项目使用的是tomcat服务器,我们不可能在每个页面去添加:
1 |
response.addHeader("x-frame-options","SAMEORIGIN"); |
因此我们使用过滤器,代码如下:
1 2 |
HttpServletResponse response = (HttpServletResponse) sResponse; response.addHeader("x-frame-options","SAMEORIGIN"); |
通过以下配置,好像就没有在扫描出来该漏洞信息。 你配不上自己的野心 也辜负了所受的苦难 from:https://www.cnblogs.com/wdnnccey/p/6476518.html
View Details删除保存在本地的git账户
1 |
git credential-manager uninstall |
缓存账户
1 |
git config --global credential.helper wincred |
from:https://blog.csdn.net/big_sea_m/article/details/85341821
View Details