- 博客(28)
- 资源 (21)
- 收藏
- 关注
原创 使用cmake编译xcode的framework,并且保留Headers目录结构,并携带bundle资源
使用cmake编译xcode的framework,并且保留Headers目录结构,并携带bundle资源
2022-09-05 16:20:32
1795
原创 高性能实现OpenGL中渲染结果RGBA转YUV420P
高性能实现RGBA转YUV420P先来盘点盘点之前移动端视频编码一直是IOS做的好,如果没记错的hIOS从7.0开始就支持硬编码(videotoolbox)
2021-06-09 17:25:51
2575
2
原创 【分享】性能比肩美拍秒拍的Android视频录制编辑特效解决方案【2】
上一篇文章是初步接触Andorid多媒体开发时,以使用纯开源的方式实现的基础效果,效率上有很大问题。经过半年多的继续学习,解决了其中部分有效率问题的地方。(1)编解码部分编解码部分之前文章采用的X264+FFMPEG的开源方案,而继续学习之后,找到了android上特有的实现方案。版本版本=4.4:jni反调android.media.MediaCodec or 或者在java层开
2016-09-12 18:57:59
2440
原创 【分享】性能比肩美拍秒拍的Android视频录制编辑特效解决方案【1】
前言众所周知,Android平台开发分为Java层和C++层,即Android SDK和Android NDK。常规产品功能只需要涉及到Java层即可,除非特殊需要是不需要引入NDK的。但如果是进行音视频开发呢?Android系统Java层API对音视频的支持在MediaCodec之前,还停留在非常抽象API的级别(即只提供简单的参数和方法,可以控制的行为少,得不到中间数据,不能进行复杂功能的
2016-01-24 12:03:43
15973
6
原创 多媒体编程——ios视频图像绘制(2)
ios上使用OpenGLES1.0绘制视频。不使用GLKViewController,自定义子线程中进行同步绘制。
2014-08-15 09:29:41
1677
原创 多媒体编程——ios摄像头图像抓取工具类
ios 摄像头主动方式抓取:工具类提供预览图像画面,自动处理旋转,并且以主动方式抓取图像(这样帧率可以无限大)系统的接口多是异步接收图像,像我这种强迫症怎么受得了,必须吧被动接收图像的方式改成主动抓取。
2014-08-11 16:27:20
1901
原创 多媒体编程——编译x264 for ios armv7
#!/bin/bash DEVELOPER=`xcode-select -print-path`CURDIR=$(pwd)mkdir ${CURDIR}/x264-build cd x264./configure --disable-asm \ --prefix=${CURDIR}/x264-build/armv7 \ --cc="${DEVELOPER}/Toolcha
2014-07-24 13:41:10
1180
原创 多媒体编程——基于OpenAL的播放封装类
头文件://// TKAudioPlayer.h// FLVPlayer//// Created by administrator on 14-7-11.// Copyright (c) 2014年 trustsky. All rights reserved.//#include #include "al.h"#include "alc.h"
2014-07-11 13:59:51
1964
原创 编程基础知识——Java JNI开发流程(1)
首先建立一个空类,名叫package com; public class JniLocalLib { } 然后加入一个需要jni去实现的函数,以native关键字修饰。 package com; public class JniLocalLib { public native int localPlus(inta, int
2014-06-15 12:54:59
959
原创 编程基础知识——C++能不能支持Java和ObjC的反射?
C++能不能支持Java和ObjC的反射?本文以一个问句开始,尝试在C++中实现Java和ObjC的反射机制。
2014-06-11 14:00:19
1288
原创 编程基础知识——C/C++,Java,ObjC的回调方式探讨
C/C++,Java,ObjC的回调方式探讨,C++的callback,java的listener,ObjC的delegate,各种理念模式的相互对比,相互借鉴。
2014-06-10 20:31:47
1700
原创 编程基础知识——java类加载
java类加载先来看一段小程序:package com;public class Main1 { static { System.out.println("1111") ; } public static void main(String[] args) { System.out.println("2222") ; }}输出结果为:111
2014-06-10 13:03:45
909
原创 编程基础知识——C/C++字符串和字符数组
1、 常量字符串在代码里直接出现的”abcdef”这种字符串,在程序执行的时候,系统会将它们放在常量区,所谓常量区就是一直存在的,只读的,不可更改的数据区域,并且一个字符串只会有一份。假设你在程序里有两行代码char* p1 = “agcd”;char* p2 = “agcd”; 无论你这两个行代码隔了多远,如果你想知道p1和p2所指向的字符串在内存中是不是同一个,那答案是肯定的,
2014-06-09 22:11:46
802
原创 编程基础知识——Java相关的“编码”问题
全面分析Java相关的“编码”问题本文说明Java程序员遇到的一个很头痛的问题就是编码问题。一旦开发与系统平台及网络相关的程序而需要传输中文字符时,若不能正确掌握编码的知识,将频频出现乱码问题而扰乱开发计划。目前已经存在大量的关于编码问题的讲解。个人觉得这些文档主要是教“怎样解决目前问题”而非“为什么有这个问题”。希望本文能够帮助读者从根本上了解编码原理,以及软件开发过程中出现乱码的原因,
2014-06-09 22:06:54
983
原创 多媒体编程——绘制图像
多媒体编程——绘制图像首先来说,最常见的图像文件类型有bmp,jpg,png等等。每一种都有他们各自文件格式和特点。但是对于多媒体级别的图像来说(硬件加速连续快速的渲染不同的图像),这几种格式都不能直接渲染。在windows上,图像渲染的方式有多种,API的抽象程度也不一样,而最常用的两种当然是使用GDI 和 DirectDraw。GDI底层也是使用的DirectDraw,所以
2014-06-04 23:36:13
1005
原创 多媒体编程——屏幕截图
多媒体编程——屏幕截图 为什么要先讲屏幕截图而不是硬件加速渲染图像呢,因为视频播放需要连续渲染图像,而最好的图像来源就是视频文件。但是视频文件解析是一个巨大的课题,哪怕是做一个测试例子,也至少要引入某些开源的解析库,非常麻烦。所以先讲屏幕截图,不停的抓图,得到一张张屏幕画面,进而后面章节可以讲解怎么渲染图像实现视频播放。 屏幕截图,依然会用到Direct,具体的说是DirectDr
2014-05-25 14:39:55
1199
原创 多媒体编程——声音播放(1)
多媒体编程——声音播放第一部分使用waveOut进行声音播放。 要讲怎么用播放声音,首先我们要有声音数据才能进行播放嘛。所以在将播放之前,我们要先制作好供播放的数据。下面段是扫盲性讲解,已经了解的朋友可以跳过。 关于音频的格式很多,大家平时都有接触,比如什么mp3,wma,m4a格式的文件啊。无论是声音还是视频,都存在两层格式,第一层是文件格式,第二层是编码格式。比如mp3
2014-05-25 11:24:09
1223
原创 从零开始学OpenGLES开发——第五章
从零开始学OpenGLES开发——第五章第五章,透明和混合。32位色模型中,颜色由4个byte组成,分别为R、G、B、A(顺序根据实际情况为准),其中A表示不透明度。而透明实际上是靠颜色混合决定的,就是前后两个像素点的的RGBA进行叠加计算,得到新的像素点颜色,看上去就会出现透明效果。对于实现透明效果的混合公式是这样的(言外之意,混合不仅仅可以实现透明效果,混合只是
2014-05-07 13:47:46
1932
原创 从零开始学OpenGLES开发——第四章
这一章主要讲变换,所以能物体的外观什么的就不在乎了。前面三章的演示程序里面,视角视线都是固定死的。既然视线和视角都要运动,那么就需要一个变量因子随时间变化而变化,然后动态修改每一次渲染的时候我们的视角和视线。为了容易观察,我们需要设置一个参考系(默认屏幕背景全黑,根本感觉不到哪是天,哪是地)。在3D世界里唯一的参考系就是坐标是死的,其他的任何模型都是人加进去的,所以不准确。所以
2014-05-04 11:44:11
2455
原创 从零开始学OpenGLES开发——第三章
从零开始学OpenGLES开发——第三章第三章 光照,材质第二章中并没有做过多的说明就直接给大家演示了怎么给一个三角形贴图。其实贴图只是一个物体的物理外观性质中的一种,除了纹理之外,还有材质性质(属性)材质属性和纹理不一样,纹理是一张图,最后应用到模型之后,从OpenGL底层来说,是模型上每个像素点都从纹理上找到了自己该拥有的一个像素点。换句话说,一个物体的
2014-05-03 10:58:24
1818
原创 从零开始学OpenGLES开发——第二章
从零开始学OpenGLES开发——第二章第二章 OpenGLES1.0的纹理贴图将上一章的代码精简一下,只画留一个三角形的绘制。数据初始化代码: private FloatBuffer vertexBuffer = null ; public void onSurfaceCreated(GL10 gl, EGLConfig config) { float
2014-05-01 16:32:31
2518
原创 从零开始学OpenGLES开发——第一章
从零开始学OpenGLES开发——第一章本教程并非翻译自某文献或者教程,完全是自己学习的总结,所以并不保证百分百正确,只代表个人的理解。所涉及知识面并不全面,这和个人能力有限有关,只是希望能够起到参考价值。OpenGL是一个画图的API集合,而OpenGLES是它的一个子集,本教程首先从OpenGL1.0开始入手,跑完第一个例子程序。然后在将第一个例子程序中的某些用到的接口,换
2014-05-01 15:14:40
7902
1
Android视频录制编辑播放解决方案(2)
2017-04-11
MFC 中使用 OpenGL 1.0(非微软版本,而是开源项目Mesa3D)完整例子,初始化,画线,贴图。
2014-04-18
ios上zxing二维码扫描完整演示工程。
2014-04-14
android AVD 自带的 API demo
2014-02-24
win32 socket 网络编程 api 全面演示
2012-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人