IceSandwich

IceSandwich

have a nice day.

PR使用FFmpeg作为编码器
前言 一直以来都不喜欢Adobe的Media Encoder,渲染的文件贼大,字幕又不好加。最近在开发blender的插件,看能不能将blender改成像pr那样的剪辑方式。无论如何,如果PR能使用FFmpeg作为编码器就好了。这不,还真给我找到了方法。首先,当然有前人的成功才有我的可能。搜索这方面的文章,很快就能看到官方的一篇文章,介绍给PR使用FFmpeg的。其中,我们使用的是FrameServer的方法。 问题是嘛,这个文章是6年前发布的,老到掉牙!很多软件还是32位,而且已经不更新了。这些软件不是不能用,只是,64位系统用32位的软件,性能有点缩水。。。于是又经过了一番搜寻,我终...
将虚拟机localhost端口转发到宿主机上
前言 我有一个软件在虚拟机里,监听一个端口。我想在宿主机上能访问这个端口,显然,一个端口转发就能解决的事情。但是,我发现事情没那么简单。因为,这个软件太狡猾了,它的端口规定必须是在回环地址127.0.0.1上,改成0.0.0.0会阻止你进一步的操作。接下来,就要将这种不可能的事情实现。 准备 已知软件开放地址: 127.0.0.1:49158 需要在虚拟机转发到的地址: 0.0.0.0:49158 需要在宿主机能访问的地址:127.0.0.1:49158 虚拟机 前面我们提到,只要端口挂载在0.0.0.0上,就可以用端口转发完成。那么端口在127.0.0.1上呢?是不是也可以用端口转发将...
安装pytorch
前言 近期需要使用pytorch,安装后发现没有检测到我的gpu,用conda list看,果然是安装了cpu版本。于是把原来的pytorch卸载掉,再装GPU版本的pytorch,没想到历程如此艰难。 准备 cuda、cudnn什么的就不说了吧,这个网上一堆教程。anaconda创建环境也不说了吧,本文主要说一下坑。 目标 我要装的pytorch: torch==1.5.0 torchvision==0.6.0(这个可以去https://pytorch.org/get-started/previous-versions/看) cudatoolkit==10.2 你很快能在官网上得到安装...
Arduino IDE开发ESP8266模块
材料 模块:ESP8266-01 烧录器:USB转TTL 软件:Arduino IDE 1.8 Arduino IDE支持ESP8266 方法一:通过Arduino下载(网络非常慢) 文件->首选项,找到"附加开发版管理器网址",填入http://arduino.esp8266.com/stable/package_esp8266com_index.json 然后在 工具->开发板->开发板管理器 中搜索esp,找到esp8266 by ESP8266 Community,安装即可。 方法二:Git(结合Gitee) 进入目录Arduino安装目...
线性时间排序
前言 快速排序的时间复杂度为$O(n*log(n))$ ,但是对于一些简单的排序来说,这个代价未免有点高。过去我们在算法:排序(一)和算法:排序(二)讨论了几个排序算法,都是基于比较的排序。其实还有一些不是基于比较的排序,能够实现复杂度为$O(n)$的排序。 计数排序 既然不是基于比较的排序,那是基于什么呢?答案是:频数表。 举个栗子,我们有数组 2,5,3,0,2,3,0,3 ,对它作频数表,然后对频数表作积分表,称之为分布表(关于积分表,详看 积分表和差分表的使用) 频数表如何得到?横坐标为数组中所有出现过不重复的数字,对每个x值,纵坐标就是x在数组中出现的次数。比如,当x=2时...
优先级排序
前言 优先级排序是根据优先级对数组进行排序而非对数组的值排序,这不是什么新颖的排序。 比如:数组A = { 1, 2, 3, 4 },优先级P = { 36, 3, 62, 19 };优先级越小就排在越前面,比如优先级中3最小,对应的数字是2,则2排在最前面。优先级中第二小是19,对应的数字是4,因此排序后第二个元素为4。依此类推,得到排序 { 2, 4, 1, 3 }。 方法一 vector+pair组合排序 注意的是vector排序是按照pair的first排序的,因此我们要将优先级放到first,将值放到second,让std::sort顺手牵羊。 1234567891011121...
积分表和差分表的使用
先上一张图,一目了然 积分表 一个一维数组A,创建一个同长度的数组Integral,有: $$Integral[n] = \sum_{i=0}^n A[n]$$ 可以看到,积分表就是把前n个数加起来,这有什么好处呢? 积分表的几个特征: 积分表中两数之差,等于原数组相应索引的两数间(左开右闭)所有数之和 比如:Integral[5]-Integral[2]=31-9=22,而A[3]+A[4]+A[5]=5+10+7=22,两者是相等的 换句话说,利用积分表,求和运算变成了求两数之差。 若A中全为正数,积分表是单调递增的,积分表中最后一项是最大数,第一项是最小数 很好理解吧,如...
超星浏览页面自动放大
需求 这比例实在太小了,非常难看,所以着手使用油猴脚本改掉。 分析 通过开发者工具,了解布局。 首先发现一个mainCon的元素限制了宽度,但是去掉宽度限制后页面内容并没有放大,因此还需要往下探究。 往里面看,发现一个wrap也限制了宽度,将宽度去掉和增加宽度都不会使得内容放大。我们注意到,下面还有个iframe呢,因此还需要往里面看。 我们发现iframe也有限制宽度,同时限制了高度,将宽度设置为100%,高度设置为800px,可以发现内容放大了,宽度解决了,但是ppt显示的高度范围没有改变,滚动条还是不对,因此还需要往里面看。 我们发现,iframe里一个imglook元素...
BundleFusion跑自己的数据集
准备 编译好的BundleFusion一只 自己的数据集一捆 如果你按照这个教程[1]进行编译BundleFusion,注意几个方面: 先把Microsoft Visual C++ 2010的东西卸载掉再装DirectX SDK June 2010 一定要用VS2013,我开始用VS2017不兼容旧版本VS的工程因此打不开工程文件,系统是可以装多个VS的。 CUDA可以用高版本,我用的是CUDA 10.2,改工程文件的时候改为相应版本的props和targets文件。我的引用路径是"$(VCTargetsPath)\…\BuildCustomizations\CUDA 1...
VS中OpenCV和Cuda结合编程
折腾贼久终于搞好VS中开发Cuda与OpenCV了。。。 环境 OpenCV 3.4 Cuda 10.2 Visual Studio 2017 步骤 第一步 创建项目 创建VC++控制台应用,不要选NVIDIA项目。 第二步 设置CUDA编译 右击项目->生成依赖项->自定义,在弹出的对话框勾上CUDA,没有的话说明CUDA没装好。 第三步 设置引用目录和库目录 右击项目->属性,注意配置和平台选择合适的选项,这里我选择所有配置和x64,表示Debug和Release模式都是这个配置而且生成64位程序。 在VC++目录中设置包含目录和库目录,包含目录有: ...