首页 文章 精选 留言 我的

精选列表

搜索[多分片],共10006篇文章
优秀的个人博客,低调大师

Windows环境编译FFmpeg(多包)

编译环境是win10,ndk r14,ffmpeg3.0 1. 下载工具包 首先自然是下载NDK及FFmpeg并解压,Windows下编译需要下载MinGW 下载完毕后MinGW需要安装,安装好之后是个下载管理器,选择安装选项的时候要选上mingw-developer-toolkit,mingw32-gcc-ada,msys-base三项。 MinGW.png 2.编辑FFmpeg目录里的configure文件。找到 SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)' 修改为 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME)' 这是为了修改文件名格式 3. 创建build_android.sh文件作为编译脚本 #!/bin/bash # NDK的路径,根据实际安装位置设置 NDK=D:/java/androidstudio/sdk/ndk-bundle # 编译针对的平台,这里选择最低支持android-14, arm架构,生成的so库是放在libs/armeabi文件夹下的,若针对x86架构,要选择arch-x86 PLATFORM=$NDK/platforms/android-14/arch-arm # 工具链的路径,arm-linux-androideabi-4.9与上面设置的PLATFORM对应,4.9为工具的版本号 TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$PLATFORM \ --extra-cflags="-I$PLATFORM/usr/include" \ make clean make -j4 make install } # arm v7vfp CPU=armv7-a OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU " PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one # CPU=armv # PREFIX=$(pwd)/android/$CPU # ADDI_CFLAGS="-marm" # build_one #arm v6 #CPU=armv6 #OPTIMIZE_CFLAGS="-marm -march=$CPU" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG= #build_one #arm v7vfpv3 # CPU=armv7-a # OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU " # PREFIX=./android/$CPU # ADDITIONAL_CONFIGURE_FLAG= # build_one #arm v7n #CPU=armv7-a #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG=--enable-neon #build_one #arm v6+vfp #CPU=armv6 #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU" #PREFIX=./android/${CPU}_vfp #ADDITIONAL_CONFIGURE_FLAG= #build_one } # arm v7vfp CPU=armv7-a OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU " PREFIX=./android/$CPU-vfp ADDITIONAL_CONFIGURE_FLAG= build_one # CPU=armv # PREFIX=$(pwd)/android/$CPU # ADDI_CFLAGS="-marm" # build_one #arm v6 #CPU=armv6 #OPTIMIZE_CFLAGS="-marm -march=$CPU" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG= #build_one #arm v7vfpv3 # CPU=armv7-a # OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU " # PREFIX=./android/$CPU # ADDITIONAL_CONFIGURE_FLAG= # build_one #arm v7n #CPU=armv7-a #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG=--enable-neon #build_one #arm v6+vfp #CPU=armv6 #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU" #PREFIX=./android/${CPU}_vfp #ADDITIONAL_CONFIGURE_FLAG= #build_one 其中要注意TMPDIR、NDK、TOOLCHAIN、--cross-prefix对应实际目录地址,可别漏了。 ./configure部分根据自己的需要调整功能。全要的话库文件未免太大。 --disable-avdevice \ 这一行控制了不输出libavdevice.so文件,即最后的输出目录中不存在这个.so文件 --enable-shared 这一行启动动态编译 --disable-static 这一行禁用静态编译 4.编译 运行C:\MinGW\msys\1.0目录下的msys.bat,cd到ffmpeg目录执行build_android.sh ./build_android.sh 5. 结果 等待十几分钟之后,控制台输出如下结果: 结果.png 6. 文件 在ffmpeg-3.3.6文件夹下生成一个android目录,目录下对应的是不同的架构,这里只生成了armv7-a这个目录,include中是头文件,lib中是生成.so文件,用的时候使用文件名贵上带数字的.so文件。 文件.png 详情.png

优秀的个人博客,低调大师

Android studio 多包名打包

