- 博客(39)
- 资源 (1)
- 收藏
- 关注

原创 OpenCV入门教程
文章目录欢迎联系、指正、批评一个最简单、免搭建的Android OpenCV开源库:https://blog.youkuaiyun.com/confusing_awakening/article/details/113355609欢迎联系、指正、批评Github:https://github.com/AnJiaoDe优快云:https://blog.youkuaiyun.com/confusing_awakeningffmpeg入门教程:https://blog.youkuaiyun.com/confusing_awakenin
2021-01-29 10:52:37
603

原创 ffmpeg入门教程
ffmpeg入门教程之Windows开发环境搭建ffmpeg入门教程之封装格式转换(无编解码)API详解:ffmpeg入门教程之YUV编码成h264 API详解:ffmpeg入门教程之linux编译so 从下载坚持到成功(血泪史):ffmpeg入门教程之Android使用FFmpeg so(API封装格式转换):ffmpeg入门教程之ffmpeg命令行手册------全局命令(翻译):ffmpeg入门教程之ffmpeg命令行手册------视频滤镜(翻译):
2019-10-03 22:51:37
5346
3
原创 ffmpeg和ffplay命令行实战手册
调色板PNG图片,然后再利用调色板PNG图片合成带透明度的GIF图片,否则有色差或者无透明度。注意:是所有和一个,不能是所有和所有,只能有一个调色板PNG图片,否则还是有色差。pad: “宽”、“高”、“X坐标”和“Y坐标”,宽和高指的是输入视频尺寸(包含加黑边的尺寸),XY指的是视频所在位置。注意:音频倍速和视频倍速是分开写的,想降低视频的总时长,音频也是要增速的,如果希望。转义也不行,否则乱码,因为路径指定有误,ffmpeg无法找到字库。设置输出音频流的数量,也就是每个片段中音频流的数量。
2024-12-14 12:25:44
1188
原创 android studio 某个模块的cmakeLists如何引用另一个模块的头文件、源文件、SO库
【代码】android studio 某个模块的cmakeLists如何引用另一个模块的头文件、源文件、SO库。
2024-09-11 20:38:10
257
原创 Android NDK入门教程之快速定位Crash问题
所以开发so库的时候,每次编译之后,如果需要提供给别人使用,我们需要保留一份未strip的so库和JNI代码,strip的so库提供给别人使用,当出现native crash的时候,我们可以通过未strip的so库定位strip的so库发生crash的代码位置,因为未strip和已strip的so库的函数的编译地址是一致的,strip去除的只是debug信息。
2022-04-20 17:14:38
3453
1
原创 OpenCV入门教程之开发环境搭建(Android、C/C++、Python)
Android搭建OpenCV开发环境自己写C/C++调用OpenCV实现小编已经在gayhub开源了一个轮子,可直接使用:一个最简单、免搭建的Android OpenCV开源库[https://blog.youkuaiyun.com/confusing_awakening/article/details/113355609](https://blog.youkuaiyun.com/confusing_awakening/article/details/113355609)Windows C/C++搭建OpenCV开发环境
2021-01-29 16:30:34
1180
1
原创 一个最简单、免搭建的Android OpenCV开源库
GitHub:https://github.com/AnJiaoDe/OpenCVAndroidNiubility使用方法注意:该轮子只包含了arm64-v8a架构的so库注意:如果轮子死活下载不下来,说明maven地址有毛病,你需要找到jitpack的官网首页,查看最新的官网地址注意:记得去gayhub查看最新版本,最新版本最niubility详细使用如下初始化举例图像边缘检测举例图像变灰举例图像腐蚀
2021-01-29 10:46:49
874
2
原创 Android自定义控件之打造万能ViewPager、ViewPager2 Adapter(无限轮播、多布局、低耦合indicator指示器蠕动动画、自定义indicator)
ViewPager万能适配器ViewPager2万能适配器ViewPager无限轮播(低耦合indicator 蠕动动画,布局独立)ViewPager2无限轮播(低耦合indicator 蠕动动画,布局独立)indicator 自定义动画AndroidX ViewPager2滑动冲突问题AndroidX ViewPager2滑动冲突问题真的能完美解决吗?所以,小编还是强烈建议复杂情况下使用Androidx 的ViewPager相关APIViewPager、ViewPager2无限轮播原理剖
2021-01-15 10:32:01
1798
原创 Android 几行代码解决6.0以上权限适配问题
文章目录GitHub:https://github.com/AnJiaoDe/PermissionNiubility使用方法3.调用方式:注意:记得去gayhub查看最新版本,最新版本最niubility1.全部允许2.拒绝3.拒绝4.用户拒绝并且选中了不再询问,弹窗让用户去授权5.用户同意了授权,闲的难受去关闭了授权实现原理:源码:欢迎联系、指正、批评GitHub:https://github.com/AnJiaoDe/PermissionNiubility使用方法1.工程目录下的build.gra
2020-08-15 10:53:00
667
1
原创 Android屏幕适配之状态栏导航栏半透明、全透明、全屏、沉浸式(6.0以上修改状态栏文字、icon颜色),方法多样
GitHubAPK文章目录使用方法1. StatusBar半透明2. StatusBar全透明3. StatusBar透明于图片之上3. NavigationBar透明欢迎联系、指正、批评使用方法1.工程目录下的build.gradle中添加代码:allprojects { repositories { maven { url 'https://jitpack.io' } } }2.直接在需要使用的模块的
2020-08-12 13:36:00
3062
2
原创 Android自定义控件之RecyclerView打造万能ViewPager TabLayout(仿今日头条Tab滑动、Tab多布局、indicator蠕动、自定义indicator、文字颜色渐变)
Tab均分不滑动(ViewPager、ViewPager2均支持)Tab滑动、 indicator蠕动、多布局(ViewPager、ViewPager2均支持)根据item个数动态设置Tab均分还是滑动Tab文字颜色渐变(ViewPager、ViewPager2均支持)自定义Indicator如三角形(ViewPager、ViewPager2均支持)ViewPager双层嵌套(建议不要使用ViewPager2进行双层嵌套,ViewPager2嵌套滑动冲突几乎无法处理,贼鸡儿坑)仿微信主页Tab
2020-08-08 23:38:10
6447
1
原创 Windows Android Studio搭建Flutter开发环境 从放弃坚持到成功
文章目录Flutter中文网:https://flutterchina.club/Flutter官网:https://flutter.dev/系统要求下载Flutter SDK(`必须的步骤`)配置环境变量执行`flutter doctor`命令安装Android Studio安装 Dart、Flutter插件(`必须的步骤`)Android Sutdio创建Flutter工程Android Su...
2020-05-08 11:26:21
691
1
原创 算法基础之各种排序算法思想图解
排序算法比较排序算法稳定性选择排序冒泡排序插入排序希尔排序快速排序归并排序GitHub:[https://github.com/AnJiaoDe/AlgorithmOfSort](https://github.com/AnJiaoDe/AlgorithmOfSort)
2020-02-11 12:32:36
710
1
原创 Android屏幕适配之解决白屏启动的正确姿势
文章目录APP启动页的需求APP启动页的需求的尝试定义正确的Theme定义背景图解决白屏启动的正确姿势参考Andoid屏幕适配终极手段(小编用过最得劲的dp适配)[https://www.jianshu.com/p/375d614401aa](https://www.jianshu.com/p/375d614401aa)如何适配尽可能多的宽度dp 手机呢?欢迎分享、转载、联系、指正、批评、撕逼A...
2020-01-17 23:06:27
680
2
原创 ffmpeg入门教程之ffmpeg命令行实战------音频滤镜
文章目录本文将会持续更新,敬请关注命令行详解可参考ffmpeg入门教程或者参考官网文档实例来源于《FFmpeg从入门到精通》声道双声道合并单声道双声道提取多单声道双声道转双音频流单声道转双声道2个音频源合并为双声道5.1声道多个音频合并为多声道绘制音频波形atempo音频倍速处理欢迎分享、转载、联系、指正、批评、撕逼本文将会持续更新,敬请关注命令行详解可参考ffmpeg入门教程或者参考官网文档...
2019-12-03 17:26:00
1260
2
原创 ffmpeg入门教程之ffmpeg命令行实战------视频滤镜
文章目录命令行详解可参考ffmpeg入门教程或者参考官网文档实例来源于《FFmpeg从入门到精通》-filter_complex为视频添加logomovie为视频添加logomovie实现视频画中画movie实现视频画中画跑马灯视频添加中文水印的正确姿势中文水印乱码视频添加实时时间水印视频间隔性添加水印视频九宫格vframes 视频截图fps滤镜定时截图截取关键帧图片setpts视频倍速处理欢迎分...
2019-12-03 17:21:53
1259
1
原创 ffmpeg入门教程之ffmpeg命令行手册------视频滤镜(翻译)
文章目录本文将持续更新,敬请关注滤镜filtering简单滤镜Simple filtergraphs复杂滤镜Complex filtergraphs-filter_complex filtergraph (global)覆盖 overlayxyformatyuv420yuv422yuv444rgbgbrpautomain_w, Wmain_h, Hoverlay_w, woverlay_h, ho...
2019-11-26 15:47:11
3624
1
原创 ffmpeg入门教程之ffmpeg命令行手册(翻译)
如何阅读官网命令行?阅读本文的正确姿势Ctrl+Fffmpegffmpeg命令的语法结构一般规则输入参数 -i流复制 Stream copy流选择 Stream selection自动流选择 Automatic stream selection手动流选择 Manual stream selection-map文件选择和流选择 [2:3]流选择 -vn/-an/-sn/-dn下面的例子说明FFmpeg的流选择方法的行为、怪癖和限制自动字幕流选择 automatic subtitle
2019-11-25 15:34:02
7006
1
原创 ffmpeg入门教程之Android使用FFmpeg so(API文件格式转换)
文章目录Java代码从编译到执行C代码编译交叉编译CmakeNDKJNIJNI应用场景Android Studio 3.4创建工程CPU架构适配配置build.gradle配置CMakeLists.txt链接FFmpeg的so库包含FFmpeg头文件Android使用FFmpeg so(封装格式转换)加载so库定义native方法Android调用native方法JNI实现native方法测试Gi...
2019-11-13 14:48:48
1425
1
原创 ffmpeg入门教程之YUV编码成h264 API详解
本文示例基于官方版本ffmpeg-20190926-87ddf9f-win64-dev编写将YUV视频序列文件编码成H264文件RGBYUVYUV存储格式如何获取YUV图像序列文件mp4--->h264(ffmpeg命令行)h264--->yuv(ffmpeg命令行)FFmpeg编码流程fopen()初始化AVFormatContext创建AVStream获取AVCodec配置AVCodecContextYUV420PAVRational time_base打开编码器avc
2019-11-01 22:13:25
5313
3
原创 ffmpeg入门教程之多媒体文件格式转换(无编解码)API详解
ffmpeg多媒体文件格式转换流程Demuxing-Module解封装模块Muxing-Module封装模块ffmpeg多媒体文件格式转换器(无编解码)官方示例GitHub:[https://github.com/AnJiaoDe/FFmpegDemo](https://github.com/AnJiaoDe/FFmpegDemo)ffmpeg多媒体文件格式转换器(无编解码)详解avformat_open_input()avformat_find_stream_info()av_dump_f
2019-10-05 23:41:57
1951
1
原创 ffmpeg入门教程之Windows开发环境搭建
ffmpeg官网文档About FFmpegffmpegffplayffprobeFFmpeg Libraries for developersffmpeg-APIffmpeg开发环境搭建(Windows)Visual Studio 搭建ffmepg开发环境(Windows)Visual Studio 编写ffmpeg封装格式转换器(无编解码)GitHub:[https://github.com/AnJiaoDe/FFmpegDemoVS](https://github.com/AnJi
2019-10-03 22:32:25
3914
1
原创 JAVA多线程读写文件如何做到线程安全?(文件锁,FileChannel)
使用对文件加锁的方式做到线程安全FileInputStream、FileOutputStream、RandomAccessFile均可得到FileChannel对象,对文件锁进行操作。独占锁tryLock()FileChannel的tryLock()是非阻塞的,也就是说,在发现文件被锁住的时候,直接返回null,并且抛出异常,如果没有锁住,直接返回该文件的文件锁。它是独占锁,就是只能被一个线程持有,它能禁止在JAVA的标准I/O中,提供了基于流的I/O实现,即InputStream和Out...
2019-08-17 01:26:51
18347
1
原创 升级opengl
有时候用GLFW创建窗口会返回NULL,原因一般是oepngl版本过低GLFWwindow *window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL); if (window == NULL) { cout << "Failed to create GLFW window" << endl; ...
2019-07-10 15:23:10
12657
原创 Android Bitmap压缩的正确姿势
Android开发中经常有如下需求:1.由file decode bitmap如果硬盘中的图片文件过大,不进行压缩,直接decode到内存,会有内存溢出的风险。可利用BitmapFactory.Options设置inSampleSize(采样率)即可。计算采样率,通常缩小图片的宽或者高(减少像素点,图片内容完整,如果减少得过分了,图片文件会模糊)为原来的1/2、1/4、1/8,就是缩放2的...
2019-06-25 11:39:01
6969
2
原创 Anroid屏幕适配之dp2px和sp2px的正确姿势
先看完Andoid屏幕适配终极手段(小编用过最得劲的dp适配):https://www.jianshu.com/p/375d614401aaprivate String getScreenParams() { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDispla...
2019-06-14 15:57:45
5596
原创 Proguard混淆入门手册
Github源码:https://github.com/AnJiaoDe/MakeJar混淆Jar包,首先得有一个普通的Jar包死丢丢如何将多module生成一个Jar包?目前小编掌握的比较简单方便的方法是:需要在所有module的build目录找到对应的class文件,然后合并如各位有更好的方法,欢迎屏幕下方留言讨论,喜欢的朋友可以点击关注,了解更多比如开发一个SDK,但是有多mo...
2019-06-07 13:54:34
1592
原创 RecyclerView监听滑动,自动播放视频列表,有点意思
GitHubhttps://github.com/AnJiaoDe/RecyclerViewVideoPlayListAPK_demo https://github.com/AnJiaoDe/RecyclerViewVideoPlayList/blob/master/app/build/outputs/apk/app-debug.apk视频列表页自动播放1自动播放功能-用户上滑流程图...
2018-12-09 22:53:50
3524
1
原创 Android仿酷狗皮肤预览界面的实现(利用canvas缩放的原理)
一直好奇酷狗的皮肤预览是怎么实现的。难道是另外写了一个一模一样的布局文件,只是宽高不一样?感觉贼吉尔神奇啊!想想还是觉得不可能是一个个控件写上去的,一定有某种极其神奇却简单的方法。方法就是Android Canvas的scale,画布缩放/** * Preconcat the current matrix with the specified scale. ...
2018-12-03 19:24:45
556
1
原创 Android开发必备偷懒神器之比例控件(正方形、比例矩形)、点击效果(水波纹、滤镜)、Selector(CheckBox,RadioButton)、shape(圆角、ImageView圆角、画线、边
GitHub_https://github.com/AnJiaoDe/AndroidNecessaryViewAPKdemo使用方法:将libray模块复制到项目中,或者直接在build.gradle中依赖:allprojects { repositories { maven { url 'https://jitpack.io' } } }dependencies...
2018-11-03 00:51:53
1266
原创 Andoid屏幕适配终极手段(小编用过最得劲的dp适配)
Andoid屏幕适配终极手段(小编用过最得劲的dp适配),1.工具类解析values目录下的dimens文件,根据其中所有的dimen标签,name和values,生成其他各种dp对应的dimens文件 2.DP_BASE可修改为自己定的基准(你可以根据实际情况定为其他dp,一般情况下,定义为360dp,因为大部分手机sw都是360dp) 3.root对应的是当前android项目的主目录路径,千万不能出错 4.size_thread,线程池大小默认5,你可以设置其他数值 5.你还可以根据自己强迫症
2018-10-21 01:29:24
12639
原创 Android几行代码解决键盘遮挡问题
GitHubAPK将libray模块复制到项目中,或者直接在build.gradle中依赖:allprojects { repositories { maven { url 'https://jitpack.io' } } }dependencies { compile 'com...
2018-09-13 21:08:36
2078
1
原创 编译工具各种报错(步骤正确,代码正确,配置正确)均可认为无解,除非...
程序猿见到上帝:各种编译报错1.JAVA SSH三大框架配置时各种编译不通过以前尝试过各种百度、谷歌、stackoverflow,均无解,怀疑猿生 最后瞎折腾,更换各种jar包版本,终于得解: 一般是由于jar包版本不匹配,需要集成版本相互匹配的所有jar包2.Android Studio 使用原始方法配置JNI ,低版本运行时异常4.4Android系统手机运行时报错:...
2018-05-15 12:48:48
4149
9
原创 Android 自定义控件之SlidingMenuVertical顶部悬浮(垂直折叠抽屉,有滑动渐变回调,可自行添加渐变动画)
GitHubAPK使用方法将libray模块复制到项目中,或者直接在build.gradle中依赖:allprojects { repositories { maven { url 'https://jitpack.io' } } }dependencies { compile '...
2018-04-25 22:49:01
781
1
原创 Android 流式布局FlowLayout(搜索历史),多布局、删除、添加
githubAPK下载使用方法将libray模块复制到项目中,或者直接在build.gradle中依赖:allprojects { repositories { maven { url 'https://jitpack.io' } } }dependencies { compile '...
2018-04-15 17:51:58
2203
1
原创 Android触摸事件分发机制之requestDisallowInterceptTouchEvent
有时候需要在ScrollView中放置一个能旋转或者其他触摸操作的控件,这时候,ScrollView就不能拦截触摸事件,必须在OnInterceptTouchEvent 返回false。<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com...
2018-03-09 18:52:02
426
1
原创 Android BaseDialog(开发必备)动画、加载进度、阴影
GitHubAPK使用方法将libray模块复制到项目中,或者直接在build.gradle中依赖:allprojects { repositories { maven { url 'https://jitpack.io' } } }dependencies { compile 'co...
2017-10-24 17:53:03
1543
1
原创 RecyclerView超级万能适配器(多布局、head、foot、下拉刷新、上拉自动更多、滑动删除)
使用方法GitHub APK下载将libray模块复制到项目中,或者直接在build.gradle中依赖:allprojects { repositories { maven { url 'https://jitpack.io' } } }dependencies { compile '...
2017-10-24 17:36:25
1203
原创 Android判断是否存在外置SD卡(获取手机所有存储设备的路径)
获取手机里所有存储设备盘符,首先需要得到挂载在手机上的有哪些盘符,这里需要用到一个被系统隐藏的方法,即StorageManager下的getVolumePaths()方法。具体通过反射得到。方法返回值为字符串数组,getVolumeList返回所有相关信息 StorageVolume: mStorageId=131073 mPat...
2017-06-11 08:04:26
8523
2
ffmpeg-4.2.可编译so的源码(修改过)
2019-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人