Java 常用容器类
Java容器类是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。 Java容器主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections) Collection接口 Collection是一个 ...
It’s not what you know, it’s how you think
Java容器类是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。 Java容器主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections) Collection接口 Collection是一个 ...
Java反射机制(Reflection)是区别于C++之类的语言的重要特征,能在运行时自省,操作类的属性,方法,以及创建等等。 动态代理,利用Java的反射技术,在运行时创建一个实现某些给定接口的新类(也称“动态代理类”)及其实例(对象),代理的是接口(Interfaces)。 语言支持基础 Class类型 使用反射的基础是 java.lang.Class ...
FFmpeg中的libavfilter提供了一整套的基于filter的机制,filter本身是一个插件的形式,可以快速的组装需要的效果。filter可以翻译成过滤器,滤镜,可用于检查输入或者输出,按照预定的规则处理并传递这些数据,将输入数据做特定的变换并输出。 语法 filtergraph的BNF语法描述: Name ::= sequence of alphanumeric characters and '_' ...
本文整理一些常用的ffmpeg的命令。 ffmpeg安装 mac下ffmpeg的安装 brew tap homebrew-ffmpeg/ffmpeg brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-openssl ffmpeg命令格式 语法 ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... 参数说明 主要参数: -i 设定输入流 -f 设定输出格式 -ss 开始时间 -c 指定编解码器 视频参数: -b 设定视频的音视频码率(-b:v和-b:a),默认为200Kbit/s -r 设定帧速率,默认为25 -s 设定分辨率 ...
视频编解码按照处理数据类型的不同,可以分成几个层次: 协议层(Protocol Layer):该层处理的数据为符合特定流媒体协议规范的数据,例如http,rtmp,file等。 封装层(Format Layer):该层处理的数据为符合特定封装格式规范的数据,例如mkv,mp4,flv,mpegts,avi等。 编码层(Codec ...
avformat_open_input默认是阻塞操作,如果不加控制,等待时间可能会达到30s以上,对于有些情况,等待30s的体验是无法接受的。 ffmpeg支持interrupt_callback机制,可以对输入(或输出)的AVFormatContext的interrupt_callback成员设置,然后再回调函数中做控 ...
谎言,误导并阻碍人生 阻碍你成功的6个谎言: 每件事都很重要 同时处理多件事 有规律的生活 缺乏意志力 试图平衡生活的各个方面 大即不佳 每次获得巨大成功的时候,都是我专注于一件事的时候,而且,我专注的点也应随着目标的变化而变化。 成功取决于你的目标是否明确,你是否专注 完成最紧要的事就像推到第一块多米诺骨牌,接着剩下的问题都会迎刃而解 卓 ...
如果基于ffmpeg库来做音视频开发,常常需要自己编译ffmpeg,本文整理了下编译动态库模式的,官方参考文档:https://trac.ffmpeg.org/wiki/CompilationGuide/Centos,不过官方默认是静态编译模式。 环境准备 yum安装依赖 yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libstdc++-devel git libtool make mercurial nasm pkgconfig zlib-devel 目录约定 源代码目录 ...
H.264(MPEG-4 Part 10, Advanced Video Coding,缩写为MPEG-4 AVC)是一种面向块的基于运动补偿的视频编码标准。到2014年,它已经成为高精度视频录制、压缩和发布的最常用格式之一。第一版标准的最终草案于2003年5月完成。 H.264/AVC项目的目的是为了创建一个比以前的视频压缩标准,在更低的比特率的情况下依然能够提 ...
linux上应用程序如果依赖so库,执行时需要能找到so库才能正确执行,与Windows(默认会在当前目录查找)和Mac OS X(基于rpath, install_name)的查找机制不同,linux上需要系统lib目录下找到或者显式指定LD_LIBRARY_PATH来引导程序搜索动态库的路径。 通过ldd命令可以查看linu ...
gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,在linux平台下一般使用gcc工具链。在Mac下目前已经慢慢替换为LLVM的clang工具链。 gcc/g++ 入门 基本 ...
在linux上,GNU make原生支持makefile语法,很多c/c++的工程都是基于makefile来管理,来自动化编译。 如果需要跨平台,可以考虑使用cmake或gyp之类的配置来管理工程,在linux上会调用make,在mac上会基于xcode,在windows上会基于vs。 因此如果应用面向的只是linux系统, ...
本文整理了Objective-C开发多线程应用的常用方法。 performSelectors系列 NSObject 提供了以 performSelector 为前缀的一系列方法。它们可以让用户在指定线程中,或者立即,或者延迟执行某个方法调用。 在当前线程中执行方法 - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay: (NSTimeInterval)delay inModes:(NSArray *)modes 在指定线程中执行方法 - (void)performSelector:(SEL)aSelector onThread:(NSThread *)thread withObject:(id)arg waitUntilDone:(BOOL)wait - (void)performSelector:(SEL)aSelector onThread:(NSThread *)thread withObject: (id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array 在主线程中执行方法 - (void)performSelectorOnMainThread: (SEL)selector withObject:(id)argument waitUntilDone:(BOOL)wait - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray ...
Objective-C是支持比较丰富的动态语言特性,能运行时修改类型,并支持类型的自省,相对于C++之类的静态语言,运行时自省是非常灵活自由的特性。 动态特性基础 包含头文件 #import <objc/runtime.h> id类型 通用指针类型,弱类型,编译时不进行类型检查 – 如果不涉及到多态,尽量使用静态类型 – 静态类型可更好的在编译阶段而不是运行阶段指 出错误 – 静态类型 ...
颈椎病是电脑一族的常见病,而且会长期困扰人的工作和生活,甚至会影响睡眠、导致头晕、视力模糊、脖子酸痛、耳鸣。。。 必须加强锻炼来保护自己的颈椎,其中颈椎操也是保护颈椎的很好的方式。 多练习叶春友《颈椎操》: 屈伸运动 左顾右盼 抬头望月 缩颈耸肩 扩胸运动 全椎运动 可以在优酷上看 叶春友《颈椎操》 ...