首先公司有这样的需求一个项目需要给不同的人使用,就需要不同的启动页、logo、name这样的资源(不从网上获取)。最早还在eclipse的时候需要一个个的修改打包,在早期数量少的时候半天也能搞定,随着数量的增加就需要其他的方法来减少人力了。现在来介绍一下在Android studio中自带的打包方法 1实现同一包名不同启动页、logo、name的打包 1、首先需要在项目的src文件夹下建立相应的文件夹和你的main同级 图1.png 2、在项目的build.gradle中的Android下使用productFlavors 图2.png 3在build.gradle中配置签名文件 图3.png 这里简单说明一下storeFile是签名文件的路径我放在了app文件夹下和build.gradle文件目录同级就没有写相对路径 4、build一下项目后就会在右侧的gradle中看到 图4.png 双击相应的名字即可开始打包 2实现不同的包名打包 1、其他的步骤和上方的一致需要在1-2中的productFlavors添加 图5.png 重复上述打包即可 注意:如果适配了Android7.0的话应该都使用了FileProvider需要修改对应的authorities(修改后代码中的使用也需要统一修改,小心崩溃)否则两个应用无法安装到同一个手机上其他的provider标签以及自定义权限也需注意此问题, 这里给大家推荐一个朋友的Python自动打包 https://www.jianshu.com/p/b66d72862517 如有遗漏或不对的地方,敬请留言指正

优秀的个人博客,低调大师

filebeat多版本for Windows7

Filebeat是一个开源的文件收集器,主要用于获取日志文件,并把它们发送到logstash或elasticsearch。filebeat不仅支持各版本的Linux系统(centos5.6除外),在Windows操作系统上也有很好的体验。 下载: https://www.elastic.co/downloads/beats/filebeat 安装: 运行以下命令来安装Filebeat作为Windows服务,进入cmd控制台 cd ‘C:\Program Files\Filebeat’ C:\Program Files\Filebeat> .\install-service-filebeat.ps1 执行报错: 用以下命令执行: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1 安装完成后,修改filebeat.yml配置文件,指定好上传日志文件的路径等参数 启动: 直接执行.exe程序即可 但是这里有一个问题,程序只能前台运行,一旦关闭cmd窗口,程序也会关闭,google了很多办法,start /b参数尝试也不行,后来搜到一个chp.exe程序,加在filebeat.exe前执行即可。 测试了最新版本5.0,以及1.3和1.2的filebeat版本,只有1.2版本可以执行 1.3和5.0出现输出报错: failedtoinitializeconsolepluginasoutput:consoleoutputinitializationfailedwith:GetFileInformationByHandle/dev/stdout:Thehandleisinvalid.

优秀的个人博客,低调大师

logstash输出到elasticsearch多索引

目标:将json格式的两类日志输出到elasticsearch两类索引 1. 安装logstash。 2. 编写logstash处理配置文件,创建一个test.conf文件,内容如下: input { file { path => "/home/vagrant/logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-*.log" start_position => "beginning" type => "sql" codec => json { charset => "UTF-8" } } file { path => "/home/vagrant/logstash/logstash-2.2.2/dbpool-logs/dev/common-transaction-*.log" start_position => "beginning" type => "transaction" codec => json { charset => "UTF-8" } } } output { if "_grokparsefailure" in [tags] { }else{ if [type] == "sql"{ elasticsearch { hosts => ["http://192.168.33.10:9200"] index => "common-sql-%{+YYYY.MM.dd}" } } if [type] == "transaction"{ elasticsearch { hosts => ["http://192.168.33.10:9200"] index => "common-transaction-%{+YYYY.MM.dd}" } } } } 或者 input { file { path => "/home/vagrant/logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-*.log" start_position => "beginning" type => "sql" codec => json { charset => "UTF-8" } } file { path => "/home/vagrant/logstash/logstash-2.2.2/dbpool-logs/dev/common-transaction-*.log" start_position => "beginning" type => "transaction" codec => json { charset => "UTF-8" } } } output { if "_grokparsefailure" in [tags] { }else{ if [type] == "sql"{ elasticsearch { hosts => ["http://192.168.33.10:9200"] index => "common-%{type}-%{+YYYY.MM.dd}" } } } } 指定输入日志的路径,按通配符匹配。分为两类:sql和transaction。 根据type分别输出到elasticsearch不同的索引。 3. 安装elasticsearch。 4. 启动elasticsearch,./bin/elasticsearch -d ,默认端口为9200。 5. 启动logstash开始处理,./bin/logstash -f conf/test.conf。 6. 完成。 ========广告时间======== 鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。 为什么写《Tomcat内核设计剖析》 =========================

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册