- 博客(125)
- 资源 (20)
- 收藏
- 关注
转载 shader内置变量和函数
转自: https://blog.youkuaiyun.com/wcl0617/article/details/51496929内置函数radians(degree) : 角度变弧度;degrees(radian) : 弧度变角度;sin(angle), cos(angle), tan(angle)asin(x): arc sine, 返回弧度 [-PI/2, PI/2];acos(x): arc cosine,返回弧度 [0, PI];atan(y, x): arc tangent, ...
2020-08-13 23:46:00
601
原创 PopupWindow 使用介绍
PopupWindow 使用介绍一、popupWindow使用时候需要注意的方法public void setFocusable(boolean focusable) { mFocusable = focusable;}public void setOutsideTouchable(boolean touchable) { mOutsideTouchable ...
2020-04-14 19:36:20
1130
原创 excel撤销工作保护(忘记密码)
编辑的时候出现无法保存,要求撤销工作保护,如下图如果忘记了密码可以如下破解1、将excel表格重命名为.rar文件。2、用解压文件解压,如下图:3、打开目录,找到含有sheet1.xml的文件目录,其中多个表格的时候可能含有多个sheet文件4、以文本形式打开每一个sheet文件,然后ctr+F寻找<sheetProtection password="CEED" shee...
2020-01-01 21:57:43
6349
原创 pkm与png的相互转化
利用Mali Texture Compression Tool制作自己的png2pkm 和 pkm2png工具1、下载安装,官网;如果网不好,可百度云盘2、png2pkm 写一个windows脚本,放在F:\Mali compression tool\bin下:@echo off@echo start getListset /p a=please input png dictionary...
2019-12-01 00:48:21
9397
2
转载 如何快速转载优快云中的博客
对于喜欢逛优快云的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现 因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿...
2019-11-30 23:55:23
175
转载 手游性能优化之深入理解Texture Compression
http://gad.qq.com/article/detail/7154875一、引子 手游项目开发日常里,经常有美术同学搞不清Photoshop制图软件与Unity3D游戏引擎之间的图片assets流转逻辑,在工作输出时经常出现如下疑问:1、要JPG的,还是要PNG的?2、JPG的要压存为多高质量的?3、PNG的还要压?引擎不是自动处理的么?4、为毛非要正方形的?我这...
2019-11-30 23:33:40
531
原创 git push到gee或者github上报错
windows上git push的时候报错: git pushremote: Incorrect username or password ( access token )fatal: Authentication failed for 'https://gitee.com/.....主要是你可能之前登录push过,后来修改过密码,导致window记住的凭证 与 你现在的密码不匹配,...
2019-11-30 23:01:37
394
原创 python实现批量文件重命名并生成可执行exe文件
业务需求,需要对文件进行批量重命名,于是就研究了下用python实现了,并利用pyinstaller打包py文件成windows可执行的exe文件生成了可执行文件,懒得配置环境的老铁可以下载我打包好的exe执行文件:下面贴出源码:import osprint('''输入说明:*********************回车取默认值**********************head:...
2019-11-30 02:17:09
687
原创 pyinstaller打包py文件成windows可执行的exe文件
用python写了一个脚本文件,为了在window上执行,需要生成exe文件,方法如下:1、首先安装打包工具、pip install pyinstaller2、pyinstaller -F + py执行文件当看到successful,就打包成功,并且命令log会告诉你生成exe所在位置node:在python3.8上,pyinstaller不支持,需要执行安装下面依赖即可:...
2019-11-25 23:48:35
360
原创 git 命令
1、提交代码提交代码很容易出现冲突,因此需要git pull --rebase,如果忘记了可以通过下面2种方式解决如果忘记了1,且执行了git commit了,我们可以git reset HEAD --soft 丢掉最近一次commit,本地代码不变 如果忘记了1,且执行了git commit了,我们可以直接git pull --rebase,然后解决冲突,解决完毕后,git add...
2019-11-25 23:44:45
134
原创 git 自定义命令
环境window10git for windows这里拿下载我的github上的一个项目,我们知道,在工作中,git的一些命令比较繁琐,重复,为了减少输入,我们可以自己定义一套操作,在git bash中输入我们的命令来完成一套操作。下面讲解一下方法:1、写一个自己的bash文件创建一个文件,这里我命名为.lammy.bash,在这里面定义我的操作,这里以下载我的github的一个...
2019-11-25 23:29:39
810
原创 android openglse实现滤镜九宫格
opengl的渲染之前讲过很多,包括FBO等常用的技术(可参考我的博客:fbo),今天解决之前的一个小疑问:手机系统相机中,九宫格的滤镜选择是如何实现的,今天闲暇就实现起来看看,同时开放出来之前私有的相机项目:LammyOpenglCamera原理:先利用fbo,将相机数据绘制到一个纹理当中,然后将纹理设置到不同的filter,利用 glViewport来确定绘制窗口位置,然后利用不同的filt...
2019-06-13 16:20:34
967
1
原创 android sensorManager
应用activity 和 service 如何拿到系统service注册所有服务,这里注册的服务sensorManager服务,不是系统服务(SENSOR_SERVICES 是系统服务),这里需要创建new。accountManager是系统服务,可以用过serviceManager binder获得。将注册的服务添加到 SYSTEM_SERVICE_MAP中...
2019-05-20 12:08:29
535
原创 android systemserver
systemserver 作用1、创建系统服务2、添加到serviceManager3、初始化 系统服务系统服务系统会先定义一些服务然后会进行初始化 Init()判断是否ready...
2019-05-19 18:05:52
656
原创 android 开机启动
bootanim过程启动框架图当 openglse 和 ams启动完成,启动home Ui时,设置这时候,读取这个属性后 bootanim就会退出。bootanimation.zip解压part0,part1 是图片derc是配置信息...
2019-05-19 17:08:02
236
原创 android zygote
服务虚拟机创建流程虚拟机配置zygote启动分析所有应用进程虚拟机,都是继承zygote,共享资源,加速应用启动。启动sevice抛出异常,在异常信号中重启zygote 和systemServer预加载资源:预加载作用查看加载时间:优化方法,多线程BLCR技术上次启动成功,,并将已经加载好的资...
2019-05-19 16:41:53
266
原创 android系统启动 Init进程
android系统启动recovery升级模式:启动recovery分区内核和文件系统正常启动模式: 引导内核和启动Android系统android系统由uboot启动:1、输入模式,输入了recover命令,重启uboot就会引导recover分区,2、uboot启动的过程中会等待 按键输入,如电源 + 音量上键 进入recover模式3、系统正常重启后,点击了系统升...
2019-05-17 18:02:28
607
原创 android 非jni函数调用java类方法
上篇博客已经讲到了android jni 调用java类方法和成员变量,源于ffmpeg的调用android的硬解码的灵感,则想着,在非jni函数中调用java层代码。便花了点时间研究了下。大家都知道jni函数中NIEnv *env, jobject instance,一个 是包含的jvm环境一个是 传下来类对象。于是在jni的函数最终保存了env,然后在非jni函数调用,但会失败,报错en...
2019-05-13 15:53:32
682
原创 QT 录制音频
音频的推流和封装与视频是类似的,主要在于录制和重采样部分。QT再window的安装可以参考博客: vs2017 配置QT环境主要是在创建QT项目的时候加入 multimedia库,利用这个库用来录制音频的。QAudioFormat这个类是用来设置录制音频的参数的,如下:QAudioFormat fmt; fmt.setSampleRate(sampleRate);// ...
2019-05-10 11:28:45
1974
2
原创 vs2017 配置QT环境
vs2017的安装这里就不讲述,先下载qtQT下载qt的版本很多,windows目前是将64位和32位编在一起的,下载地址http://download.qt.io/archive/qt/安装也很简单,主要是第二部,要求登录,可以直接 skip,然后再选择第一项中,打开下拉 勾选vs2017 64位(这个根据你的项目和安装的vs版本选择)安装后,在qt\Tools\QtCr...
2019-05-06 10:35:59
6461
原创 vs2017配置 opencv4.01
1、下载opencv4.012、进行 环境变量配置配置x15/bin的路径到系统环境变量opencv\opencv\build\x64\vc15\bin否则会报错找不到opencv_world401d.lib的错误3、include的配置必须配置2个:opencv\opencv\build\includeopencv\opencv\build\include\op...
2019-05-02 16:27:25
310
原创 ffmpeg 代码实现rtmp推流到服务器
前面2篇已经讲解了如何搭建直播服务器 ffmpeg + nginx配置智播推流服务器和ffmpeg + crtmpserver实现直播推流,并且通过ffmpeg命令实现了推流,下面讲解下如何用代码实现推流,并且通过设置dts来实现推流的速度。之前也写过,将摄像头的数据保存到本地为mp4:ffmpeg 获取电脑摄像头数据,并且保存为MP4视频,这里其实差不多,只是将输出设备从本地文件mp4 改...
2019-04-30 17:28:52
13999
1
原创 ffmpeg 常用函数说明
初始化部分函数1、初始化所有封装和解封装 flv mp4 mov mp3av_register_all();2、初始化网络库avformat_network_init();open部分打开输入设备int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt...
2019-04-30 17:10:51
1032
原创 ubuntu一些使用技巧 和命令
1、截图全屏:按键print screen 存储位置 home用户的下的 picture目录下自由画框截图: shift +print screen键 也是存储在 home用户的下的 picture目录下2、进入root 文件模式nautilus会打开一个文件窗口,可以对任何文件进行修改,包括系统文件。3、解压tar -zxvf nainx-1.12.tar.g...
2019-04-30 11:41:25
191
原创 ubuntu 18.04 安装sogou拼音
下载直接百度输入搜狗输入法 for linux,下载ubuntu系统的输入法,download下文件:sogoupinyin_2.2.0.0108_amd64.deb安装cd到下载目录,然后进行安装:sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb设置settings里面,看是否有中文,如果没有添加chinese,如果没有,就...
2019-04-30 11:38:29
3155
1
原创 ffmpeg + nginx配置智播推流服务器
nginx是配置网站服务器,但是通过安装相应modue也可以实现直播推流。nginx服务器配置环境ubuntu 16.04 nginx 1.13依赖库安装sudo apt-get install gitsudo apt-get install libssl-devsudo apt-get install libpcre3 libpcre3-dev sudo apt-ge...
2019-04-30 10:27:52
2504
原创 ffmpeg + crtmpserver实现直播推流
搭建服务器crtmpservercrtmpserver是开源的直播服务器,地址:https://github.com/j0sh/crtmpserver环境:虚拟机+ubuntu16.04gcc5.4在虚拟机中打开终端,执行下面操作:sudo apt-get updatesudo apt-get install cmakeasudo pt-get install li...
2019-04-29 10:50:57
1362
1
原创 c++ 读取文本操作
没有时间写博客,参考下:void model::InitModel(const char*modelFilePath,const char*textureImagePath) { std::vector<float> texCoord; std::vector<float> normal; std::vector<float> p...
2019-04-28 16:24:38
350
原创 android samplerExternalOES 纹理
samplerExternalOES 的纹理映射上一章节讲解了opengl顶点坐标与sampler2D坐标,而samplerExternalOES 是android用来渲染 相机数据。但它也存在一个问题,android的后置相机的预览的图像是顺时针旋转90°的,而相对于前置相机则是逆时针旋转90°的,如果想要跟照镜子一样的模式,自拍则还要左右对换。后置摄像头后置摄像头只是需要将纹理旋转...
2019-04-28 11:34:26
6834
原创 opengl 顶点坐标和sampler2D纹理坐标
在利用非固定管线进行纹理渲染的时候,经常要用到纹理和顶点坐标的映射关系,这里从三维角度介绍下二维的纹理坐标映射:顶点坐标:首先得明确:顶点坐标是在世界坐标系上(可参考:从渲染过程来理解opengl坐标系和坐标变换投影),这里的世界坐标系投影的屏幕坐标系(可参考:从渲染过程来理解opengl坐标系和坐标变换投影)上, x、y如上图所示,z正方向是从屏幕向外,人眼的位置则是在原点(0...
2019-04-26 13:13:07
10943
2
原创 yuv格式介绍与opengl 显示 yuv数据
目录yuv数据介绍:yuv444yuv420yuv422Opengl显示yuv数据提取数据创建纹理shader显示yuv数据介绍:yuv数据存储主要分3大种:yuv420、yuv444、yuv422图中:空心圆表示 一个uv, 实心圆表示一个y。下面对三种格式进行一个解释:cb代表u,cr代表v。大部分数据格式再 ffmpeg的枚举类...
2019-04-26 11:45:49
7926
3
原创 FFMpeg opengl显示解码avframe
FFmpeg解码出来avframe,但显示很容易出现乱码,因为为了计算的方便,ffmpeg解码出来的数据,总视根据系统处理器或者系统来补齐为 64、32、16的倍数。这也是我们显示乱码的问题所在。问题比如我显示抖音上的视频的宽为368x640, 解码的帧率avFrame,下面是avframe的一些成员变量:avFrame->format = 0 // 表示是 yuv420p的数据...
2019-04-26 09:55:46
3536
3
原创 android glSurfaceview 底层创建EGL渲染环境
之前 android studio搭建简单jni层的opengl开发框架讲到的是在上层render的三个回调函数中写jni函数,从而在jni层调用opengl的绘制,但是在做播放器的时候,需要用opengl来渲染 每一帧,而底层解码后,再渲染,将渲染放在底层,这样播放器的整个框架都在底层,上层只是UI的一些显示操作,而且 如果在render的onFrame中直接来显示帧,在暂停或者seek的时候由...
2019-04-25 18:02:57
1739
3
原创 C++ 数组作为参数
之前写过,当类对象作为参数,传入函数的时候,在函数内部,进行对类的操作,有的会生效,有的不会,当将类的指针对象传入的时候,就不会不生效。今天同样遇到,将数组指针指针当作参数,传入函数的时候也失效了。就是说,在函数中获得数组的值是错误的。给我的感觉,c++用起来很不安全,好多坑,当然,c++ 用的少自己菜的原因。可能是针对c++ 的 变量的生命周期了解不够透彻。1、函数内部 数组的生命周期...
2019-04-25 16:05:38
1143
原创 ffmpeg音视频同步,seek策略总结。
上一篇音视频同步策略和视频seek策略讲过一些方法,但是总视存在一些小问题,这里花费了近三天的时间对整个 音视频同步,以及seek测率进行较大的调整,使得整个程序更健壮,用户在界面胡乱操作,seek和pause都不会引起程序卡顿和崩溃了。音视频seek策略最简单的方法,就是一个大锁,将音频解码 和 视频解码播放 各用同一个锁锁住,然后,将seek部分用同一个锁锁住,这样seek的时候清空数据就...
2019-04-20 11:30:45
2827
2
原创 C++11 中thread 多线程的使用
1、简单的静态方法使用 void test(int a){ LOGE("test a = %d", a);}void main(){ std::thread seek_th(test ,2); seek_th.detach();}2、在类对象中,调用类的方法,创建线程。void LammyOpenglVideoPlayer::seekThread...
2019-04-19 14:59:52
744
原创 android jni 调用java类方法和成员变量
目录 jni层的2个变量介绍。jni调用java层对象和方法获取上层java的类。调用java层方法调用java成员变量参数 const char* sigjni层的2个变量介绍。JNIENV*env,这个是java jni的接口环境,通过它来和上层和c层打交道。jobject instance 这个变量就是jni 函数所在上层调用此函数的类...
2019-04-19 14:42:27
1448
1
原创 visual Studio 添加新的框架模板
一直在用visual studio开发c++,近期,公司要求利用c#开发一个窗体应用程序,打开vs后,点击c#,发现无wpf 或者 窗体应用程序,应该是当初安装vs的时候,没有选择安装此模块。因此到处需求安装新模板的方法,奈何没有找到,正绝望准备卸载重新安装vs的时候,却让我看到了一个应用: 点击打开此 installer程序然后就可...
2019-04-15 10:30:29
5729
1
原创 SwsContext、sws_scale缩放失败,或者缩放后视频乱码
虽然 ffmpeg的缩放效率比较低,但随着电脑或者硬件设备发展,即使使用低效率的,也可以达到普通播放器的要求了。但在使用的过程中的坑还是很多的。在android手机中使用SwsContext 和sws_scale缩放后,视频总视出现乱码或者 干脆一个黑屏。void FFMVideoShow::show(AVFrame *avFrame){ if(dataManager-&...
2019-04-13 11:31:39
3502
原创 音视频同步策略和视频seek策略
此文章讲的seek测率有一定缺陷,即用户非常快速点击seek操作,主线程会卡,下一篇ffmpeg音视频同步,seek策略总结是对这篇的改进,若想直接了解较好的策略,直接移步到我的下一篇中。音视频同步一般有三种方式,1、设置共同时间标志。这种多用于多视频播放中。2、音频同步视频,(由于人耳对音频比视频敏感,比较少用)3、视频同步音频下面就介绍一种视频同步音频的方法。视频同步音...
2019-04-12 12:06:39
1524
rename.zip
2019-11-30
glsurfaceview在native创建EGL环境并渲染
2019-04-25
opengl mvp矩阵实现3d漫游
2019-03-26
android studio opengl jni层搭建开发框架
2019-03-21
go 实现百度图片爬虫(破解百度防爬虫机制)
2019-03-15
快速双边滤波的美颜算法
2019-02-25
node.js 实现图片 压缩,上传下载,以及base64的图片显示、上传和服务端接受
2019-01-24
tensorflow模型以及so 和 jar在android studio中的应用
2019-01-10
libcudnn7_7.3.1.20-1+cuda9.0_amd64.deb
2018-12-14
libcudnn7-dev-doc_7.3.1.20-1+cuda9.0_amd64.deb
2018-12-14
cudnn7.3.1 for cuda9.0中cudnn-9.0-linux-x64-v7.3.1.20.tgz第二部分
2018-12-14
cudnn7.3.1 for cuda9.0中cudnn-9.0-linux-x64-v7.3.1.20.tgz第一部分
2018-12-14
androidopengl相机实时滤镜拍照
2018-12-06
libyuv 编译的so库和include文件
2018-09-03
ffmpeg编译的android so库和include文件
2018-09-01
ffmpeg 编译so库android ndk来对视频编解码
2018-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人