black

IOS端直播技术分析和实现

戏子无情 提交于 2020-08-10 09:05:52
HTTP Live Streaming ( HLS )是苹果公司 (Apple Inc.) 实现的基于 HTTP 的流媒体传输协议,可实现流媒体的直播和点播,主要应用在 iOS 系统,为 iOS 设备(如 iPhone 、 iPad )提供音视频直播和点播方案。 HLS 点播,基本上就是常见的分段 HTTP 点播,不同在于,它的分段非常小。要实现 HLS 点播,重点在于对媒体文件分段,目前有不少开源工具可以使用。图玩智能科技为企业提供专业的直播技术支持,提供直播平台的二次开发服务,欢迎随时咨询 www.toivan.com 。   相对于常见的流媒体直播协议,例如 RTMP 协议 、 RTSP 协议、 MMS 协议等, HLS 直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。 HLS 协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件( MPEG-TS 格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此可见,基本上可以认为, HLS 是以点播的技术方式来实现直播。由于数据通过 HTTP 协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。不过 HLS 的这种技术特点

用js制作简易计算器

霸气de小男生 提交于 2020-08-09 22:37:05
做一个简易计算器,效果图片 c表示清空,为一个空字符串 +/-表示该值为正还是负 %表示当前值/100 ←表示退格,往前删除一个值 eval 函数是能够计算出字符串表达式或者语句的结果,把结果求出来。 代码如下 <! DOCTYPE html > < html > < head > < meta charset ="UTF-8" > < title ></ title > < style type ="text/css" > #div1 { margin : 20px auto ; width : 420px ; height : 490px ; background-color : #E8E8E8 ; border : 1px solid #ccc ; border-radius : 5px ; } .div2 { width : 410px ; height : 60px ; border : 1px solid #ccc ; margin : 5px auto ; border-radius : 5px ; text-align : right ; font-size : 30px ; background-color : white ; padding-top : 10px ; } .div3 { width : 410px ; height : 60px ; margin

大话成像视频教程第一套1~12集笔记

混江龙づ霸主 提交于 2020-08-09 20:14:05
大话成像视频教程第一套 Maver Jiang 高思成像科技 1 数字成像系统概论 成像系统组成 光源 光学 机械 半导体 处理器 两条基本主线 图像重建 色彩重建 颜色科学 成像系统的实时控制——3A 系统的静态参数 自动曝光 自动对焦 自动白平衡 系统的动态参数 同样价格产品,每个厂家拿到的东西都差不多,但是如果想效果好,需要在软件上调。 成像系统仿真 实时仿真系统 离线仿真系统 成像系统的评价 系统延迟 图像质量 公司 Image Engineering DxOMark imatest 2 CMOS sensor基础 构造 sensor floorplan 光遮断 Optical Black Active Pixels/Driver 光子(Photon)与量子效率 QE(quantum efficiency):量子效率。 QE衡量某个颜色通道某个频率/波长的光子转换成电子的效率。 IR cutter——cut near IR Crosstalk:R/G/B通道的感光分开最好。 Sensitivity 感光度=QE x Pixel_Size 感光过程 充电——reset 感光 放电 读取过程 E->V —— Analog Gain放大 —— ADC Total_time = reset_time + exposure_time + readout_time Sensor动态范围

Deno 页面渲染

▼魔方 西西 提交于 2020-08-09 14:26:36
#Deno 页面渲染# 视频讲解 https://www.bilibili.com/video/BV1BT4y1E7Nh/?p=2 我们一起来完成以下步骤: [X] 1. 首先来了解一下支持页面渲染都有哪些组件: NO Name Star A Denjucks 13 B Ejs 4.5K C Handlebars 15.4K 我们今天要学Ejs模板引擎入门。其他两个如法炮制 [X] 2. 创建Controller [X] 3. 创建Router [X] 3. 创建页面index.ejs [x] 4. 创建主应用文件main.ts [X] 5. 测试 #controllers/controller.ts const { cwd } = Deno; class Controller { static async getData(ctx: any){ //cwd获取当前工程目录 //注意 ' !== ` ctx.render( ` ${cwd()} /views/index.ejs` ,{ title : "Testing" , data :{ name : "deepincoding.com" } }); } } export default Controller; #routers/index.ts import { Router } from "https://deno.land

前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第5章CSS盒子模型

风格不统一 提交于 2020-08-09 12:03:18
本教程案例在线演示 有路网PC端 有路网移动端 教程配套源码资源 教程配套源码资源 div div 可定义文档中的分区(division)。 div 标签可以把网页分割为独立的、不同的部分。 可以看成以下结构: div不像 h1,p标签,没有任何默认样式,其主要作用是标识网页上的某块区域。常见做法是通过给div元素加上id或class,然后通过css选中某个div,对其进行样式美化。 <div class="demo">我是一个div</div> <style> .demo{ color:red; font-size: 20px; } </style> 每个div可以看成一个盒子 一个盒子中主要的属性有5个:width、height、padding、border、margin。如下: width:内容的宽度。CSS中 width 指的是内容的宽度,而不是盒子的宽度。盒子的宽度=内容宽度+padding+border height:内容的高度。CSS中 height 指的是内容的高度,而不是盒子的高度。盒子的高度=内容高度+padding+border padding:内边距。 border:边框。 margin:外边距。 元素宽高 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title<

使用WindowManager添加View——悬浮窗口的基本原理

喜欢而已 提交于 2020-08-09 11:07:12
Android系统中的“窗口”类型虽然很多,但只有两大类是经常使用的:一是由系统进程管理的,称之为“系统窗口”;第二个就是由应用程序产生的,用于显示UI界面的“应用窗口”。如果大家熟悉WindowManagerService(窗口管理机制WMS)的话,那么一切都很简单。它是一个负责统筹管理所有窗口的一个服务,从始到终一直在运作。之所以扯上WMS,因为它才是大Boss,所有的窗口变化都要通知到它。而WindowManager虽然与它没有之间的关系,但是对它负责,所有信息会经过一定的途径传回到WMS中。 额,跑题了,我们说的是WindowManager,它是一个接口类,它可以实现对view的管理,包括增加,更新和删除。 一、 WindowManager 获取WindowManager wManager = (WindowManager) getApplicationContext().getSystemService( Context.WINDOW_SERVICE); 在Activity和Service中都可以直接使用这个方法来获得WindowManager。其getSystemService返回的是一个WindowManagerImpl对象,这是一个存在于本地进程中的一个对象。而事实是WindowManagerImpl继承了WindowManager

2020上半场已结束,揭露上半年瞄准PC端目标的十大“危险分子”

柔情痞子 提交于 2020-08-09 09:57:04
时至7月,2020年上半年已告一段落。2020年,这个本该寄托无数憧憬的年份,却因一场席卷而来的疫情危机的到来而全球震荡。流年不利、人心惶惶,这些糟糕的词语已经无法准确描述这场疫情为全球人民生活造成的灰暗。 伴随着疫情夜幕的降临,生活在黑暗中的生物们也相继“苏醒”。勒索病毒、蠕虫木马、钓鱼邮件,横向渗透、变形虫攻击等黑客攻击如同洪流般裹挟泥沙席卷而来,各路玩家粉墨登场。在疫情的掩护下,将人们本已步履维艰的生活搅乱的更加浑浊。 360 安全大脑对上半年全球范围内针对PC端异常活跃的十大网络攻击威胁,包括疫情下流行病毒的趋势,以及伴随疫情出现的全新攻击面和攻击技术进行了梳理和总结,以此提醒广大企业和个人用户提高警惕,未雨绸缪而有备无患。 Top1 、勒索病毒独占鳌头 进入2020年,发展迅猛的勒索病毒没有丝毫放缓脚步,以更加来势汹汹的态势在全球横冲直撞“所向披靡”。在GandCrab家族一年半内赚下20亿美金的鼓舞下,上半年间,花样繁多的勒索病毒大有星火燎原之势,如同早已约定好上台表演次序一般,你方唱罢我登场,几乎每周都有勒索病毒“新起之秀”亮相,在广大用户身上刮下一层“油水”后,乘兴而来乘胜而归。 2020 上半年勒索病毒花样频出 上半年中占比最高的勒索病毒增长趋势图 2020 年上半年,勒索病毒繁多的变种更加趋于常态化,新型勒索病毒越演越烈的增长态势也愈发不可收拾。近两年来

Python笔记:用read_html()爬取table形式表格的网络数据

丶灬走出姿态 提交于 2020-08-09 05:29:02
不少对爬虫有所了解但却不会的人应该会知道,爬虫功能非常强大,但却不是太好学!但是,pandas中的 read_html() 用于抓取 Table表格型数据 时,简直是个神器。不信?我小露一手给你们看。 针对网页结构类似的表格类型数据, pd.read_html() 就派上了大用场了,它可以将网页上的表格都抓取下来,并以 DataFrame 的形式装在一个列表中返回。具体是这么个流程: 网页URL→发送请求→网站→返回→ DataFrame 先介绍一下 read_html() 的一些主要的参数 read_html io :str or file-like 接收网址、文件、字符串。网址不接受 https ,尝试去掉 s 后爬去 header :int or list-like or None 指定列标题所在的行 attrs : dict or None, optional 传递一个字典,用其中的属性筛选出特定的表格 parse_dates :bool 解析日期 接下来以爬取新浪财经的基金重仓股为例演示一下,URL为: http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p=1 这部分有6页,点击不同的页数可以发现,请求URL主要是 p 参数在变动, p=n 代表了第 n 页

Deno 加载依赖包出错

我的未来我决定 提交于 2020-08-09 02:51:26
视频讲解 https://www.bilibili.com/video/BV1qK4y1x7VG/ 在开发过程中,经常遇到DNS解析域名错误的问题。导致js依赖包没法下载 我们一起来完成以下步骤: 先来发现问题 域名是否能访问? 解析域名(https://www.ipaddress.com/)的IP。在没有使用 openssl 或 shadowsocks 情况下是否能ping通 修改Hosts文件(C:\Windows\System32\drivers\etc) 再重新run一下应用 #main.ts import { Application, Router } from "https://deno.land/x/oak/mod.ts" ; const router = new Router(); const app = new Application(); router.get( "/" ,(ctx) =>{ ctx.response.body= "Hello World " ; }) app.use(router.routes()); app.use(router.allowedMethods()); await app.listen({ port : 8000 }); 完 来源: oschina 链接: https://my.oschina.net/u/3270570

java内存模型

寵の児 提交于 2020-08-09 02:23:34
注意区分java内存模型(JMM)和java内存结构或者叫内存布局的区别。JMM决定一个线程对共享变量的写入时,能对一个线程可见。内存结构见: https://my.oschina.net/uwith/blog/3110227 为什么有线程安全问题? :当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 什么是多线程之间同步? :当多个线程共享同一个资源,不会受到其他线程的干扰 为什么使用线程同步或使用锁能解决线程安全问题呢? :将可能会发生数据冲突问题(线程不安全问题),只能让当前一个线程进行执行。代码执行完成后释放锁,让后才能让其他线程进行执行。这样的话就可以解决线程不安全问题。 静态同步函数使用当前class字节码文件,如下代码所示。 // 这种静态方法加锁的对象其实就是本类的字节码文件 public static synchronized void testMethod () { } public void testMethod ( String data) { // 这个加锁的东西其实是和上面的静态方法锁对象是一样的。 synchronized ( MyClass . class ){ } } 多线程特性: 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断